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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
原程序如下:5 e! p! Z* K7 R4 x  |
library ieee ;7 \, g  A$ J! R# `  n- T! |
use ieee.std_logic_1164.all ;
+ n6 b' j9 ^" ^, e" {5 v. a7 Kuse ieee.std_logic_arith.all ;. |; x$ Z9 j5 D  \- p- Y
use work.butter_lib.all ;- V" X+ x0 y/ F5 @
use ieee.std_logic_unsigned.all ;
3 A7 O' p  P2 V5 Tuse std.textio.all;4 f  a6 ?: u. A8 c7 [
  m6 P8 e: o2 Y) B) ~
entity synth_test is$ R9 j9 j$ s6 w( i6 g5 o, X3 d
end synth_test ;! ~9 j7 b% A& n; T
. w0 H, g( q* X# t; ~
architecture rtl of synth_test is 5 y; q$ X6 b4 C" }7 E; o
component synth_main
; [) h% d7 Q! _, v$ t% V3 t  Gport(
/ q( u. g, n, F% c2 `              data_io : in std_logic_vector(31 downto 0);' a! H+ `0 T' L; m0 j7 Z
      final_op : out std_logic_vector(31 downto 0) ;
9 v2 l/ e: {5 _6 ?8 `      clock_main,clock,enbl,reset,init : in std_logic
$ E& c  o4 ?6 M9 V7 a    );
% G/ C/ B( p4 `, S. Iend component;! h4 j5 n& ]3 D  O$ W6 T$ g* v
signal data_io : std_logic_vector(31 downto 0);+ I5 ^8 p4 S$ V4 d% A
signal final_op : std_logic_vector(31 downto 0) ;
! |4 b" m8 V! T+ f" i' w1 A# \signal clock_main,clock,enbl,reset,init :std_logic;
- f# q; W  H+ T& N; P5 y7 U! Z$ o# v. @( a
begin
' A" E) E8 H2 Idut:synth_main port map(data_io=>data_io,final_op=>final_op,clock_main=>clock_main,clock=>clock,enbl=>enbl,reset=>reset,init=>init);
& l$ ^0 x9 T9 {# c, z, N+ n$ T% ~4 N: L
process5 L* t; N  J  }5 P2 z
variable i : integer := 0 ;
$ y' |1 Q& }# B% O1 T  {- cbegin
* N! c  N- D, o# E+ c* d# \for i in 1 to 1000 loop
& N  Z; f0 Q. C+ B0 ^clock <= '1' ;
8 v2 l4 C" B. u9 N6 n/ K: u) Fwait for 5 ns ;
! D) [) L2 k5 H  Bclock <= '0' ;$ s, k) X3 d, W! o$ U
wait for 5 ns ;
/ ]6 Y5 \8 j9 j. I" ?7 T( xend loop ;
$ N0 ^6 v3 x# A) Q3 ^$ z( jend process ;+ q, D  y+ V0 y# `
  A; i6 o2 ^! E/ @( |- @* U
process4 [7 W1 B' A! O6 _$ ?; Q$ X
variable j : integer := 0 ;8 K& \! t* u! a, M! c0 g
begin 4 h; V  c7 M- ]6 ?5 |
for j in 1 to 1000 loop . u5 d2 E9 C# S6 M2 N0 Z
clock_main <= '1' ;) K! ?# q2 k4 s6 K1 U4 Y/ ~
wait for 200 ns ;/ I  t8 Q: y4 J+ V; {
clock_main <= '0' ;
7 t1 y" B$ O/ |7 _/ r% fwait for 200 ns ;
- @. o8 X6 L. n4 B4 Y* C' Qend loop ;
. |9 V0 U  V* y3 z7 m! Z8 @6 L3 T5 Gend process ;
) y9 ^2 \" E: c/ R4 f6 H6 b& w% c% m5 l
process& `: O+ \/ Z$ }
file vector_file : text open read_mode is "C:\modeltech_6.5g\examples\rom_ram.in" ;
) U* J; @' A) q/ A--file vector_file : text IS IN "C:\modeltech_6.5g\examples\rom_ram.dat" ;
$ @% k7 o- Z4 y( u/ \1 Wvariable l , l2 : line ;7 b+ U. A1 }7 M- f8 c% H1 }9 E
variable q  : integer := 31 ;
$ k7 Z6 n# [. U& C. r! avariable count : integer ;
9 w. e' f( B1 J& G$ D* R2 c--variable t_a , t_b : std_logic_vector (31 downto 0) ; ( j3 m% K2 `. P# f& u
variable t_a , t_b : std_logic_vector (31 downto 0) ;
4 S/ u5 {7 k, x' ^# d- \; h4 o8 {variable space : character ;
4 C* R0 P9 }7 I, k% y3 ~( U- \1 Ebegin 7 l1 ?$ i) `0 R2 `2 `
& ]' e9 P% N$ t) v: m
while not endfile(vector_file) loop
, p6 b. m1 t0 x/ c: x! t: Y" n+ h--for count in 1 to 16 loop  X4 d8 H: \8 V1 C& A/ x$ ~( a6 ]
q := 31 ;0 P! {% _! \. G; `
readline(vector_file , l2) ;
1 E8 a1 `. `, f( K& l6 V; Y" T3 U3 }" }0 J) l) G% b8 f5 d6 R
for p in 0 to 31 loop -- data from RAM
8 h. [: _; {" K/ H' {# @6 ?3 V1 Qread(l2 , t_b(q)) ;4 a+ J, s  |( y9 V
q := q - 1 ;+ E: Z1 j1 ?% e) D, E) z4 Y
end loop ;# ^5 v9 K( l# X7 |! J+ ]+ q  a
q := 31 ;
  m3 Q! B+ A8 N# C" ]% ~. A/ b8 pdata_io <= t_b(31 downto 0) ;& Z1 Z5 L! s5 {7 a9 H
