名称:16位乘法器设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
1)用verilog写一个乘法器(数据位宽16位), 并进行仿真验证。
2)手工画一个SRAM单元及阵列的框图。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. 仿真图
图中仿真了5组乘法,可看到:
0*0=0
255*38=9690
65530*4287=280927110
31136*3548=110470528
257*268=68876
部分代码展示:
//16bit乘法器 module?Multiplier_16bit(mult_A,mult_B,clk,start,Done,mult_product); input?[15:0]?mult_A,mult_B;???//mult_A是乘数,mult_B是被乘数 input?clk,start;//start高电平时输入乘数 output?Done;//乘积计算完成 output?[31:0]?mult_product;//乘积 reg?Done; reg?[31:0]?mult_product=32'd0; reg?[31:0]?mult_product_buf=32'd0; parameter?INIT=2'd0; parameter?ADD=2'd1; parameter?SHIFT=2'd2; reg[1:0]?state=INIT;//初始状态为INIT reg[31:0]?mult_B_buf=32'd0;???????//临时变量 integer?Count=0; always@(posedge?clk) ??begin ?case(state) INIT://初始状态 ?if(start)begin state=ADD;???//start有效跳转到下一个状态ADD mult_B_buf[15:0]=mult_B;???//取被乘数 mult_B_buf[31:16]=16'd0;???//临时变量的高16位置0 end ?else?????????????????? begin mult_product_buf=0; Count=0; Done=0;?????????????//运算未完成 state=INIT;??????//初始状态 end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=966
阅读全文
431