vhdl报错

entity v2114 is
Port ( d : inout STD_LOGIC_VECTOR (3 downto 0);
adr1 : in STD_LOGIC_VECTOR (4 downto 0);
adr2 : in STD_LOGIC_VECTOR (4 downto 0);
wr : in STD_LOGIC;
cs : in STD_LOGIC;
rd : in STD_LOGIC);
end v2114;

architecture Behavioral of v2114 is
type ram1 is array (32 to 0,32 downto 0) of STD_LOGIC ;
type ram2 is array (32 to 0,32 downto 0) of STD_LOGIC ;
type ram3 is array (32 to 0,32 downto 0) of STD_LOGIC;
type ram4 is array (32 to 0,32 downto 0) of std_logic ;
signal sram1 : ram1;
signal sram2 : ram2;
signal sram3 : ram3;
signal sram4 : ram4;
begin
process (cs,wr,rd,adr1,adr2,d)
begin
if(cs='0' and wr='0') then
sram1 (conv_integer (adr1), conv_integer (adr2))<=d(0);
sram2 (conv_integer (adr1) ,conv_integer (adr2))<=d(1);
sram3 (conv_integer (adr1),conv_integer (adr2))<=d(2);
sram4 (conv_integer (adr1),conv_integer (adr2))<=d(3);

end if;
end process;

d(0)<=sram1 (conv_integer (adr1),conv_integer (adr2)) when cs='0' and rd='0' else 'Z';
d(1)<=sram2 (conv_integer (adr1),conv_integer (adr2)) when cs='0' and rd='0' else 'Z';
d(2)<=sram3 (conv_integer (adr1),conv_integer (adr2)) when cs='0' and rd='0' else 'Z';
d(3)<=sram4 (conv_integer (adr1),conv_integer (adr2)) when cs='0' and rd='0' else 'Z';
end Behavioral;
实现的是2114的外部结构
Static elaboration of top level VHDL design unit v2114 in library work failed 。以及在这一句
sram1 (conv_integer (adr1), conv_integer (adr2))<=d(0);出现 No index value can belong to null index range

我试着用Quartus II编译了一下,没有错啊
前面我自己加了
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
只是有28个警告追问

No index value can belong to null index range在if(cs='0' and wr='0') then下一行报的错

温馨提示:内容为网友见解,仅供参考
无其他回答

VHDL代码出现near text "=>"; expecting ")", or ","错误,调用了库文件...
因为bit类型支持在表达式中直接出现连接运算符&,而std_logic类型则不支持,需要通过一个中间信号转接一下。比如先将'0'&temp_node2(2)&temp_node2(1)&'0'赋值给一个中间信号t,然后在元件例化语句中将Ain关联到这个中间信号t:Ain=>t。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有...

VHDL程序编译出错,报错can't determine definition of operator ""+...
1:将你程序中的bit_vector改为 std_logic_vector,USE IEEE.STD_LOGIC_UNSIGNED.ALL以及USE IEEE.STD_LOGIC_SIGNED.ALL可以使得“+”两方具有不同的数据类型,但不支持bit_vector。2:USE IEEE.STD_LOGIC_UNSIGNED.ALL以及USE IEEE.STD_LOGIC_SIGNED.ALL用一个就可以了,删除了USE IEEE.STD_LOGIC...

VHDL 报错 error 10568!!!
1、将in改为buffer,这样此端口可以进行赋值,但不能作输出 2、将in改为inout这样既可作输入又可作输出

Error(10500): VHDL syntax error at music.vhd(1) near text "WIDTH...
字面上看就是缺少实体或结构体,从你代码看,肯定不是VHDL了,VHDL没有width=9的写法,都是<=或者:=

VHDL编译错误
我在QuartusII 里编译了你的程序,报错:Error (10500): VHDL syntax error at p2r_CordicPipe.vhd.vhd(58) near text "compatibility"; expecting "begin", or a declaration statement “compatibility with Xilinx WebPack ”这一行,你用的Xilinx器件,是不是应该用 ModleSim (参考http:\/\/www...

VHDL报错std_logic type does not match integer literal
CASE JNK IS WHEN "00" => NULL;WHEN "01" => Q<='0';--你定义的Q是std_logic类型,但你赋值的时候由于没加单引号,被认为是integer类型了,所以应加单引号,下一句也是 WHEN "10" => Q<='1';另外Q好像应该定义为buffer模式才行吧。

VHDL报错,“ found illegal character'?”在倒数第二句(下面那一句...
错误说明 “ found illegal character'?” 发现非法字符,贴上的这句没有错误 可能是你在编辑源程序时的手误造成的,仔细看下那句的附近有什么符号(' 或?之类的)没 程序本身没什么问题的

vhdl报错Error (10818): Can't infer register for q[0] at dianzhen...
时钟的if语句是不能有else的,你把else去掉呗,时钟的if语句没有对应的else,简单的逻辑错误我以前也犯过哈哈

为什么modelsim编译vhdl总会出现near EOF : syntax error
因为你的module结束时少写了一个endmodule,报错的那行对应相应的module

VHDL仿真出现 Error:(vsim-3170) Could not find 'work,zg_vlg_vec...
我今天刚刚解决了这个问题 我的问题在于我的工程文件建在了e盘,而我的软件装在了c盘,当我把工程文件重新建立在安装软件时的那个c盘的文件夹时,就不会报错了

相似回答