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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
原程序如下:: J5 a+ {+ M" @. y) a% x6 i) Y$ S  ?
library ieee ;
8 h" r- g7 Q. e6 {' cuse ieee.std_logic_1164.all ;
/ s- p" q0 T6 [use ieee.std_logic_arith.all ;
7 D: F0 u; {' _use work.butter_lib.all ;
! Q0 D) F! ?- f' H, r: euse ieee.std_logic_unsigned.all ;9 z* C6 V7 E7 d) u; l
use std.textio.all;$ G% M  h  ~0 \$ R* T& A+ x
( F  C) q0 n$ m' s& `/ y
entity synth_test is
' h9 b, L# P4 ]9 @  ]1 E/ zend synth_test ;
; }  H$ Q0 a- A1 B; Z$ y1 k
) k3 ]9 q$ c4 V6 u# c! u6 u' p. Oarchitecture rtl of synth_test is + u2 j% e3 Q) L. G2 R) c  H0 x# T
component synth_main
6 [4 W& b) e; f+ @% I+ [$ z4 Sport(
5 }2 z9 {0 m, t  L              data_io : in std_logic_vector(31 downto 0);- g4 d6 b; J) G* n' M8 p
      final_op : out std_logic_vector(31 downto 0) ;
% f2 I/ u4 X; U2 u: ?3 c: u/ Z      clock_main,clock,enbl,reset,init : in std_logic
# a+ p# J# l0 ^) \0 t/ M    );
* e6 L# {5 _3 K2 G5 Wend component;) |$ h, W. N% K$ q2 W  h
signal data_io : std_logic_vector(31 downto 0);; f. X: j, S! m1 K
signal final_op : std_logic_vector(31 downto 0) ;0 }! o. m& ?, b  ?. e0 i' T
signal clock_main,clock,enbl,reset,init :std_logic;! ^! O$ M. M+ ?) q
6 f! G. u4 M: L0 t
begin
! k/ V0 i' Y1 Q: ndut:synth_main port map(data_io=>data_io,final_op=>final_op,clock_main=>clock_main,clock=>clock,enbl=>enbl,reset=>reset,init=>init);8 i# t1 k. i: b2 R

7 p; o' T' Q! M7 C5 ?% N, Q7 jprocess6 Y# Z/ S4 F- w! s& P
variable i : integer := 0 ;
' o6 A; h0 g, ]2 N, Dbegin
  C# I& [/ }5 k  i9 Jfor i in 1 to 1000 loop 8 `: y+ e% d4 N' z+ y" {$ |
clock <= '1' ;! i1 x' ~6 P) s& Y: A
wait for 5 ns ;
8 ]) J! z0 V( A  l4 V9 Iclock <= '0' ;; d: P4 w$ C2 j7 x
wait for 5 ns ;1 E7 q* S- ?: ^; s
end loop ;
0 \9 r4 ]- Z7 l  t" J& i' qend process ;1 ]+ r+ \2 w3 i7 B# p

- m" h8 v& U6 v8 i  r1 qprocess
- K, O8 x( r' U( w" d* v# r$ Dvariable j : integer := 0 ;  n$ v2 N6 q  v
begin 1 `5 W5 A5 W# y9 D
for j in 1 to 1000 loop ; a8 e0 K8 ]9 R  ?
clock_main <= '1' ;
# H7 U/ h+ y2 v8 L, Twait for 200 ns ;7 f1 y$ f/ T: I" B& z
clock_main <= '0' ;. j+ a7 g4 V! P( {$ X
wait for 200 ns ;2 I- s3 A5 ?: O4 Y
end loop ;
# U* S2 O( Z5 u4 Y/ ~! ?. mend process ;
# \/ o8 o4 [1 f& |0 E5 R4 h+ z9 V) ^
6 J: S& j7 R& @0 t7 R# _: eprocess
, Q" Z9 }  d6 r# Vfile vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;# E" _) w1 m! R$ d4 j4 L: Q
--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
! G- V% [/ v/ r2 q# w1 ~variable l , l2 : line ;8 a( E+ j$ U# o3 z; f; j/ A; @
variable q  : integer := 31 ;
5 z2 I# d* U; \1 M: B" e  Xvariable count : integer ;) Y% v' ?$ B2 \; D' b
--variable t_a , t_b : std_logic_vector (31 downto 0) ;
1 b$ {) Y1 O9 G1 T# q7 c! b4 Tvariable t_a , t_b : std_logic_vector (31 downto 0) ; . L( \' B& M( y- m8 U) f) ~1 z5 g2 p
variable space : character ;2 y# O" a1 W; o5 k/ _4 ^% n
begin 2 Z( t0 z0 B. E, Z
3 t1 [, {+ X. L: S+ L* n
while not endfile(vector_file) loop& P3 \" Z9 y+ P( N. d8 `% a
--for count in 1 to 16 loop3 [9 \" h4 k/ r4 }
q := 31 ;
8 ?; M, t/ |  ^0 P) u4 p* Xreadline(vector_file , l2) ;
" Y" v7 @9 F% |" B) r6 Z2 b8 g. m
2 p8 b& {" w, F& D' o  t7 ^for p in 0 to 31 loop -- data from RAM7 U% T3 Z( \5 a: q$ {
read(l2 , t_b(q)) ;
; o* c3 y" Q7 C# uq := q - 1 ;
2 ?9 U+ O; O; E4 X8 e+ V/ |9 L! Nend loop ;
% J5 g% M# s' Q( O8 l( D; t# Bq := 31 ;9 m3 v5 @* ~( M$ S8 q8 |5 r
data_io <= t_b(31 downto 0) ;
* U4 O( F3 U* {7 L/ h; R6 K: S# g0 L$ O% O
wait for 400 ns ;; R5 E. a/ Q4 v5 H. H, e
end loop ;2 P% _+ q2 l' l. `3 s
wait for 8 ms ;
/ X+ e( b% ~( U' T: z--wait for 650 ns ;
7 ^: B4 }4 V* T' Y" ~* K4 L) rend process;; s0 Y8 B- N9 b

& F& \! G. ^3 J! q5 ^4 q8 ^2 _9 i0 K-- process to reset
  m  [4 d/ f. }5 Pprocess
- a8 r" G5 S# U9 B  @begin0 [: c) Q! l1 h4 \/ a
reset <= '1' ;
" i! h1 ~/ `* K- [! t# T$ {5 }enbl <= '1' ;
) u& u9 a& Q* j" H' ?wait for 10 ns ;
$ I* e4 J" @/ o% p& E/ Jreset <= '0' ;
, A3 p! ~' K- W9 x) ~wait ;
; X* n2 b4 {/ aend process ;* ?8 G, F. v8 g% @
1 }, l* \2 `4 I1 A
process+ n7 u. d' I8 d. K3 r
begin
& b+ f/ r7 q! N6 @! I3 cinit <= '1' ;
* Q$ n  t# \, y8 Y! Y4 v% ~) {4 i2 wwait for 15 ns ;
0 r  R: ?8 R. ~$ [init <= '0' ;
% C3 S7 V: p$ j, vwait ;
* J& f" w' |, U1 J8 A3 ^end process ;
& b5 n2 d* V5 f& s& s5 ]  ~2 K% @2 O' N
end rtl ;  j9 S: y* b$ I7 Y; V" m& \1 {

% @& \0 S  c7 V, K
: @' V, F" Y" J2 u/ x( I7 w" P6 g4 @. h4 @# J8 y! c
用modelsim仿真提示如下错误:No feasible entries for subprogram "read".
) m2 ]# S% }; U如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。
! \$ V2 j% x" r' @2 s可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 04:18 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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