下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、parameter参数传递的16位乘法器选用课后习题设计题目:设计一个4位乘法器,为此首先设计一个4位加法器,用例化语句调用这个加法器,用移位相加的方式完成乘法。并以此为基础,使用parameter参数传递的功能,设计一个16位乘法器。加法器采用行波进位的方法。4位加法器设计如下:module ripple_carry_adder(x, y, cin, sum, cout); parameter N = 4; input cin; input N-1:0 x, y; output N-1:0 sum; output cout; reg cout; reg N-1:0 sum; reg qN:0
2、; always (x or y or cin)begin:ADDER integer i; q0 = cin; for(i=0; i=N-1; i=i+1)begin qi+1 = (xi&yi) | (xi&qi) | (yi&qi); sumi = xi yi qi; end cout = qN; endendmodule以此为基础的4位乘法器如下:module top(load, rst, clk, dataa, datab, sum); parameter n = 4; input load; input rst; input clk; input n-1:0 dataa; inpu
3、t n-1:0 datab; output 2*n-1:0 sum; parameter 1:0 state_s1 = 0, state_s2 = 1; reg 1:0 next_state; reg 2*n-1:0 dataa_register; reg n-1:0 datab_register; reg 2*n-1:0 sum_tmp,sum_tmp2; wire cout; assign sum = sum_tmp; always (negedge rst or posedge clk) begin: integer i; if (rst = 1b0) begin for (i = 0;
4、 i = 2 * n - 1; i = i + 1) begin dataa_registeri = 1b0; sum_tmpi = 1b0; end for (i = 0; i = n - 1; i = i + 1) datab_registeri = 1b0; next_state = state_s1; end else case (next_state) state_s1 : if (load = 1b1) begin dataa_registern - 1:0 = dataa; datab_register = datab; for (i = 0; i = 2 * n - 1; i
5、= i + 1) sum_tmpi = 1b0; next_state = state_s2; end state_s2 : begin if (datab_register0 = 1b1) / sum_tmp = sum_tmp + dataa_register;sum_tmp=(n-1)b0,cout,sum_tmp2n-1:0; if (datab_register = 4h0) next_state = state_s1; else begin datab_registern - 2:0 = datab_registern - 1:1; datab_registern - 1 = 1b
6、0; dataa_register2 * n - 1:1 = dataa_register2 * n - 2:0; dataa_register0 = 1b0; end end endcase end ripple_carry_adder #(N = 4) u0(.x(sum_tmp), .y(dataa_register), .cin(1b0), .sum(sum_tmp2), .cout(cout);endmodule以此为基础的16位乘法器为:module top(load, rst, clk, dataa, datab, sum,ready); parameter n = 16; in
7、put load; input rst; input clk; input n-1:0 dataa; input n-1:0 datab; output 2*n-1:0 sum; output ready; parameter 1:0 state_s1 = 0, state_s2 = 1; reg 1:0 next_state; reg 2*n-1:0 dataa_register; reg n-1:0 datab_register; reg 2*n-1:0 sum_tmp; reg ready; wire 2*n-1:0 sum_tmp2; wire cout; integer i; ass
8、ign sum = sum_tmp; always (negedge rst or posedge clk) begin if (rst = 1b0) begin ready=1b0; for (i = 0; i = 2 * n - 1; i = i + 1) begin dataa_registeri = 1b0; sum_tmpi = 1b0; end for (i = 0; i = n - 1; i = i + 1) datab_registeri = 1b0; next_state = state_s1; end else case (next_state) state_s1 : if
9、 (load = 1b1) begin dataa_register2*n - 1:n=0; dataa_registern - 1:0 = dataa; datab_register = datab; ready=1b0; for (i = 0; i = 2 * n - 1; i = i + 1) sum_tmpi = 1b0; next_state = state_s2; end state_s2 : begin if (datab_register0 = 1b1) / sum_tmp = sum_tmp + dataa_register; sum_tmp=sum_tmp2; if (da
10、tab_register = 4h0) begin next_state = state_s1; ready=1b1; end else begin datab_registern - 2:0 = datab_registern - 1:1; datab_registern - 1 = 1b0; dataa_register2 * n - 1:1 = dataa_register2 * n - 2:0; dataa_register0 = 1b0; end end endcase end ripple_carry_adder#(2*n) u0(.x(sum_tmp), .y(dataa_register), .cin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教科版科学三上《水和食用油的比较》课件9
- 教科版科学六上2.2《形状与抗弯曲能力》课件3
- 经济法教学课件全
- 北师大版数学二下《小熊购物》课件3
- 数据中心全生命周期管理实施方案
- 质量全流程风险防控管理制度
- 实验室交叉作业安全培训课件
- 冶金企业从业人员安全培训课件
- 学校晨午检协管巡查工作规范
- 隧道工程施工组织设计编制规范
- GB/T 755-2025旋转电机定额与性能
- 建筑工程技术生涯发展展示
- 如何上好一节公开课培训
- 降压药课件讲课件
- GB/T 45683-2025产品几何技术规范(GPS)几何公差一般几何规范和一般尺寸规范
- CJ/T 190-2015铝塑复合管用卡压式管件
- 2025年工程项目管理项目生命周期试题及答案
- 销售沙石知识培训课件
- 2025年度婚内出轨离婚协议书附带配偶精神损害赔偿协议
- 房屋渗漏修补合同样式
- SL721-2015水利水电工程施工安全管理导则
评论
0/150
提交评论