Мне нужно создать блок блокировки прав, который имеет 4 модуля (логика, поворот, поворот с переносом и арифметический сдвиг). Я написал каждый модуль индивидуально, и все они работают, но мне нужен мультиплексор, чтобы вспоминать каждый модуль в модуле сдвига.Подмодули мультиплексирования
module lshr(a,lout);
input [7:0]a;
output [7:0]out;
assign lout[7]=0;
assign lout[6:0]= a[7:1];
endmodule
module rshr(a,rout);
input [7:0]a;
output [7:0]rout;
assign rout[7]=a[0];
assign rout[6:0]= a[7:1];
endmodule
module rcshr(a,cin,rcout);
input [7:0]a;
input cin;
output [7:0]rcout;
assign rcout[7]=cin;
assign rcout[6:0]= a[7:1];
endmodule
module ashr(a,aout);
input [7:0]a;
output [7:0]aout;
assign aout[7]=a[7];
assign aout[6:0]=a[7:1];
endmodule
module mux418bit(a,b,c,d,s0,s1,e);
input[7:0]a,b,c,d;
input s0,s1;
output[7:0]e;
module sru(a,cin,s0,s1,out);
input[7:0]a;
input cin
input s0,s1;
output[7:0]out;
????? i dont know what to do here!
endmodule
Спасибо за ответ, но мне сказали, что мой профессор не использовать случай и. ... Мне просто нужно добавить мультиплексор, чтобы указать вывод, но я не знаю, как это сделать! –
@ZG: Я немного изменил ответ. Можете ли вы использовать 'case' внутри модуля' mux418bit'? Конструкция 'case' будет синтезирована для мультиплексора. – Qiu
Нет, извините, я не профессионал в программировании с verilog. это пример, который она написала и попросила нас написать такой код. moduleAU (а, б, s0, s1, из, соиЬ, CIN); ввод [7: 0] a, b; вход cin, s0, s1; выход [7: 0]; выход cout; провод [7: 0] e; mux418bit mux (8'b00000000, b, ~ b, 8'b00000001, s0, s1, e); fulladder8bit fa8 (a, e, cin, cout, out); endmodule –