2016-04-28 12 views
-3

«Беззнаковый 8-разрядный терпеливый тонер», чтобы добавить два 8-разрядных номера в «код VHDL». Я уже пробовал код ниже. Он дает эти ошибки ** Ошибка: C: /Modeltech_pe_edu_10.4a/examples/etl1.vhd (34): рядом с «Сигналом»: синтаксическая ошибка ** Ошибка: C:/Modeltech_pe_edu_10. 4a/примеры/etl1.vhd (41): около "EOF": ошибка синтаксиса8-разрядная ошибка толерантного сумматора в vhdl. Я пробовал использовать коды, но они, похоже, не работают

#

код ниже

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 ; 

.THANKS заранее ..

+1

Вам нужно показать, что вы пробовали, и задать конкретный вопрос. Такие вопросы, как «Мне нужен код для x», никогда не получают ответов. –

+0

Спасибо. – Tejas

ответ

0

ОК, у вас есть три вопроса предотвращая это от компиляции:

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

В этой строке вы уже объявили hn и пытаетесь объявить ее здесь. Вы можете объявить только сигнал в декларативном регионе, где определены большинство ваших сигналов. Вторая ошибка: B"0000"; Я подозреваю, что вы пытаетесь указать, что ваш литерал "0000" двоичный, но это по умолчанию при назначении std_logic_vector в любом случае. Ваша правильная линия будет:

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

Те же ошибки присутствуют в строке ниже этой.

Третья ошибка довольно тривиальная. Вы запомнили end process;, но забыли end architecture;.