Utilice el lenguaje verilog para implementar la multiplicación de un bit de dos códigos originales de cuatro bits
Salida MOSI, MCLK, MCS
Entrada SYSCLK, MISO
Cable [3:0 ] x, y;
Cable[2:0]F;
Cable CLK;
desbordamiento de registro; :0] resultado;
reg[4:0]temp;
Siempre @(posedge CLK o negedge reset)
Iniciar
if(!reset)
Inicio
Resultado lt= 4' b0000
Desbordamiento lt= 1' B0;
Fin
Otros
Inicio
Caso (F)
3'b001:
Inicio
temp = {x[3], x} {y[3], y};
resultado lt= temp[3:0];
desbordamiento lt= temp [ 4] ^Temperatura[3];
Fin
3'b010:
Inicio
temp = {x[3] , x} ~{y[3], y} 1;
Resultado lt= temp[3:0];
Desbordamiento lt= temp[4] ^temperatura[3] ;
Fin
3'b011:
Inicio
Resultado= x ampy;
Desbordamiento = 1 ' B0;
Fin
3'b100:
Inicio
Resultado= x y;
Desbordamiento lt= 1 'B0;
Fin
3'b101:
Inicio
Resultado lt= x ^ y ;
Desbordamiento lt= 1 ' B0;
Fin
3'b110:
Inicio
Resultado lt= {1 'b0,x[3:1]};
Desbordamiento lt= 1' B0;
Fin
3'b111:
p>Inicio
Resultado lt= {x[2:0], 1' B0};
Desbordamiento lt= 1' B0;
Fin
Predeterminado:
Inicio
Resultado lt= 4' b0000
Desbordamiento lt= 1' B0;
Fin
Fin de caso
Fin
Fin
Asignación RESET = PS[2];
Asignación x = SWA[3:0];
Asignación y = SWB[3:0];
Asignación F = SWA[18:16];
Asignación LEDA[4:0] = {desbordamiento, resultado};
Asignación CLK = PS[0];
Cable[7:0] Hex0, Hex1, Hex2, Hex3, Hex4 , Hex5, Hex6, Hex7, Hex8, Hex9, Hex10, Hex11, Hex12, Hex13, Hex14, Hex15, Hex16, Hex16
Cable[19:0] SWC SW Gales del Sur
Cable[19:0]Leda;
Cable[3:0]P
S;
lcdswip lcdxx(.MISO(MISO), .MOSI(MOSI).MCLK(MCLK).MCS(MCS).SYSCLK(RELOJ DEL SISTEMA),
. Hex0( 8'h20)、Hex1(8'h20)、Hex2(8'h20)、Hex6(8'). h2d)、. Hex7(8'h34)、Hex8(8'h20)、. ), Hex18(8'h20), . Hex23(8'h20), . Hex25(8
.LEDA(LEDA),.LEDB(LEDB).LEDC(LEDC),
.SWA(Sudoeste de Gales).SWB(SWB) .SWC(. SWC).PS(PS)
);
Finalizar módulo