-2

「Unsigned 8-bit Error Tolerant Adder」は、「vhdl コード」で 2 つの 8 ビット数を加算します。私はすでに以下のコードを試しました.それはこれらのエラーを与えます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 ;

。前もって感謝します..

4

1 に答える 1

0

OK、これをコンパイルできない 3 つの問題があります。

Signal hn: std_logic_vector(7 downto 0) := hno(3 downto 0) & B"0000";

この行では、すでに を宣言しておりhn、ここで再度宣言しようとしています。ほとんどのシグナルが定義されている宣言領域でのみ、シグナルを宣言できます。2 番目のエラーはB"0000"; "0000"リテラルがバイナリであることを指定しようとしていると思われますが、std_logic_vectorとにかくに割り当てるときはこれがデフォルトです。あなたの正しい行は次のようになります。

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

この行の下の行にも同じエラーがあります。

3 番目のエラーはかなり些細なことです。あなたは を覚えていましたend process;が、 を忘れてしまいましたend architecture;

于 2016-05-03T08:39:31.273 に答える