реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как задать значения для проверки таблицы истинности?
_alex__
сообщение Mar 14 2017, 14:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 25-06-14
Пользователь №: 82 059



Имеется устройство с таким vhdl кодом:
Код
entity New1 is
port(
    x1,x2,x3,x4,x5 : in bit;
    y1,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y2,y20,y21,y22,y23,y24,y25,y26,y
27,y28,y29,y3,y30,y31,y32,y4,y5,y6,y7,y8,y9 : out bit
    );
end New1;

architecture New1_functional of New1 is
begin
y1 <= x1 and x2 and x3 and x4 and x5;
y10 <= (not x1) and x2 and x3 and x4 and (not x5);
y11 <= (not x1) and x2 and x3 and (not x4) and x5;
y12 <= x1 and x2 and x3 and x4 and (not x5);
y13 <= (not x1) and x2 and x3 and (not x4) and (not x5);
y14 <= (not x1) and x2 and (not x3) and x4 and x5;
y15 <= (not x1) and x2 and (not x3) and x4 and (not x5);
y16 <= (not x1) and x2 and (not x3) and (not x4) and x5;
y17 <= (not x1) and x2 and (not x3) and (not x4) and (not x5);
y18 <= (not x1) and (not x2) and x3 and x4 and x5;
y19 <= (not x1) and (not x2) and x3 and x4 and (not x5);
y2 <= x1 and (not x2) and x3 and x4 and (not x5);
y20 <= (not x1) and (not x2) and x3 and (not x4) and x5;
y21 <= (not x1) and (not x2) and x3 and (not x4) and (not x5);
y22 <= (not x1) and (not x2) and (not x3) and x4 and x5;
y23 <= x1 and x2 and x3 and (not x4) and x5;
y24 <= (not x1) and (not x2) and (not x3) and x4 and (not x5);
y25 <= (not x1) and (not x2) and (not x3) and (not x4) and x5;
y26 <= (not x1) and (not x2) and (not x3) and (not x4) and (not x5);
y27 <= x1 and x2 and x3 and (not x4) and (not x5);
y28 <= x1 and x2 and (not x3) and x4 and x5;
y29 <= x1 and x2 and (not x3) and x4 and (not x5);
y3 <= x1 and (not x2) and x3 and (not x4) and x5;
y30 <= x1 and x2 and (not x3) and (not x4) and x5;
y31 <= x1 and x2 and (not x3) and (not x4) and (not x5);
y32 <= x1 and (not x2) and x3 and x4 and x5;
y4 <= x1 and (not x2) and x3 and (not x4) and (not x5);
y5 <= x1 and (not x2) and (not x3) and x4 and x5;
y6 <= x1 and (not x2) and (not x3) and x4 and (not x5);
y7 <= x1 and (not x2) and (not x3) and (not x4) and x5;
y8 <= x1 and (not x2) and (not x3) and (not x4) and (not x5);
y9 <= (not x1) and x2 and x3 and x4 and x5;
end New1_functional;

Нужно проверить таблицу истинности для всех возможных значений на входе.
Помогите написать vhdl тестовый файл, содержащий полный набор входных значений и
вывода значений выходов таблицы истинности в stdout.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 15 2017, 11:56
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 267
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(_alex__ @ Mar 14 2017, 16:03) *
Имеется устройство с таким vhdl кодом:

подайте на вход 5 битный счетчик, результаты запишите в файл, далее матлабом или ПО проверяете результат работы..


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
_alex__
сообщение Mar 25 2017, 19:22
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 25-06-14
Пользователь №: 82 059



Цитата(Maverick @ Mar 15 2017, 11:56) *
подайте на вход 5 битный счетчик, результаты запишите в файл, далее матлабом или ПО проверяете результат работы..

помогите написать код для подачи на мое устройство кода с двоичного 5-разрядного счетчика.
Go to the top of the page
 
+Quote Post
Александр77
сообщение Mar 26 2017, 08:50
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 545
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Как-то так
Код
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity New1_test
port(
y1,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y2,y20,y21,y22,y23,y24,y25,y26,y27,y2
8,y29,y3,y30,y31,y32,y4,y5,y6,y7,y8,y9 : out std_logic
);
end entity;

architecture tst of New1_test is

component New1 is
port(
    x1,x2,x3,x4,x5 : in std_logic;
    y1,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y2,y20,y21,y22,y23,y24,y25,y26,y
27,y28,y29,y3,y30,y31,y32,y4,y5,y6,y7,y8,y9 : out std_logic
    );
end component;

signal x1,x2,x3,x4,x5 : std_logic:='0';

begin

D1:New1
port map(
    x1,
    x2,
    x3,
    x4,
    x5,
    y1,
    y10,
    y11,
    y12,
    y13,
    y14,
    y15,
    y16,
    y17,
    y18,
    y19,
    y2,
    y20,
    y21,
    y22,
    y23,
    y24,
    y25,
    y26,
    y27,
    y28,
    y29,
    y3,
    y30,
     y31,
    y32,
    y4,
    y5,
    y6,
    y7,
    y8,
     y9
    );

count:process
variable cnt_v:unsiged(4 downto 0):=to_unsigned(0,5);
constant step_c:unsigned(4 downto 0):=to_unsigned(1,5);
begin
    wait for 100 ns; x5<=std_logic(cnt_v(4)); x4<=std_logic(cnt_v(3)); x3<=std_logic(cnt_v(2)); x2<=std_logic(cnt_v(1)); x1<=std_logic(cnt_v(0));
   wait for 100 ns; cnt_v:=cnt_v+step_v;
end tst;

А еще с целью уменьшения в последующем строк и назначений, можно в самом проекте изначально объявлять сигналы векторами.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th May 2017 - 17:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.03843 секунд с 7
ELECTRONIX ©2004-2016