Модераторы: Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с АЛУ на VHDL 
:(
    Опции темы
65602lover
Дата 30.5.2014, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.5.2014

Репутация: нет
Всего: нет



При симуляции пробного проекта АЛУ получаются такие временные диаграммы, как это исправить?

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity notand is
port(op: in std_logic_vector(2 downto 0);
a, b: in std_logic_vector (7 downto 0);
    c: out std_logic_vector (7 downto 0));
end notand;

architecture behav of notand is
begin
process (a,b,op)
VARIABLE tmp : std_logic_vector(7 downto 0);
begin
case op is
    when "000" => tmp:= a and b;
    when "001" => tmp:= a or b;
    when "010" => tmp:= a xor b;
    when "011" => tmp:= a + b;
    when "100" => tmp:= a - b;
    when others => tmp:= "00000000";
end case;
c<=tmp;
end process;
end behav;

URL=http://hostingkartinok.com/show-image.php?id=eaac1aac72c2a5724dfc4aacb4a765c7]
http://s7.hostingkartinok.com/uploads/imag...aacb4a765c7.jpg[/IMG][/URL][/IMG]
PM MAIL   Вверх
lait33
Дата 20.10.2015, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.10.2015

Репутация: нет
Всего: нет



тактирование ты не завел. вот и не работает. в общем починил пользуйся) и в process поставь только clk - свое тактирование


Код

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity notand is
port
(
    clk    : in std_logic;
    op        : in std_logic_vector(2 downto 0);
    a, b    : in std_logic_vector(7 downto 0);
   c        : out std_logic_vector(7 downto 0)
);
end notand;

architecture behav of notand is

signal tmp : std_logic_vector(7 downto 0) := (others => '0');

begin

process (clk,a,b,op)
begin
    if rising_edge(clk) then
        case op is
             when "000" => tmp <= a and b;
             when "001" => tmp <= a or b;
             when "010" => tmp <= a xor b;
             when "011" => tmp <= a + b;
             when "100" => tmp <= a - b;
             when others => tmp <= x"00";
        end case;
    end if;
end process;
c<=tmp;
end behav;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное (электроника) | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.