实验三乘、除法运算器实验报告实验三乘、除法运算器实验报告一、实验目的 1 、掌握移位加算法设计乘法运算单元的基本思想 2 、掌握阵列算法乘法运算单元的设计方法 3 、掌握基于状态机的乘法运算单元的设计方法 4 、掌握基于宏模块的乘除法运算器的设计方法二、实验任务 1 、完成一个基于阵列的 4 位无符号乘法运算器的设计; 实现代码为: module c01(x, y, out); input [7:0]x, y; output [15:0]out; genvar i, j, k, l; wire [8:0]tmp_sun[7:0], tmp_out[7:0]; wire [8:0]tmp_x; assign tmp_x = {1'b0,x}; assign out[0] = tmp_x[0] & y[0]; generate assign tmp_out[0][0] = 1'b0; for(i=0;i<8;i=i+1) begin:add_bt top_m tm (tmp_x[i+1], y[0], tmp_x[i], y[1], tmp_out[0][i], tmp_sun[0][i], tmp_out[0][i+1]); end assign out[1] = tmp_sun[0][0]; assign tmp_sun[0][8] = tmp_out[0][8]; for(j=2;j<8;j=j+1) begin:ftf for(k=0;k<8;k=k+1) begin:add_bb btm_m bm (tmp_sun[j-2][k+1], tmp_x[k], y[j], tmp_out[j-1][k], tmp_sun[j-1][k], tmp_out[j-1][k+1]); end assign out[j] = tmp_sun[j-1][0] assign tmp_sun[j-1][8] = tmp_out[j-1][8]; End for(l=8;l<16;l=l+1) begin:add_o assign out[l] = tmp_sun[6][8]; end endgenerate endmodule module top_m(m0, q0, m1, q1, cin, sun, cout); input m0, m1, q0, q1; input cin; output sun, cout; wire x, y; assign x= m0& q0; assign y= m1& q1; full_add fa (x, y, cin, sun, cout); endmodule module btm_m(sunin, m, q, cin, sun, cout); input sunin, m, q, cin; output sun, cout; wire y; assign y=m& q; full_add fa (sunin, y, cin, sun, cout); endmodule module full_add(x,
实验三 乘、除法运算器实验报告 来自淘豆网m.daumloan.com转载请标明出处.