evmal06 0 18 ноября, 2020 Опубликовано 18 ноября, 2020 · Жалоба Всем привет. Есть данный код для симуляции работы дешифратора (само описание дешифратора и тестбенч). сам дешифратор: module Test(x0, x1, x2, x3, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15); input x0, x1, x2, x3; output F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15; assign F0=!x0&&!x1&&!x2&&!x3; assign F1=!x0&&!x1&&!x2&&x3; assign F2=!x0&&!x1&&x2&&!x3; assign F3=!x0&&!x1&&x2&&x3; assign F4=!x0&&x1&&!x2&&!x3; assign F5=!x0&&x1&&!x2&&x3; assign F6=!x0&&x1&&x2&&!x3; assign F7=!x0&&x1&&x2&&x3; assign F8=x0&&!x1&&!x2&&!x3; assign F9=x0&&!x1&&!x2&&x3; assign F10=x0&&!x1&&x2&&!x3; assign F11=x0&&!x1&&x2&&x3; assign F12=x0&&x1&&!x2&&!x3; assign F13=x0&&x1&&!x2&&x3; assign F14=x0&&x1&&x2&&!x3; assign F15=x0&&x1&&x2&&x3; endmodule testbench: `timescale 1 ns / 1 ns module testbench; localparam t = 20; reg x0, x1, x2, x3; reg F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15; initial begin x0 <= 0; x1 <= 0; x2 <= 0; x3 <= 0; #20 x0 <= 0; x1 <= 0; x2 <= 0; x3 <= 1; #20 x0 <= 0; x1 <= 0; x2 <= 1; x3 <= 0; #20 x0 <= 0; x1 <= 0; x2 <= 1; x3 <= 1; #20 x0 <= 0; x1 <= 1; x2 <= 0; x3 <= 0; #20 x0 <= 0; x1 <= 1; x2 <= 0; x3 <= 1; #20 x0 <= 0; x1 <= 1; x2 <= 1; x3 <= 0; #20 x0 <= 0; x1 <= 1; x2 <= 1; x3 <= 1; #20 x0 <= 1; x1 <= 0; x2 <= 0; x3 <= 0; #20 x0 <= 1; x1 <= 0; x2 <= 0; x3 <= 1; #20 x0 <= 1; x1 <= 0; x2 <= 1; x3 <= 0; #20 x0 <= 1; x1 <= 0; x2 <= 1; x3 <= 1; #20 x0 <= 1; x1 <= 1; x2 <= 0; x3 <= 0; #20 x0 <= 1; x1 <= 1; x2 <= 0; x3 <= 1; #20 x0 <= 1; x1 <= 1; x2 <= 1; x3 <= 0; #20 x0 <= 1; x1 <= 1; x2 <= 1; x3 <= 1; end Test dut ( .x0(x0), .x1(x1), .x2(x2), .x3(x3), .F0(F0), .F1(F1), .F2(F2), .F3(F3), .F4(F4), .F5(F5), .F6(F6), .F7(F7), .F8(F8), .F9(F9), .F10(F10), .F11(F11), .F12(F12), .F13(F13), .F14(F14), .F15(F15) ); initial begin #300; $finish(); end endmodule Необходимо оптимизировать код. Как это можно сделать? Подскажите, пожалуйста Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 18 ноября, 2020 Опубликовано 18 ноября, 2020 · Жалоба Приветствую! 4 hours ago, evmal06 said: ... testbench: ... Необходимо оптимизировать код. Как это можно сделать? Подскажите, пожалуйста Для начала почитайте учебник по Verilog и подумайте как представить входные и выходные сигналы как вектор, что бы работать с числом, а не с отдельными битами. Например так - ... input x0, x1, x2, x3; output F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15; ... wire [ 3:0] x_in; wire [15:0] y_ou; assign x_in = {x3, x2, x1, x0}; assign y_ou = 1<<(~x_in); assign {F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15} = y_ou; А заодно и подучите битовые операции с векторами. А то препод заподозрит неладное если не сможете объяснить всю эту белиберду Если еще и циклы выучите то сможете существенно упростить ваш testbench. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evmal06 0 19 ноября, 2020 Опубликовано 19 ноября, 2020 · Жалоба Спасибо большое за помощь! 12 часов назад, RobFPGA сказал: Приветствую! Для начала почитайте учебник по Verilog и подумайте как представить входные и выходные сигналы как вектор, что бы работать с числом, а не с отдельными битами. А можете, пожалуйста, какой-нибудь учебник посоветовать. Был бы очень рад! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 19 ноября, 2020 Опубликовано 19 ноября, 2020 · Жалоба 36 minutes ago, evmal06 said: Спасибо большое за помощь! А можете, пожалуйста, какой-нибудь учебник посоветовать. Был бы очень рад! https://marsohod.org/11-blog/60-books Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evmal06 0 19 ноября, 2020 Опубликовано 19 ноября, 2020 · Жалоба 7 часов назад, des00 сказал: https://marsohod.org/11-blog/60-books Спасибо!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться