




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业资料分享 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; 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; input 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; 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 = 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 = 1b0; 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; input 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; assign 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 (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 (datab_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(1b0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现场救护专业培训课件
- 农作物加工设备创新创业项目商业计划书
- 农产品展销会创新创业项目商业计划书
- 职业技能课程自适应学习系统创新创业项目商业计划书
- 电商品牌客服服务创新创业项目商业计划书
- 2025年工业互联网平台传感器网络自组网技术在智能工厂设备维护中的应用报告
- 2025年工业互联网平台安全多方计算技术保障工业互联网生态安全报告
- 2025年新能源汽车废旧电池回收处理产业技术创新与市场应用研究报告
- 2025年社交媒体舆情监测与危机公关技术应用现状与发展趋势报告
- 山东省菏泽市2021-2022学年五年级上学期科学期中学情调研试卷(含答案)
- 城市经理人合作合同范本
- 2025年度合伙人股权代持风险防范及解除协议
- 电网工程设备材料信息参考价(2024年第四季度)
- 上海(虹口宝山黄浦松江)2024-2025学年上学期七年级英语期末统考卷(含笔试答案无听力答案、原文及音频)
- 临床医学课程思政案例
- 《你当像鸟飞往你的山》读书分享读书分享笔记
- 亲子家庭购房合同协议
- 红军过草地课件
- 直播选品策略与规划
- 五育并举课题开题报告
- 第5周-七年级上册数学人教版(2024)每周测验(含答案)
评论
0/150
提交评论