找回密码
 注册
关于网站域名变更的通知
查看: 1303|回复: 1
打印 上一主题 下一主题

vhdl程序有错误,恳求高手指点(程序有点长,但只有一个错)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-5-16 20:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
原程序如下:# b0 H- D" g& m4 w5 N* W
library ieee ;
& o$ X# a5 q9 K0 O# Puse ieee.std_logic_1164.all ;) A) z, ^- o2 n( m
use ieee.std_logic_arith.all ;# g) |6 k0 O) W/ `5 W1 O' f, y* c
use work.butter_lib.all ;
% i9 `% n2 w& C& J9 z- r5 |use ieee.std_logic_unsigned.all ;
* b9 x' ^" D* T% Q0 X9 puse std.textio.all;
7 S& o( B; r) n0 H% k+ E; U+ x+ ?; b2 m( W
entity synth_test is  U* b" O7 B- `% f% @- f3 Z
end synth_test ;* Q- Q/ X/ O3 N# \5 X5 \  |# V

& U! c* A% H2 \1 `' sarchitecture rtl of synth_test is + {  _& D* }9 M/ N- H3 h
component synth_main+ L  a# o" ?: f  x  c% S
port(2 B6 B  a, G6 i
              data_io : in std_logic_vector(31 downto 0);
; T+ Q7 h* B: ^      final_op : out std_logic_vector(31 downto 0) ;  w1 o* G2 F+ v6 k/ z
      clock_main,clock,enbl,reset,init : in std_logic8 o* D9 f: S( [1 Y: V! n
    );
; `# y% G2 Q( w7 _0 E0 ^end component;3 e% T; S4 n5 V
signal data_io : std_logic_vector(31 downto 0);/ V8 t! O4 W% ~& e5 s" W; U
signal final_op : std_logic_vector(31 downto 0) ;- u- \5 E/ O) w- |5 E
signal clock_main,clock,enbl,reset,init :std_logic;( v  p1 K2 A/ g- S" x+ h# A

( S* O9 n/ P, d# u: ^1 ubegin
0 d, D" Q7 e# odut:synth_main port map(data_io=>data_io,final_op=>final_op,clock_main=>clock_main,clock=>clock,enbl=>enbl,reset=>reset,init=>init);3 G, _! o: t/ L" ?5 `# S
' j' ^4 z' H7 o: ^2 x: O! B
process+ u$ q5 l' P# }: s1 @6 ~+ s1 \( Y
variable i : integer := 0 ;+ d+ b9 O" e( P2 @' |& T; j& \
begin * F  A$ V  z! s' B- G
for i in 1 to 1000 loop
. P  j5 o! w0 R; A" v7 ^clock <= '1' ;1 d# C, X  ]7 t6 d! m
wait for 5 ns ;% i' n8 l: P4 `/ G# N
clock <= '0' ;
; }+ \4 f+ ^" w5 h& e+ }" q$ Hwait for 5 ns ;' ?0 Q( }( w3 a  G* B
end loop ;
( T/ F% o0 F& m: \% Pend process ;
$ G3 _$ g* [5 B$ o$ ^9 I6 G5 _! N% F  M& p
process
' A# o$ P+ B% p: M- w. l( f8 @variable j : integer := 0 ;5 C. [% i- s2 t3 d* H
begin & \  z% n+ u# `  e/ C" O! y
for j in 1 to 1000 loop
3 _0 h7 a) d5 E: E8 I1 v+ yclock_main <= '1' ;$ I* e3 z, K4 i4 v1 k. M
wait for 200 ns ;* S6 P( C, t" t  P  I- @0 J" P
clock_main <= '0' ;1 a3 ^5 w5 N# z6 v, ~) N
wait for 200 ns ;
; \) k7 v( K# j* Eend loop ;5 s3 v2 R, {8 ?
end process ;- m6 Z0 J$ v  h: g" Y5 m: Q; u/ |

! c* l! G. p2 I# ^0 L1 j+ a: |. {process
9 M1 i3 k. N' o/ u( {file vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;
" h* X% v$ A9 A3 p& T--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
8 E! J3 M9 q' `; m' U1 j" [& svariable l , l2 : line ;
$ ^$ m: y2 S- Uvariable q  : integer := 31 ;
! \, @) D- J/ x7 p7 U1 J8 ivariable count : integer ;
' g1 w" y6 }8 e, C--variable t_a , t_b : std_logic_vector (31 downto 0) ;
7 ?) C# s: M. Y' I+ Y- c' Wvariable t_a , t_b : std_logic_vector (31 downto 0) ; ' n$ Y7 A% R4 B6 p) C- L5 u$ z
variable space : character ;
7 }* K- f1 o# z7 n* Cbegin
( Y# D9 @2 i/ D+ A5 n0 P( r
( H! D4 n3 i; q1 Bwhile not endfile(vector_file) loop* p8 `: x* V" a; S0 s& Z
--for count in 1 to 16 loop# x/ Z* f0 g  E, M4 T
q := 31 ;
2 R, c3 Z! T! S2 Z' }& [/ Breadline(vector_file , l2) ;+ `* _! R" H' {5 L7 k

3 [0 f& R! g$ P' q( Kfor p in 0 to 31 loop -- data from RAM- i( @6 n. e( i/ S, k) y8 O
read(l2 , t_b(q)) ;
( P2 r9 J6 a$ s3 Zq := q - 1 ;6 u. H2 h5 j$ _% r: h' h9 d0 L
end loop ;0 K. k# B: \% O/ A6 Q5 u: _- c
q := 31 ;
/ X1 D' E4 K: n  |2 t( P% ~2 @0 adata_io <= t_b(31 downto 0) ;
, ]) I! ~, ^. W3 Z- J# u7 t8 j2 ^
wait for 400 ns ;
5 {6 s4 p/ g! h. z' Cend loop ;' g' S7 e3 ^0 U/ i) w
wait for 8 ms ;) M+ E! f5 [) g! I  r2 y
--wait for 650 ns ;
( @8 P: l- z. _: u. M8 zend process;" Y! G" Z$ J' |: U* ?! @

" Q4 ]. _7 F, w1 Q$ u-- process to reset
9 g3 W* [" P; x: x* Q  uprocess- w1 U; V( @# j& o' b7 i
begin* x$ H* `6 |, P& \. D
reset <= '1' ;
1 c/ C% n7 A5 M6 menbl <= '1' ;5 t5 l4 g! r2 a8 ^7 }, R$ H5 L/ e9 E0 V, j
wait for 10 ns ;
. h8 Z  X8 Y8 O5 O' xreset <= '0' ;
' h6 O* H9 h0 Z8 Q% Await ;' p. H$ l& ~# c) e9 h
end process ;/ r! ?" H/ |1 E3 ^% A- U
% f3 A- ]3 ~7 q2 m1 r# W* V
process! Z% L$ E: P* J$ ]8 ?
begin
/ D+ m; a0 i7 L( b* f, w% Yinit <= '1' ;
7 R! a4 ^* O' U! a! P# j7 Nwait for 15 ns ;1 l% N+ S  K$ d8 D; h& t# U
init <= '0' ;
7 a3 O2 T- O+ F$ U  S4 s- D; A* D3 }wait ;
/ d& C3 C8 Z- L3 E( F7 ?4 uend process ;: d; Q8 `" h, p

% v; `  ~  b, ~* \. Kend rtl ;
3 Y8 w0 E) T* d7 N
1 @# C9 u; k$ L# D" U$ r$ |/ a6 z7 N! M
& x% A/ T) y- @( i3 S8 Z' p' i& d9 b6 S( f9 g- u2 g% w
用modelsim仿真提示如下错误:No feasible entries for subprogram "read".
$ Y7 H) n4 K+ H1 C如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。1 _* b5 j  O/ \# H
可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 09:59 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表