用verilog语言实现两个四位原码的一位乘法
输出MOSI、MCLK、MCS
输入SYSCLK,MISO
导线[3:0] x,y;
电线[2:0]F;
电线CLK;
reg溢出;
reg [3:0]结果;
reg[4:0]temp;
始终@(posedge CLK或negedge复位)
开始
如果(!重置)
开始
结果& lt= 4 ' b0000
溢出& lt= 1 ' B0;
结束
其他
开始
案例(F)
3'b001:
开始
temp = {x[3],x} + {y[3],y };
结果& lt= temp[3:0];
溢出& lt= temp[4] ^温度[3];
结束
3'b010:
开始
temp = {x[3],x} + ~{y[3],y }+1;
结果& lt= temp[3:0];
溢出& lt= temp[4] ^温度[3];
结束
3'b011:
开始
结果& lt= x & ampy;
溢出& lt= 1 ' B0;
结束
3'b100:
开始
结果& lt= x | y;
溢出& lt= 1 ' B0;
结束
3'b101:
开始
结果& lt= x ^ y;
溢出& lt= 1 ' B0;
结束
3'b110:
开始
结果& lt= {1'b0,x[3:1]};
溢出& lt= 1 ' B0;
结束
3'b111:
开始
结果& lt= {x[2:0],1 ' B0 };
溢出& lt= 1 ' B0;
结束
默认值:
开始
结果& lt= 4 ' b0000
溢出& lt= 1 ' B0;
结束
结束案例
结束
结束
赋值RESET = PS[2];
赋值x = SWA[3:0];
赋值y = SWB[3:0];
赋值F = SWA[18:16];
赋值LEDA[4:0]= {溢出,结果};
赋值CLK = PS[0];
电线[7:0] Hex0,Hex1,Hex2,Hex3,Hex4,Hex5,Hex6,Hex7,Hex8,Hex9,Hex10,Hex11,Hex12,Hex13,Hex14,Hex15,Hex16,Hex16
电线[19:0]SWC西南威尔士州西南威尔士州;
电线[19:0]乐达;
wire[3:0]PS;
lcdswip lcdxx(。味噌(味噌),。MOSI(MOSI)。麦克尔克(MCLK)。MCS(MCS)。SYSCLK(系统时钟),
. Hex0(8'h20)、. Hex1(8'h20)、. Hex2(8'h20)、. Hex3(8'h20)、. Hex4(8'h43)、. Hex5(8'h48)、. Hex6(8'h2d)、. Hex7(8'h34)、. Hex8(8'h20)、. Hex9(8'h53)、. Hex165438
. Hex16(8'h20)、. Hex17(8'h20)、. Hex18(8'h20)、. Hex19(8'h20)、. Hex20(8'h20)、. Hex22(8'h20)、. Hex23(8'h20)、. Hex24(8'h20)、. Hex25(8
。乐达(LEDA),。LEDB(LEDB)。LEDC(LEDC)、
。SWA(西南威尔士州)。SWB(SWB)。SWC(SWC)。PS(PS)
);
末端模块