找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

电巢直播8月计划
查看: 882|回复: 1
打印 上一主题 下一主题

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

[复制链接]

1

主题

9

帖子

122

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
原程序如下:6 c. ?' a0 A3 P! d/ a/ Q
library ieee ;) m3 U/ a* u- n- a! D5 y( y4 j! x2 T
use ieee.std_logic_1164.all ;
% s0 e+ D+ \) P* I. O) C1 N) Zuse ieee.std_logic_arith.all ;
, [- i& h! p! D; v% A7 I" Quse work.butter_lib.all ;
2 s0 i# j' B4 T7 Z6 Buse ieee.std_logic_unsigned.all ;
* f. k( M5 d" _3 l. juse std.textio.all;* q) {* S8 y2 L

" g) c! P0 L! a2 h  @0 A% }entity synth_test is6 R5 F& ?. ?: x  ~# i
end synth_test ;
& n/ H; s  P! d! ~- ?; L$ B- B, `6 O4 U
architecture rtl of synth_test is
3 Y: _* U3 q  l1 |/ ccomponent synth_main
2 u) y7 `9 p4 _# B" k* wport(
+ |% a+ s3 g* L              data_io : in std_logic_vector(31 downto 0);2 Q: @; x6 C2 a
      final_op : out std_logic_vector(31 downto 0) ;% H4 z2 e3 |7 k1 W: E8 v  w& ^
      clock_main,clock,enbl,reset,init : in std_logic" y1 t4 j3 P  C9 K6 k  q; p+ c
    );
+ Y' t1 m! _2 T+ W2 u+ Z  W, |2 {, Pend component;( ^1 f) S, P+ j. Z
signal data_io : std_logic_vector(31 downto 0);/ n4 U; H) b1 ^0 T$ {
signal final_op : std_logic_vector(31 downto 0) ;
7 P: ~" t) b* Ysignal clock_main,clock,enbl,reset,init :std_logic;
; j6 t1 V) C" n" B/ t( B7 E
0 e9 c* O4 L4 B& W8 C% _1 Q- W6 Qbegin8 M: `; j1 z  W0 ]6 ^+ ~/ p
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);
: D) [  o) e$ G3 |/ D. F$ f4 w3 M% p+ a$ a, O; I1 P% f4 T0 K
process$ u3 g" O' k4 |' C5 A' m7 k
variable i : integer := 0 ;1 ~5 r# T9 j2 L5 U" J6 L
begin
3 c9 \" z( K: d' Cfor i in 1 to 1000 loop
& _7 b/ v, D9 C5 T; P/ ?% sclock <= '1' ;
$ w6 B& t8 i: C, Xwait for 5 ns ;' i+ |) t3 `# Q
clock <= '0' ;7 G7 B( Q  K; k. t! n
wait for 5 ns ;0 X, Z, E& \( f9 U/ c9 t
end loop ;2 U6 f3 `! E9 v. T
end process ;6 V* M6 n1 V+ E# C6 v. G

' W) j( h: N- T$ T" h7 V4 c0 }: eprocess0 p# `# f; d/ r: u! @. |* Q" j
variable j : integer := 0 ;
. G- }7 v, t8 m  V9 h$ I1 r' ]) |begin - K$ B% y4 z: |* q
for j in 1 to 1000 loop ) a5 i( X6 B( Q3 ?% s# H
clock_main <= '1' ;
6 _, y6 O  E* H1 ewait for 200 ns ;
; a6 U- G' A6 S) E9 Cclock_main <= '0' ;
1 K+ Q* B) G6 r  P: J7 V8 t; ?wait for 200 ns ;
3 m' V/ E* `$ M+ Gend loop ;; o- s' |) D( v, A' j
end process ;
$ A: }; `: d. q- J9 O
& j# ~. Q. Z& L/ yprocess0 d+ Z+ {* _8 G
file vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;6 L: E2 C- B/ _7 H4 @
--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
# ~/ C0 f" h! k7 Dvariable l , l2 : line ;' W, ^' z+ X2 I0 C0 E) K
variable q  : integer := 31 ;" H/ e- b5 I3 q7 ~9 H' A6 ]% s
variable count : integer ;+ V/ E& u7 ~) B" d/ V( S1 t
--variable t_a , t_b : std_logic_vector (31 downto 0) ;
4 q; F: C0 z- x4 E1 ]" Xvariable t_a , t_b : std_logic_vector (31 downto 0) ;
) h9 j7 H: X7 e7 M8 c2 fvariable space : character ;* I! g7 s  K$ |  E& Y
begin " R' x+ E: E# M8 N& b! J: l5 ?
8 Y% v& s, K5 P" ^+ U
while not endfile(vector_file) loop4 A( d5 R! b7 L8 _* S( u
--for count in 1 to 16 loop# B  |/ f$ E- E% i
q := 31 ;" `3 a, g  M- F" J( M  Z
readline(vector_file , l2) ;
/ H0 |# N, Y. ^; C0 z. l. }: t0 @' M; S& g
for p in 0 to 31 loop -- data from RAM
4 i3 O2 S; F7 T7 a- [read(l2 , t_b(q)) ;8 x, l; U6 f* y- ^+ o
q := q - 1 ;% H' r6 ^& y& a" u* e
end loop ;; v- p7 R6 F$ c- h4 M% T9 b0 E, f% x
q := 31 ;  F/ Z. @" b3 Q. L- \
data_io <= t_b(31 downto 0) ;
( g0 F  d, B8 n% N
3 p2 r6 I. y. S7 r2 A4 G9 hwait for 400 ns ;- P# t1 G, {" }( X; ?1 F
end loop ;- ?  A0 m5 N# G) [" ?0 y
wait for 8 ms ;4 {2 d: G; b: ]6 G
--wait for 650 ns ;
4 ~4 b1 d* ^" o. yend process;
# J0 K, {$ D+ R) |" W5 L4 q1 M
  q, U7 A" p* q' @+ `-- process to reset
) |5 q: p8 ~0 h# G2 @process& {+ F9 z7 L# ]/ }& M/ W4 d1 i
begin
/ B7 T0 a% m$ ?5 u4 v5 Y. C4 Wreset <= '1' ;
- n/ a" \6 j0 E- y! |" }8 c, v9 qenbl <= '1' ;1 ?6 J& @: g: P6 q
wait for 10 ns ;9 ?7 k8 n$ q9 _- T* ^* \
reset <= '0' ;
. }4 u; K& C$ X, }5 j/ R" e# wwait ;( M7 Y! P0 t+ t+ t
end process ;- q4 h7 N% v8 B
* g1 S% ^: h2 f5 l. \
process
: i$ J- P( g2 E1 D$ R: Tbegin/ f$ v2 Q& n4 n8 _
init <= '1' ;- z! I! `" w  ?$ _( u% A
wait for 15 ns ;
0 a* }: D5 f% ^, k: h+ p# w9 n6 Qinit <= '0' ;
$ ~$ m) ~1 s0 v: _8 [wait ;
( P  q/ j( M3 j9 Send process ;
2 b( L. S, r& X3 o$ B: i! s7 R( F% `
! U- M% T5 w2 Yend rtl ;
2 r. |$ [$ [- r. G6 f3 t/ k  {# D# i# ^6 v5 t( @# G

- U! ]" M8 P8 n8 k+ U+ N; O
8 _6 i2 Y, w! @' m用modelsim仿真提示如下错误:No feasible entries for subprogram "read".; d+ t- P7 d( k* D. P# q
如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

0

主题

2

帖子

68

积分

二级会员(20)

Rank: 2Rank: 2

积分
68
2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。
4 T3 g% D  f# E, z$ v( b可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-7-2 08:18 , Processed in 0.055898 second(s), 29 queries , Gzip On.

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

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

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