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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
原程序如下:
- I4 \8 Y6 |% e. A  Mlibrary ieee ;
& T, P6 C, R5 @1 ^use ieee.std_logic_1164.all ;% v. A" P1 s  g& f2 P6 Y! W
use ieee.std_logic_arith.all ;
2 t1 h6 U$ a2 _- F  W% i8 M6 a# `4 cuse work.butter_lib.all ;' R  b* J0 X: Q9 k5 Y: Y
use ieee.std_logic_unsigned.all ;
# V& C6 `5 \+ fuse std.textio.all;/ F# j0 ~- T8 E0 m

4 L& s/ \# h; W2 F3 B" V/ v( Qentity synth_test is- d( w7 {9 K" Q. b- U
end synth_test ;
6 P( e. b- U2 I, P8 v# V
4 N1 Q& H. z  {! Uarchitecture rtl of synth_test is # U! B$ R' e+ e! L" ?; ]: E) Z
component synth_main
& {/ O( q( o% ~% N. ]  k: z9 xport(; t* h# ^% w5 G3 z1 U) \
              data_io : in std_logic_vector(31 downto 0);
) Q' n2 b& G: p2 B      final_op : out std_logic_vector(31 downto 0) ;7 y+ N0 k$ K5 \6 h* R5 W
      clock_main,clock,enbl,reset,init : in std_logic3 x1 c  X  g4 g. T) A- G
    );
  Z% |* R# r, a% r) {end component;
  t: F2 l. {9 ^signal data_io : std_logic_vector(31 downto 0);
8 @; I; ]. p6 Q# l4 R$ N9 F% r3 ~. Osignal final_op : std_logic_vector(31 downto 0) ;% S( V6 j+ X/ C( F5 l0 V
signal clock_main,clock,enbl,reset,init :std_logic;0 U$ ]3 F' N/ M" k/ d/ t) L
& s' G- l6 d7 J4 C# Z0 S8 @
begin
3 H6 u& T& X/ s0 K! ]dut:synth_main port map(data_io=>data_io,final_op=>final_op,clock_main=>clock_main,clock=>clock,enbl=>enbl,reset=>reset,init=>init);, a& v. g. |$ v. f& b5 \0 Y( I

' S* a$ ^% T8 N8 [, i$ W: mprocess
  y$ z9 P- p% E$ |variable i : integer := 0 ;7 ]% L4 Z' @5 x0 f5 L) n) A
begin
% C7 E8 s2 d+ w. N- K+ C4 [9 gfor i in 1 to 1000 loop # b0 i  C# u( k& }/ R" a
clock <= '1' ;
& k0 W$ h& ?* {9 }% Jwait for 5 ns ;" C0 G8 G( s# K; u; x+ Y$ |) x
clock <= '0' ;* o* V$ v1 ?5 y3 {
wait for 5 ns ;
- o) E& w8 g0 Y( q2 d2 h. E% Lend loop ;
/ F; z8 I$ p: V* I  }9 Uend process ;
2 {0 {$ E' R0 K' \- f# X5 T0 E0 x0 v. w! ?$ |
process
) |* U+ ], J% F7 Nvariable j : integer := 0 ;& v  h& o( _2 z2 l& P& {  I
begin
* `2 T3 U' K' efor j in 1 to 1000 loop
0 k' Z9 y3 ]6 }" X* A6 Lclock_main <= '1' ;
1 u* l# b  H8 e  |6 T, [9 Y/ hwait for 200 ns ;' m% L0 d9 B* r! k9 M, Z8 Z
clock_main <= '0' ;
1 W* {4 ]: r! W% N8 Uwait for 200 ns ;3 g5 m& _0 P1 a; i! ^4 u' y1 Z0 E
end loop ;0 Y1 E3 E, y, p5 X, x9 [9 _" F& R
end process ;
! i) I9 [0 _( T% h- M0 U# P
( Z0 x& G9 l/ k% p, P" ^  Uprocess
) W) h( c! W" }6 o8 sfile vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;
4 p# \3 E+ O  [6 E( l7 I0 x! O--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;. E' c# J' u8 v4 k! b: g
variable l , l2 : line ;
) f) n5 o2 c/ y/ w. _5 w# Ovariable q  : integer := 31 ;
9 a( V& c" i; ~* p* tvariable count : integer ;/ x$ w5 ], z! f  l  @' b5 E$ H- T; I
--variable t_a , t_b : std_logic_vector (31 downto 0) ; ) ~+ @% o0 v3 L3 O- m7 w3 p
variable t_a , t_b : std_logic_vector (31 downto 0) ;
. K$ d5 ^- y; F& K( S0 o; g  v) ~: nvariable space : character ;* a( T! t) e/ }
begin
! K% `6 W9 M/ N( f) J/ {* ~+ [" C. L! R% O- Q
while not endfile(vector_file) loop
  Y, W$ x# A. V: A+ Y6 [--for count in 1 to 16 loop" w3 S+ G5 G+ u8 g- W4 r. T7 K
q := 31 ;/ `0 W) a* E' {  |" ~! A- U
readline(vector_file , l2) ;9 y  L9 N- A8 T6 Q/ d6 E" o8 i
2 i7 |" t- @8 ^/ H$ r! }
for p in 0 to 31 loop -- data from RAM+ `+ o+ b: h) }- P# m
read(l2 , t_b(q)) ;
$ y) g% n( r# U/ vq := q - 1 ;. q2 s+ l. u" p
end loop ;; D% K6 F' f5 b; Y, _, D0 Q& [/ O# t
q := 31 ;
  O7 V2 b' j  F2 U8 k% O. z$ K& r# Zdata_io <= t_b(31 downto 0) ;/ b  Z# P7 o: f
, m% o2 ]( M* x- a
wait for 400 ns ;
: }6 u/ B/ p& X, Aend loop ;% K  B1 A% b2 Y# X) p
wait for 8 ms ;3 x9 a1 i3 o% l7 x
--wait for 650 ns ;
0 [6 _( Y, Z, d' lend process;
! S2 t. w' c! p8 ?5 J1 {7 |5 V; J! _4 d' [  D
-- process to reset
& A$ B9 W. v) w7 E7 s8 nprocess
& ~1 X. P$ j' ?( P3 u9 s$ ibegin
) G1 ~# X6 k; H9 I8 |9 breset <= '1' ;
- K( H9 A# Y0 \  v; \4 C  {enbl <= '1' ;- p" r& H+ T! [7 R0 k0 i
wait for 10 ns ;% ~8 I, A, {+ O- i& \
reset <= '0' ;
7 J3 i% s2 L' V7 W* K! [wait ;
- h5 G. W' Z5 B+ eend process ;4 j: H. b! b. U) {

, g! ^+ o+ v* d1 P& {process
* ^: `0 Q/ R2 y6 V( F8 q" l; hbegin0 `/ E5 a) h, H0 J2 g
init <= '1' ;, l  U& K3 Q" Z" R
wait for 15 ns ;
8 k* X; f* `# w0 a; i' zinit <= '0' ;2 e- |7 R* E8 [7 t
wait ;
6 u! ~6 A- q5 d, C4 Send process ;
! c: V8 @9 h' U6 Z6 ?% F& B  n- A& O2 {
end rtl ;( n# ~! \2 y* ?$ l
% E) [* ~2 F# l9 a% H5 e& Q

$ u  b6 [8 w1 n" F' |% z
8 k* ^8 C9 y% [3 c5 u用modelsim仿真提示如下错误:No feasible entries for subprogram "read".8 S6 U; H! R6 Q) P' {3 r; M
如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。- A% J0 Z0 ~- U. F) {6 t
可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 12:33 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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