VHDL/vivado语法错误
写一个VHDL模块,用于并行输入,并行输出右移 图的寄存器(已附),但添加一个活动低电平异步 清除信号ClrN。不要在代码中使用单个触发器。 模拟该模块,以获得与图1相似的时序图 (附件) 请使用下列参数生成波形 -为3.5个时钟周期设置ClrN=1,为下半个时钟周期设置ClrN=0,为剩余fo测试设置ClrN=1 -对于5个时钟周期,设置L=1;对于接下来的3个时钟周期,设置L=0;对于其余的测试,设置L=1 -设置SI=1 -组D=0101 -对于1个时钟周期,设置Sh=0;对于接下来的5个时钟周期,设置Sh=1;对于其余的测试,设置Sh=0 提交模拟波形,以演示设备的操作 代码 我收到错误VHDL/vivado语法错误,vhdl,vivado,Vhdl,Vivado,写一个VHDL模块,用于并行输入,并行输出右移 图的寄存器(已附),但添加一个活动低电平异步 清除信号ClrN。不要在代码中使用单个触发器。 模拟该模块,以获得与图1相似的时序图 (附件) 请使用下列参数生成波形 -为3.5个时钟周期设置ClrN=1,为下半个时钟周期设置ClrN=0,为剩余fo测试设置ClrN=1 -对于5个时钟周期,设置L=1;对于接下来的3个时钟周期,设置L=0;对于其余的测试,设置L=1 -设置SI=1 -组D=0101 -对于1个时钟周期,设置Sh=0;对于接下来的5个
[Synth 8-1789]无法更新'in'对象dout
我尝试了以下方法:
library ieee;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
entity insertname is
port (
SI, Clk, ClrN, Sh, L : in std_logic;
Din : in std_logic_vector (3 downto 0);
SO : out std_logic;
Dout : std_logic_vector (3 downto 0)
);
end entity insertname;
architecture behavioral of insertname is
signal temp: std_logic_vector (3 downto 0) := "0000";
begin
process (Clk, ClrN)
begin
if ClrN = '0' then
temp <= x"0";
elsif Clk'event and Clk = '1' and Sh = '1' then
temp <= SI & temp(3 downto 1);
SO <= temp(0);
elsif Clk'event and Clk = '1' and Sh = '0' and L = '1' then
temp <= Din;
elsif Clk'event and Clk='1' and Sh='0' and L='0' then
temp <= temp;
end if;
end process;
Dout <= temp;
end behavioral;
ieee库;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_UNSIGNED.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
实体insertname为
港口(
标准逻辑中的SI、Clk、ClrN、Sh、L;
Din:标准逻辑向量(3到0);
SO:输出std_逻辑;
Dout:std_逻辑_向量(3到0)
);
结束实体插入名;
insertname的体系结构是
信号温度:标准逻辑向量(3到0):=“0000”;
开始
进程(Clk、ClrN)
开始
如果ClrN='0',则
要修复语法错误,请检查实体声明中的端口列表:Dout
信号应定义为out
,如下所示:
Dout : out std_logic_vector (3 downto 0)
如用户1155120、IEEE标准1076-2008、6.5.2接口对象声明所述:
如果没有选择任何模式
在接口声明(而非接口)中显式给出
文件声明,假定模式为。
IEEE Std 1076-2008,6.5.2接口对象声明“如果接口声明中没有明确给出除接口文件声明以外的模式,则假定模式为。”@user1155120谢谢,很高兴将来知道。我总是明确地定义模式,所以这不是一个问题。这些都来自于小查尔斯·H·罗斯和拉里·L·金尼的《逻辑设计基础》第六版,第360-361页。请注意,您制作了一个单独的触发器。您还可以将图12.10(b)中触发器前面显示的多路复用器表示为内部if语句。您不需要在顺序元素(寄存器、触发器)中为自身赋值。注:表12-1未显示。从图12-10(b)中可以看出,您的班次分配不正确。