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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
原程序如下:. T* G8 H* w! g+ d
library ieee ;
& U  D, S$ Y6 z; f# U9 vuse ieee.std_logic_1164.all ;5 V( e+ b! V4 H# ]6 S! d
use ieee.std_logic_arith.all ;7 N4 x5 `' h3 {  P: J0 R/ V
use work.butter_lib.all ;
% g1 G' e  B# w1 ~; W$ `use ieee.std_logic_unsigned.all ;; e! W6 u3 k: ]9 A  A8 x1 m
use std.textio.all;
/ b  ~1 ^4 E" C0 u- N: g6 Q% }* H- [- ^
entity synth_test is
$ `/ c- l1 J( p1 K/ h  U3 d( |0 Wend synth_test ;
: j5 Y7 _; |# o/ Q. X" n7 h2 ?& F0 K. y/ P, H7 J* b( r2 X, q4 ?
architecture rtl of synth_test is % C6 A' i! z  C8 b; z# O* E2 y5 Z
component synth_main
; d& I( L# g) f( ~port(# O' P& A  W+ `1 j4 Z
              data_io : in std_logic_vector(31 downto 0);0 A( _$ V0 m/ u* S& d6 N: p) G3 t
      final_op : out std_logic_vector(31 downto 0) ;
5 g! u9 ~6 x* C; G) J      clock_main,clock,enbl,reset,init : in std_logic
8 r3 w& j* h1 |0 x2 ~    );
$ a5 x) Y; w1 a3 kend component;. _: b- X" P" T/ S3 F  W& A& p
signal data_io : std_logic_vector(31 downto 0);% ~9 i4 u- ~0 J1 z0 |" k
signal final_op : std_logic_vector(31 downto 0) ;
( p$ M( h# f8 ]" c6 F7 xsignal clock_main,clock,enbl,reset,init :std_logic;6 t% @+ k0 a& q
9 }+ ~7 t. C; C4 X
begin
! m7 u# t* |7 T! x- Zdut:synth_main port map(data_io=>data_io,final_op=>final_op,clock_main=>clock_main,clock=>clock,enbl=>enbl,reset=>reset,init=>init);  W1 ?( S. f, `5 R4 Y

' u2 u5 B8 ?. O, m+ gprocess5 ]$ z8 u) g; M6 O1 W! Q! X- t5 S  T6 n
variable i : integer := 0 ;
2 F, T1 [3 L: l! B* R0 Z3 Ybegin $ p3 `9 Y+ Q# ~
for i in 1 to 1000 loop
9 ]( u! B$ I8 h4 [clock <= '1' ;
+ w3 F' m6 R9 W1 i1 N, g- rwait for 5 ns ;3 X* D! {$ k6 |$ H
clock <= '0' ;
( `) l- `/ |* U1 N% Cwait for 5 ns ;7 I0 g! t4 G: h% R
end loop ;5 J( e& n- r5 G3 F  S: M! b
end process ;
- ]; X; A; O3 ]/ G
2 B6 r+ i) J5 q8 lprocess6 n1 s% g1 g0 U. c. D
variable j : integer := 0 ;, S+ x5 n1 W) N2 Q: ?
begin ! u8 i* q  X$ ]  Z* b) G2 u
for j in 1 to 1000 loop
& Z3 ^( ]$ K; @$ O6 c" Bclock_main <= '1' ;
+ k/ k3 o, e' c1 K& ~* Z$ Y9 Jwait for 200 ns ;
3 F3 u  N/ H# Vclock_main <= '0' ;
# i) L9 Y- N' y4 Y/ ^/ Fwait for 200 ns ;' m$ _, k2 g5 X* a, `( f* U
end loop ;
, Y# }0 d$ j1 F$ u$ ]) o; h; J+ a$ lend process ;
1 v$ n& [5 ~) R; w
# s) m# |0 ^! U- G  C7 yprocess0 i; L  |4 p" B* s1 J- A
file vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;- F+ ]. P$ y. p9 C; N2 ~0 O
--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
4 G9 i1 N6 q$ ^# e5 `8 J8 Pvariable l , l2 : line ;
  Y& @2 t+ I" `( yvariable q  : integer := 31 ;
% L& B! `% B1 ]. R8 k0 r2 T, a( wvariable count : integer ;# T! t4 C$ w7 W% V8 y
--variable t_a , t_b : std_logic_vector (31 downto 0) ;
. a8 G9 y# D% K2 s+ Z1 ?" Ovariable t_a , t_b : std_logic_vector (31 downto 0) ;
0 a3 b, n" h1 K" r! tvariable space : character ;7 x9 c" u7 m  c8 W
begin & G& r2 O1 D, V0 E7 C
: r0 R+ V* n) R9 m7 g* }5 C2 \! O: ?, x
while not endfile(vector_file) loop$ \/ @, [: K( D1 ^2 j
--for count in 1 to 16 loop: p4 v; F& y8 S. v4 }
q := 31 ;0 x; ^# _9 z8 p' h3 b& \5 }
readline(vector_file , l2) ;
* |0 l" G# z+ R! D
6 r9 s" d; _4 T& t8 efor p in 0 to 31 loop -- data from RAM9 d. Z' n+ N6 L( |5 ~1 I
read(l2 , t_b(q)) ;
- {/ C$ W1 ]3 y" ]- p: Y6 c5 ^q := q - 1 ;
$ o3 ]" C9 u, J6 zend loop ;
5 d2 [6 K0 U  G! L1 Vq := 31 ;4 p* _9 A: c# u; W* A
data_io <= t_b(31 downto 0) ;
7 l( R- D8 r% `+ m9 a+ ]7 F+ Z
; s! B# p( B8 R" R+ ywait for 400 ns ;
$ \1 R" ]" i: l3 W8 aend loop ;
2 v/ p! G' ]0 R8 }6 rwait for 8 ms ;' D5 Q! u- f; B$ Q/ |; J
--wait for 650 ns ;
- {2 z2 ^8 d) ^9 Eend process;
5 x6 p+ s1 U2 E$ G2 j
; k$ B/ |+ q1 S& I8 Z-- process to reset. T3 o4 h, B" U9 @8 I& C2 ?1 p$ f
process
' O# n; Y* b2 v5 f+ p" Lbegin% b( q) R7 m/ ~8 G$ Y7 B
reset <= '1' ;
, m7 K+ ^* |3 r" o5 u8 Z2 C' z. V9 {enbl <= '1' ;
/ n% J: H% P; F$ `wait for 10 ns ;9 O; R+ a, p' ^% F- O0 w
reset <= '0' ;( O& y8 T$ }# s8 g
wait ;
1 w4 t  r( e5 u7 Z- \end process ;! I$ L6 ]- X5 ~6 F% g

, z/ S% i  S7 K% c( c7 U5 w/ ]1 Mprocess
$ n0 t$ v8 X6 J1 nbegin
1 w! q) b2 `* }/ ^0 l# v& Jinit <= '1' ;
  U' Y: B$ a5 [! _; c: k) L( d; Wwait for 15 ns ;! h% l9 J  T* _1 T3 O4 _6 B
init <= '0' ;, P" v' l8 [: [% b
wait ;3 l% B- `& c& A4 `
end process ;' @! X; B* L$ H( y: w

- Q9 A* u9 j( T3 @0 X( I# L' Qend rtl ;. u& m5 A; h# f' S5 l; s
5 i8 t! @# a% B2 `/ }# `+ p

" @5 \8 H% y8 Q- a7 a  k7 F4 ?/ p7 A
3 e9 p& x* X- U2 f( O+ ~用modelsim仿真提示如下错误:No feasible entries for subprogram "read".
+ ^3 j, v, k3 }# K& ~如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。
& n- ^; w4 r( W# h1 P可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2026-4-18 20:25 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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