* N% Y# Z2 s. ~2 [' A9 ]
wait for 400 ns ;
  W7 o8 g8 ?0 @- N* ]end loop ;* N5 h; x+ F' ?  ~
wait for 8 ms ;
2 }  r/ P! \6 X7 [5 D0 N* b0 h--wait for 650 ns ;
; d5 D- n8 ~) }end process;
% v: b2 u$ _1 |# X
( u+ b% E8 j: B7 [7 j) e-- process to reset
6 g0 f! Q7 I1 y1 Z) i3 ?process, s7 S& T; T7 s7 Q7 M, ?
begin
1 w' D* U6 l9 o5 ~- rreset <= '1' ;
4 l7 s8 U- |5 ]6 Senbl <= '1' ;% ~/ x. _& t; \4 o/ M6 j
wait for 10 ns ;
8 p* h. y9 P# u9 n9 Yreset <= '0' ;) H2 d! k& n9 r8 O% ^  \6 t
wait ;  P* y1 v- e5 D9 e+ J. ^& j
end process ;
- y- Q4 j9 H& k" B  \, E7 c& {8 F) I5 X- ~$ K4 A
process! K# {: L! d1 i: C
begin, g# {% }5 g) i, l8 i
init <= '1' ;
& F& R5 ^  e$ F3 k" fwait for 15 ns ;
# z8 O- ?8 y3 p8 Iinit <= '0' ;0 k$ p# {% `* w" s
wait ;
, O4 q0 Y: B0 k) \end process ;7 H: q# P: `& a: w# u6 i

. k1 _1 l$ D& w; j9 q; N, Aend rtl ;
! ~1 {; b( o, N: y" P5 q0 r# U$ ^" @

; N$ W  W$ x& J$ n4 F
- s- Q& H9 _% f% i用modelsim仿真提示如下错误:No feasible entries for subprogram "read"./ ~8 Z- ]9 I# z* l- j. V, K
如果我屏蔽read一行,则程序编程可以通过,我刚学这个,还望高手指点。

该用户从未签到

2#
发表于 2012-12-18 22:00 | 只看该作者
read procedure 不支持你 t_b(q) 的 std_logic 类型。
) j7 k1 e0 b  Z6 m. I可以把 t_b(q) 的类型换一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-1 10:41 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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