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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
原程序如下:
$ b, h7 H' u, Xlibrary ieee ;
& Q2 }/ A( @3 x4 i% Ruse ieee.std_logic_1164.all ;5 x5 G0 ~' }5 R
use ieee.std_logic_arith.all ;
, v$ c3 F6 M9 C8 |0 fuse work.butter_lib.all ;: R5 Z# I4 a9 C
use ieee.std_logic_unsigned.all ;$ \& W$ p# n: m3 y
use std.textio.all;( l5 s9 I; z* Y' O5 l

$ r7 x& q2 ~% e4 Z$ Z! q3 n- Rentity synth_test is
1 J$ L- ]  l- q: P/ gend synth_test ;
( y' ~. I: t7 P. n% b
* h* Y1 q/ H! ]+ y0 _1 o& Qarchitecture rtl of synth_test is ) Q, j, @: r8 ~% ]
component synth_main
& D$ @4 M7 ~4 d4 F# S2 F- Lport(& c3 X% O0 E  O# Y1 t. w, f3 u
              data_io : in std_logic_vector(31 downto 0);" f2 p* \# ]2 [2 u
      final_op : out std_logic_vector(31 downto 0) ;
1 m4 v7 v  l( A- n      clock_main,clock,enbl,reset,init : in std_logic
6 @* |% h. w2 m6 N4 _    );
/ P( q5 q0 Q% z, N  O: ]4 Oend component;
7 z# }4 G% O$ g( o) w" r4 t) Rsignal data_io : std_logic_vector(31 downto 0);& e# Z( y" N8 P2 v( P
signal final_op : std_logic_vector(31 downto 0) ;
7 D1 s+ s6 t6 j* Usignal clock_main,clock,enbl,reset,init :std_logic;
) T" w% a$ X1 m4 m! l9 g6 ~
# F, U1 _# E- F% V5 [begin
( X  R+ X" b. cdut:synth_main port map(data_io=>data_io,final_op=>final_op,clock_main=>clock_main,clock=>clock,enbl=>enbl,reset=>reset,init=>init);& O& [8 J" Z* _: ^# ?
. |* [. w/ \0 C' b; O4 P' c7 W
process
! M) z' V+ y1 p5 evariable i : integer := 0 ;, M2 }9 e3 V1 Q3 ?9 p4 e" ^  a9 `8 P
begin ) e' B  F% ~' C2 ^; i
for i in 1 to 1000 loop
% C$ R) ~& W' A" }8 `+ q) I; tclock <= '1' ;
, [+ O& _+ F9 W  Kwait for 5 ns ;9 {2 \7 E4 {9 o, \
clock <= '0' ;
7 \% X( g7 S0 H& l! V$ S* _+ cwait for 5 ns ;
  c3 x- e  M$ L9 @% h$ n. E" gend loop ;
/ ~. d, B" B9 ~+ {. Dend process ;9 j' Z7 v' g& h& o- t. {$ `

' ^  j- j5 B- h6 H! W  S. z1 nprocess: J# O- D- E$ Y) p8 u/ @
variable j : integer := 0 ;
/ B' O; s4 T$ h$ xbegin
) |5 X/ L1 C; B; ifor j in 1 to 1000 loop
$ o1 ?9 x2 v- K; R- z* yclock_main <= '1' ;! e% S! s# X! q( u
wait for 200 ns ;
/ |' C( P$ q- ?7 W0 Iclock_main <= '0' ;
1 A( ?4 W& E: s- Rwait for 200 ns ;2 R1 A9 @" y8 B3 N- T8 U" I
end loop ;
  S+ S3 y' S) Y0 d8 fend process ;' r4 D( K  X, a" H/ G  P* h7 Y

9 w2 H% `: o2 gprocess' B8 g8 ~. s$ t
file vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;# W4 v- s* V% r4 \+ g
--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
9 Z% a; B( h7 x) g( n5 P$ R* Kvariable l , l2 : line ;
4 g5 e. X0 D2 m' v& m# j. `7 Evariable q  : integer := 31 ;
2 H3 k) J4 z. j/ Jvariable count : integer ;; x6 n, @( t7 G+ t
--variable t_a , t_b : std_logic_vector (31 downto 0) ; ) _6 o  D* D. E; }5 ~1 U
variable t_a , t_b : std_logic_vector (31 downto 0) ; + b+ `9 }5 X5 B: g% ?
variable space : character ;4 g  T  N  u; q4 h3 Z
begin + `6 c- J, O* y5 R( t7 N
! k9 X- N; \5 w  G# A
while not endfile(vector_file) loop
# w- L+ `3 B8 S8 D9 ~* S--for count in 1 to 16 loop! K( N% _( v# g& _" p1 n& |
q := 31 ;- v% }1 l0 B4 w) V% i. C9 ]$ z( u
readline(vector_file , l2) ;
& V4 J6 E. f# ?& i8 K: E6 v" l+ N
for p in 0 to 31 loop -- data from RAM. p) X# F# U" w2 I- ?& Q9 t8 x4 M& t
read(l2 , t_b(q)) ;9 ?# A  A9 ?9 G
q := q - 1 ;; [& e; A$ U/ F1 e; v7 y$ o
end loop ;3 k$ u5 U7 O% y
q := 31 ;. R$ D. x8 D! Q" n& s# o3 s
data_io <= t_b(31 downto 0) ;% y! }+ X4 P2 b7 W

0 v8 o# q' H, r, z! Pwait for 400 ns ;. x! k1 c9 n2 `6 G2 r$ b
end loop ;' V1 p: i9 m9 i- N8 U3 ]$ J
wait for 8 ms ;9 Z5 C; s9 J0 n& F
--wait for 650 ns ;  E, p" n( ]) E+ T/ W+ U
end process;
! h2 u" L2 {2 @1 w4 g0 c7 _  {8 t1 O: V
-- process to reset
  q3 X* r: S' {1 q/ Pprocess- c- \( m. c& t
begin" U% n# j# r7 c# `7 R0 ^5 t  ?
reset <= '1' ;
) p7 H3 v4 I5 Q! p) Y( r. Uenbl <= '1' ;" k. i) n- G" C3 W' J) a
wait for 10 ns ;: A2 Y7 v3 ^* A0 v
reset <= '0' ;. c% H8 P  W& Q/ T
wait ;2 U  d4 I, D0 g  |8 Q. @- I
end process ;
8 Z. O! Q0 Z$ d* a% q8 h0 @& S4 A. ^9 b! O4 G# F* @
process
  z( U0 i- d6 e9 ebegin
0 r! \# H4 l9 y' f" W$ }init <= '1' ;
: T2 E( B6 o/ N# ^: }wait for 15 ns ;0 V- |  n" h6 m  w5 j: ^1 q2 d" ^7 G
init <= '0' ;* x( z/ q4 u2 y& W+ E
wait ;* O9 K2 P5 o$ z6 J
end process ;7 r. I+ n7 {* M0 ?' u* N# N5 I, Y( {
5 N" g  Y' C) B4 ~7 r) \' c
end rtl ;* i1 m; J4 |& S/ }: d
3 F' [4 u( }2 @& X; Q

$ w& x) o# g  L
9 ]; D( k' n( L1 H4 C用modelsim仿真提示如下错误:No feasible entries for subprogram "read".
+ C; k$ q* b) u) T如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。
5 i. j" G* e+ T可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 13:23 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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