_alex__ 0 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба Нужно написать задание в формате и VHDL и Verilog на синтез и минимизацию комбинационного устройства в базисе И-НЕ с 5 входами и 32 выходами со следующей таблицей истинности: 00000 00000000000000000000000000000001 00001 00000000000000000000000000000010 00010 00000000000000000000000000000100 00011 00000000000000000000000000001000 00100 00000000000000000000000000010000 00101 00000000000000000000000000100000 00110 00000000000000000000000001000000 00111 00000000000000000000000010000000 01000 00000000000000000000000100000000 01001 00000000000000000000001000000000 01010 00000000000000000000010000000000 01011 00000000000000000000100000000000 01100 00000000000000000001000000000000 01101 00000000000000000010000000000000 01110 00000000000000000100000000000000 01111 00000000000000001000000000000000 10000 00000000000000010000000000000000 10001 00000000000000100000000000000000 10010 00000000000001000000000000000000 10011 00000000000010000000000000000000 10100 00000000000100000000000000000000 10101 00000000001000000000000000000000 10110 00000000010000000000000000000000 10111 00000000100000000000000000000000 11000 00000001000000000000000000000000 11001 00000010000000000000000000000000 11010 00000100000000000000000000000000 11011 00001000000000000000000000000000 11100 00010000000000000000000000000000 11101 00100000000000000000000000000000 11110 01000000000000000000000000000000 11111 10000000000000000000000000000000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба Нужно написать задание в формате и VHDL и Verilog на синтез и минимизацию комбинационного устройства в базисе И-НЕ с 5 входами и 32 выходами со следующей таблицей истинности: 00000 00000000000000000000000000000001 00001 00000000000000000000000000000010 00010 00000000000000000000000000000100 00011 00000000000000000000000000001000 00100 00000000000000000000000000010000 00101 00000000000000000000000000100000 00110 00000000000000000000000001000000 00111 00000000000000000000000010000000 01000 00000000000000000000000100000000 01001 00000000000000000000001000000000 01010 00000000000000000000010000000000 01011 00000000000000000000100000000000 01100 00000000000000000001000000000000 01101 00000000000000000010000000000000 01110 00000000000000000100000000000000 01111 00000000000000001000000000000000 10000 00000000000000010000000000000000 10001 00000000000000100000000000000000 10010 00000000000001000000000000000000 10011 00000000000010000000000000000000 10100 00000000000100000000000000000000 10101 00000000001000000000000000000000 10110 00000000010000000000000000000000 10111 00000000100000000000000000000000 11000 00000001000000000000000000000000 11001 00000010000000000000000000000000 11010 00000100000000000000000000000000 11011 00001000000000000000000000000000 11100 00010000000000000000000000000000 11101 00100000000000000000000000000000 11110 01000000000000000000000000000000 11111 10000000000000000000000000000000 Вам надо подправить это под свое - тут все просто, разбиретесь (мне честно лень) library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity decoder is Port ( s : in STD_LOGIC_VECTOR (2 downto 0); y : out STD_LOGIC_VECTOR (7 downto 0)); end decoder; architecture Behavioral of decoder is begin with sel select y<="00000001" when "000", "00000010" when "001", "00000100" when "010", "00001000" when "011", "00010000" when "100", "00100000" when "101", "01000000" when "110", "10000000" when "111", "00000000" when others; end Behavioral; Затем можете посмотреть RTL Viewer – утилита, которая дает возможность увидеть логическую реализацию проекта в графическом виде. Это очень полезный инструмент для анализа результатов синтеза HDL проектов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 1 марта, 2017 Опубликовано 1 марта, 2017 (изменено) · Жалоба LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; ENTITY DECODER IS GENERIC ( DATA_WIDTH : INTEGER := 5; -- Ширина входных данных EFFECTIVE_VALUE : STD_LOGIC := '1' -- Если = 1 тогда выод имеет такой вид: "0000100", если 0 тогда "1111011" ); PORT ( DATA : IN STD_LOGIC_VECTOR(DATA_WIDTH-1 DOWNTO 0); DECODED : OUT STD_LOGIC_VECTOR(DATA_WIDTH**2-1 DOWNTO 0) ); END ENTITY; ARCHITECTURE RTL OF DECODER IS BEGIN PROCESS ( DATA ) BEGIN DECODED <= (OTHERS => NOT EFFECTIVE_VALUE); -- все разряды числа равны нулю или единице DECODED(TO_INTEGER(UNSIGNED(DATA))) <= EFFECTIVE_VALUE; -- кроме номера разряда равного значению входа END PROCESS; END ARCHITECTURE; Таблица истинности, которую Вы показали - это обычный дешифратор. Вот только не совсем понятно задание Нужно написать задание в формате и VHDL и Verilog на синтез и минимизацию комбинационного устройства в базисе И-НЕ с 5 входами и 32 выходами со следующей таблицей истинности: Надо при помощи элементов И-НЕ в VHDL/VERILOG описать схему дешифратора ? Допустим я на VHDL/VERILOG опишу элемент И-НЕ, а сам опишу сам дешифратор опишу в схемном редакторе, это подойдет ? Да и минимизация - это очень спорный вопрос, не факт что минимизация при помощи карт Карно-Вейча, с последующим переносом схемы на VHDL даст результат лучше, чем явное поведенческое описание на языке VHDL/VERILOG. Попробуйте при помощи карт Карно-Вейча получить уравнения описывающие поведение выходов в базисе И-НЕ и потом просто описать все 32 вывода вручную. Как при помощи карт Карно описать дешифратор можно глянуть тут: http://gorgeous-karnaugh.com/ru/uchebnik/p...-4-decoder.html Изменено 1 марта, 2017 пользователем Flip-fl0p Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_alex__ 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба Надо при помощи элементов И-НЕ в VHDL/VERILOG описать схему дешифратора ? Допустим я на VHDL/VERILOG опишу элемент И-НЕ, а сам опишу сам дешифратор опишу в схемном редакторе, это подойдет ? Да и минимизация - это очень спорный вопрос, не факт что минимизация при помощи карт Карно-Вейча, с последующим переносом схемы на VHDL даст результат лучше, чем явное поведенческое описание на языке VHDL/VERILOG. Попробуйте при помощи карт Карно-Вейча получить уравнения описывающие поведение выходов в базисе И-НЕ и потом просто описать все 32 вывода вручную. Как при помощи карт Карно описать дешифратор можно глянуть тут: http://gorgeous-karnaugh.com/ru/uchebnik/p...-4-decoder.html мне нужно разобраться как на языках: 1)Verilog 2)VHDL составить задание для САПР на синтез и минимизацию такого устройства в базисе И-НЕ. Т.е. результатом синтеза должна быть минимизированная схема устройства, состоящая из логических элементов И-НЕ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lerk 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба module dec( input wire [4:0] w_in_code, output wire [31 : 0] w_out_select ); assign w_out_select = 1 << w_in_code ; endmodule Что касается синтеза и минимизации, то надо "просто взять" и выкинуть из библиотеки, которую использует сапр для синтеза, все кроме и-не. "задание" для сапр в моем понимании просто набор команд в скрипте, запуск которых даст вам из исходного HDL кода готовый минимизированный нетлист в требуемом базисе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 1 марта, 2017 Опубликовано 1 марта, 2017 (изменено) · Жалоба мне нужно разобраться как на языках: 1)Verilog 2)VHDL составить задание для САПР на синтез и минимизацию такого устройства в базисе И-НЕ. Т.е. результатом синтеза должна быть минимизированная схема устройства, состоящая из логических элементов И-НЕ. 1. Какой САПР имел ввиду преподаватель ? 2. Что значит составить задание для САПР ? 3. Какой критерий минимизации ? Если говорить про FPGA (во всяком случае я думаю, что Вы имеете ввиду именно FPGA\CPLD,поскольку тему создали в соответствующем подразделе форума), то САПР для работы с ними навряд ли сможет выполнить Вашу задачу, поскольку задача САПР синтезировать и разместить Ваше текстовое описание в логические ячейки (это если очень упрощённо говорить). Про устройство ПЛИС почитайте к примеру вот тут: https://marsohod.org/11-blog/265-fpga Таким образом заставить САПР создать текстовое описание схемы в виде базиса Шеффера невозможно, поскольку как такового внутри ПЛИС этого базиса нет, а внутри ПЛИС есть универсальные ячейки, которые могут быть сконфигурированы на выполнение определенных функций. Тут скорее Вам надо найти программу, которая по описанию на VHDL/Verilog строит схему в базисе Шеффера. Есть ли такие программы - это уже другой вопрос. Пример текстового описания дешифратора на языке VHDL в данной теме приведён в 2 разных вариантах. Изменено 1 марта, 2017 пользователем Flip-fl0p Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба Т.е. результатом синтеза должна быть минимизированная схема устройства, состоящая из логических элементов И-НЕ. Это какой же САПР так делает? Синтезатор раскладывает схему в тот базис, который есть в целевой плисине, а там далеко не И-НЕ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба так минимизацию делает уже сам САПР для ПЛИС, Вы описываете как я Вам показал. Все остальное САПР сделает сам. Результат Вы можете посмотреть через указанную утилиту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_alex__ 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба мне нужно спроектировать и минимизировать такое устройство в базисе И-НЕ без привязки к какой либо ПЛИС. программа modelsim от mentor умеет такое делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tausinov 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба мне нужно спроектировать и минимизировать такое устройство в базисе И-НЕ без привязки к какой либо ПЛИС. программа modelsim от mentor умеет такое делать? ModelSim - симулятор, там вы сможете только сравнить результат работы вашей схемы с эталонной таблицей истинности. К вопросу о минимизации - это придется делать ручками или какой-то специальной программой, в современных ПЛИС вся логика реализуется на LUT, т.о. ни о каком базисе тут речь уже не идет. В целом задача довольно тривиальная - рисуем карту Карно, получаем схему колдуем, переводя ее в нужный базис, кодируем и проверяем работу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 2 марта, 2017 Опубликовано 2 марта, 2017 · Жалоба мне нужно спроектировать и минимизировать такое устройство в базисе И-НЕ без привязки к какой либо ПЛИС. программа modelsim от mentor умеет такое делать? Так проектируйте. Карты Карно Вам в помощь. Ссылку на пример, как это можно делать я Вам давал. Вы точно правильно поняли задание ? Очень странно, что преподаватель сказал делать именно так : по VHDL\Verilog описанию получить минимизированную(скорее всего по количеству лог. элементов, поскольку это классика) схему в базисе Шеффера. Мне кажется надо делать наоборот. Полученную схему в базисе Шеффера перевести в HDL - тогда задание логичное и понятное поскольку надо будет: 1. Нарисовать таблицу истиности. 2. Нарисовать карты Карно. 3. При помощи карт Карно получить минимизированные функции. 4. Перевести их в базис Шеффера. 5. Нарисовать общую схему устройства. 6. Описать полученную схему на языках HDL. Описанные пункты - это классика в обучении студентов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 2 марта, 2017 Опубликовано 2 марта, 2017 (изменено) · Жалоба Ловите код супер дешифратора на Verilog module DC5in32(in,out); input [4:0] in; output reg [31:0] out; integer i; always @(*) for(i=0;i<32;i=i+1) out[i] = (i[4] ? in[4] : ~in[4]) &(i[3] ? in[3] : ~in[3]) &(i[2] ? in[2] : ~in[2]) &(i[1] ? in[1] : ~in[1]) &(i[0] ? in[0] : ~in[0]); endmodule Изменено 2 марта, 2017 пользователем likeasm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 2 марта, 2017 Опубликовано 2 марта, 2017 · Жалоба Ловите код супер дешифратора на Verilog module DC5in32(in,out); input [4:0] in; output reg [31:0] out; integer i; always @(*) for(i=0;i<32;i=i+1) out[i] = (i[4] ? in[4] : ~in[4]) &(i[3] ? in[3] : ~in[3]) &(i[2] ? in[2] : ~in[2]) &(i[1] ? in[1] : ~in[1]) &(i[0] ? in[0] : ~in[0]); endmodule Стесняюсь спросить, а чего в нем суперского ? :bb-offtopic: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 2 марта, 2017 Опубликовано 2 марта, 2017 · Жалоба Это был сарказм :bb-offtopic: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_alex__ 0 2 марта, 2017 Опубликовано 2 марта, 2017 · Жалоба здесь привели программу gorgeous-karnaugh.com которая именно минимизацией занимается. а какие еще существуют программы именно для минимизации логических функций в опредленном базисе? в matlab такое возможно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться