找回密码
 注册
查看: 1281|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
原程序如下:
- v# V6 M4 C1 ?/ V/ V$ h" ?2 |library ieee ;
  `) ~! V, D' {1 f' j) Kuse ieee.std_logic_1164.all ;
8 E! p# k- \8 V! D4 b, G$ e% c- @- euse ieee.std_logic_arith.all ;  B% H( j0 ?% e5 y  V& w- ]0 L4 D
use work.butter_lib.all ;
: X  k% D+ |1 c7 ~' kuse ieee.std_logic_unsigned.all ;
* H9 T0 T% o2 d. {use std.textio.all;# m- A- R4 A- O1 I- X- W% c9 f6 `
1 ^" ?) X- T& K; S' D( T
entity synth_test is% i. f4 L/ s' ^& i
end synth_test ;) M. w! \+ ^& E6 r- L

; `3 b* b0 I  Sarchitecture rtl of synth_test is   N2 r4 w  o* K( q
component synth_main+ i$ k9 t8 ?) ]6 g( {
port(+ b: [, w5 _+ \7 j5 f
              data_io : in std_logic_vector(31 downto 0);
* ~( O1 q) ?# v; Z, F7 m% n      final_op : out std_logic_vector(31 downto 0) ;, e, c& U/ `  z8 i
      clock_main,clock,enbl,reset,init : in std_logic
! a" U6 m. E, R    );9 B. G5 a! p! g  v# _! f! K, K
end component;* \# v, c' m( K
signal data_io : std_logic_vector(31 downto 0);
, M; Y9 o( G0 h. b" ~0 Gsignal final_op : std_logic_vector(31 downto 0) ;
0 w" \1 q+ g2 j7 d6 M3 r3 R/ @' zsignal clock_main,clock,enbl,reset,init :std_logic;
8 g4 y" ]8 j/ n, k3 q6 f8 f, l. I% K( g: D7 ^( I5 s9 G* _
begin, i. A" b+ o6 F3 g3 Z. q% g
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);
% R7 W( D+ Q! d+ R8 c, K+ B
8 Q' ]# b4 e3 n7 wprocess  {& i! Q, _: k; J. N  C+ D: P( x
variable i : integer := 0 ;
8 T! Y. X1 E3 z- l( ]begin , \$ T2 A& S' d6 g* q: m' h$ Q
for i in 1 to 1000 loop 7 z2 w- l+ Q$ x; K7 O) ]4 l. g
clock <= '1' ;
: H; O6 z) `6 Zwait for 5 ns ;
2 S6 O/ r8 c- `6 z' G5 W) Rclock <= '0' ;1 I( }9 F7 o& v4 `: u& p) |$ V
wait for 5 ns ;
/ {* v( b% ^7 m6 e$ k. F+ Aend loop ;( u' [' T4 Z: [9 j$ ]! K' S; h# L
end process ;
; O  v7 S$ V% E  d/ K" u: T6 O+ D1 r9 N9 G6 r/ _, v
process
; j; S; J: O, [: m* Jvariable j : integer := 0 ;$ V" s5 b; m- e
begin
2 |: @3 ~3 q$ k2 A7 q9 Xfor j in 1 to 1000 loop
" F* V% {* N2 r% I! y8 b( eclock_main <= '1' ;
# k2 @) R8 a9 G- i* i) ~wait for 200 ns ;
, }7 s. Y% N, ~5 u1 Q2 G" Rclock_main <= '0' ;
: h/ d/ x9 d0 ^6 O' {  z6 Dwait for 200 ns ;
. A: w% n5 P0 K$ b+ J8 oend loop ;2 G; R4 Q+ Z" l8 Y
end process ;8 N( v3 L. P( v# \* {3 c

1 ~; Y; ?* G3 \4 R3 @4 L  Iprocess2 k1 n; [! h3 `! a3 h7 P+ s' C5 e! R4 j
file vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;
- w& {6 G9 K4 M- F2 i, v( `. f--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
) n) L' \, R# [variable l , l2 : line ;
( D' x% m  Y& g/ b1 w& J- Y# M7 avariable q  : integer := 31 ;
5 M- C% B% T6 M( |: avariable count : integer ;
% j' }8 ^! @6 Q6 Z  Y. N* _--variable t_a , t_b : std_logic_vector (31 downto 0) ; 7 F; |. P* x( ?1 @
variable t_a , t_b : std_logic_vector (31 downto 0) ;
* d4 ~$ z) z! `  v, V4 ~) G6 w9 avariable space : character ;
, V5 g' D* S/ p9 D4 abegin 0 U- d/ V% [, \
2 T+ }/ D4 G4 }4 H
while not endfile(vector_file) loop# s$ `" o( |) }/ z% ]! Y; |
--for count in 1 to 16 loop( X+ b0 n7 r, i  j
q := 31 ;
! e8 m% @7 v: h* e6 E0 \) dreadline(vector_file , l2) ;$ ~2 g9 B& M* E6 T- x
; @$ C- t$ y4 t9 n( f7 I
for p in 0 to 31 loop -- data from RAM
1 x2 g! l% E! Bread(l2 , t_b(q)) ;
) \  r7 l5 J* m" x! jq := q - 1 ;
" Y6 f$ e. d' z, g* I& m# Yend loop ;# m4 q$ B9 Z0 L6 o" ~$ H* R, i1 v
q := 31 ;9 @' b* A. J; T5 ^' y+ `* N" A
data_io <= t_b(31 downto 0) ;* I8 c! n2 |# ^5 n& l/ S

+ Y5 D- |% `5 {+ w! V2 Gwait for 400 ns ;
- B$ w* j6 _) E' O% vend loop ;  G: J7 Q/ a# f( L$ [& j( Q5 `
wait for 8 ms ;2 z/ P& e- X0 `( m5 M  ~0 D
--wait for 650 ns ;
# v4 p- b9 a$ O  h2 gend process;
& r# m! P5 s  s- Y* L2 K1 q5 T# [" d, b
-- process to reset
. J) Y+ F' O9 {# ?* F6 [3 Nprocess
) c+ u  f) w8 ubegin/ J& e( }: k, x2 E: E& F
reset <= '1' ;2 l' j( w. _( ?' a- `9 F$ y6 o
enbl <= '1' ;5 J8 z% J8 L" i  N' S5 |; C; H
wait for 10 ns ;) E/ n% e2 v. G( ~/ z5 n0 Q  ^
reset <= '0' ;8 H* }* ~8 q: k
wait ;; ]* M6 V. ^6 P9 r0 H' W
end process ;, k9 k5 O2 v& a0 }# @

1 P3 a2 Q; O( \process* L6 c& {+ l  e( w, H( J4 s* z
begin$ x0 a6 Z5 {9 g1 x% t" O1 ~4 e
init <= '1' ;
0 A% `1 Y  H8 p4 j5 L( Lwait for 15 ns ;3 |+ P# @  ^7 |+ r: Q
init <= '0' ;0 r5 @# Z$ y9 y  {( w, ?
wait ;$ L4 ?, K, O9 U; t) W& N# b# c* Q# Q
end process ;+ l0 u- G& [, A+ @3 ^
& Y. q3 I$ b+ G' d& j0 h, J
end rtl ;
0 [( E9 }8 h0 P5 \
) j7 z( L5 O' C
/ l' s: b9 g( e/ L& |
% w: V) u: V# w+ q用modelsim仿真提示如下错误:No feasible entries for subprogram "read".' Z& t3 v2 y- _/ f" [
如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。1 H% m  o( g% _  V! p. C& ]: m# g
可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-5-28 02:15 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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