vhdl中的8位容错加法器。我已经尝试了可用的代码,但它们似乎不起作用

vhdl中的8位容错加法器。我已经尝试了可用的代码,但它们似乎不起作用,vhdl,vlsi,Vhdl,Vlsi,“无符号8位容错加法器”,用于在“vhdl代码”中添加两个8位数字。我已经尝试了下面的代码。它给出了这些错误 **错误:C:/Modeltech_pe_edu_10.4a/examples/etl1.vhd(34):接近“信号”:语法错误 **错误:C:/Modeltech_pe_edu_10.4a/examples/etl1.vhd(41):接近“EOF”:语法错误 # 代码如下 enter code here library ieee; use IEEE.std_logic_1164.al

“无符号8位容错加法器”,用于在“vhdl代码”中添加两个8位数字。我已经尝试了下面的代码。它给出了这些错误 **错误:C:/Modeltech_pe_edu_10.4a/examples/etl1.vhd(34):接近“信号”:语法错误 **错误:C:/Modeltech_pe_edu_10.4a/examples/etl1.vhd(41):接近“EOF”:语法错误

# 代码如下

enter code here

library ieee;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use ieee.std_logic_unsigned.all;
entity adr is
port (a,b: in std_logic_vector(7 downto 0);
  output : out std_logic_vector(7 downto 0));
 end adr ;

architecture eta of adr is
 signal hn,ln: std_logic_vector(7 downto 0);
 signal parta2,partb2,hno:std_logic_vector(3 downto 0);
 signal parta1,partb1: std_logic_vector(3 downto 0);
 signal lno:std_logic_vector(3 downto 0);

begin

process (a,b)

begin

     parta1<= a(7 downto 4); -- parta1<= a(7 downto 4);
     parta2<= a(3 downto 0);  --parta2<= a(3 downto 0);

     partb1<=  b(7 downto 4); --partb1<= b(7 downto 4);
     partb2<=  b(3 downto 0); -- partb2<= b(3 downto 0);




hno<= std_logic_vector(unsigned(parta1)+ unsigned(partb1)); --4 bit msb
lno<= std_logic_vector((unsigned(partb2))xor(unsigned(partb2)));--4bit lsb

Signal hn: std_logic_vector(7 downto 0) := hno(3 downto 0) & B"0000";-- concatenation of hn with zeros
Signal ln: std_logic_vector(7 downto 0) := B"0000" & lno(3 downto 0);--concatenation ln with zeros


output<=(hn or ln);

end process ;
在此处输入代码
图书馆ieee;
使用IEEE.std_logic_1164.all;
使用IEEE.numeric_std.all;
使用ieee.std_logic_unsigned.all;
实体adr为
端口(a,b:标准逻辑向量(7到0);
输出:输出标准逻辑向量(7到0);
终止不良反应;
adr的体系结构是
信号hn,ln:std_逻辑_向量(7到0);
信号部分A2、部分B2、hno:标准逻辑向量(3到0);
信号部分A1、部分B1:标准逻辑向量(3到0);
信号lno:标准逻辑矢量(3到0);
开始
过程(a、b)
开始

第1部分好的,有三个问题阻止编译:

Signal hn: std_logic_vector(7 downto 0) := hno(3 downto 0) & B"0000";
在这一行中,您已经声明了
hn
,并试图在这里再次声明它。您只能在声明性区域中声明一个信号,其中定义了大多数信号。第二个错误是
B“0000”
;我怀疑您试图指定您的文字
“0000”
是二进制的,但这是在分配给
标准逻辑向量时的默认值。你的正确路线是:

hn <= hno(3 downto 0) & "0000";

hn您需要展示您尝试过的内容并提出具体问题。像“我需要x的代码”这样的问题永远不会得到答案。