收藏 分享(赏)

Verilog HDL 乘法器.doc

上传人:hwpkd79526 文档编号:9059220 上传时间:2019-07-22 格式:DOC 页数:14 大小:204KB
下载 相关 举报
Verilog HDL 乘法器.doc_第1页
第1页 / 共14页
Verilog HDL 乘法器.doc_第2页
第2页 / 共14页
Verilog HDL 乘法器.doc_第3页
第3页 / 共14页
Verilog HDL 乘法器.doc_第4页
第4页 / 共14页
Verilog HDL 乘法器.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、哈尔滨工业大学(威海)0目录一、设计的性质、目的和任务 .2二、设计课题要求 .21、基本要求 22、 设计内容 2三、总体设计 .31、输入模块 32、乘法模块 43、选择模块 54、显示模块 75、符号模块 .11四、总体调试与仿真结果13五、调试中遇到的问题及解决的方法 13六、课程设计过程中的体会和感想 14七、建议 15哈尔滨工业大学(威海)1一、 设计的性质、目的和任务熟悉 EDA 设计方法、设计语言和开发软件及设计实例,利用掌握的一种硬件描述语言(AHDL/VHDL/Verilog HDL)和 EDA开发工具(MaxPlus)进行数字系统的设计开发及仿真。通过课程设计的锻炼,要求

2、学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。二、 设计课题要求(1)基本要求掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。(2)设计内容设计一个两个 5 位数相乘的乘法器。用发光二极管显示输入数值,用 7 段显示器显示十进制结果。乘数和被乘数分两次输入。在输入乘数和被乘数时,要求显示十进制输入数据。输入显示和计算结果显示,采用分时显示方式进行,可参见计算哈尔滨工业大学(威海)2器的显示功能。注意,如果除法功能为引用功能模块,

3、则难度系数将按照 1 到 2.5 计算。#设计提示(仅供参考):通常表示带符号二进制数时,最高位为“0”表示“+”号,最高位为“1”表示“-”号,例如,01101 表示“+1101” ,而11101 则表示“-1101” 。乘法运算通常采用移位相加方法实现,见简略示意图。最终符号则用两个数的最高位采用“异或”逻辑得到。三、 总体设计基于 Verilog HDL 硬件语言的乘法器设计(1) 输入模块该模块为乘数和被乘数输入,由 ch(表示乘号) 、rst(表示复位)控制。当 rst=0、ch=0 时,输入被乘数 AO;当rst=0、ch=1 时,输入乘数 BO;当 rst=1 时,无论 ch=0

4、 或 1,输入均为零。乘数被乘数移位寄存移位寄存相乘逻辑累加器结果寄存时钟哈尔滨工业大学(威海)3程序如下: 生成模块如下:module shuru (date,ch,AO,BO,rst); input ch; input rst; input 3:0date; output 3:0AO,BO; reg 3:0 AO,BO; always(date) begincase(ch,rst)2b00: AO=date;2b10: BO=date;2b01: AO=4b0000;2b11: BO=4b0000;default:beginAO=4bx;BO=4bx; end endcaseendendm

5、odule波形仿真如下:仿真输入被乘数 10,乘数 12;当复位为 1 时,输入的 14 和 11均无效。 (2) 乘法模块将乘数 b 的每一位与被乘数 a 相乘,如果 b 的该位为 0 则相乘得 0;如果 b 的该位为 1 则相乘后左移相应的位数并寄存,最哈尔滨工业大学(威海)4后累加得出最终结果。程序如下: 生成模块如下:module mult(out,a,b,clk);output7:0 out;input3:0 a,b;input clk;wire7:0 out;wire5:0 out1;wire7:0 out2;reg6:0 temp3;reg5:0 temp2;reg4:0 tem

6、p1;reg3:0 temp0;function3:0 mult4;input3:0 operand;input sel;beginmult4=(sel)?(operand):4b0000;endendfunctionalways (posedge clk)begintemp0=100)beginA3=10)LDB=0;endelsebeginstep=2; endend2:beginbai=A3;哈尔滨工业大学(威海)9shi=A2;ge=A1;step=0;enddefault:step=0;endcaseendendmodule波形仿真如下:仿真输入为 159,得到分离结果 bai=1,

7、shi=5,ge=9显示译码:控制数码管各段的亮灭达到显示 09 的目的。module shumaxian(b,s,g,bai,shi,ge);input 3:0bai,shi,ge;output 7:0b,s,g;reg 7:0b,s,g;always (1)begincase(bai) 4d0: b=8b00000011;4d1: b=8b10011111;4d2: b=8b00100101;4d3: b=8b00001101;4d4: b=8b10011001;4d5: b=8b01001001;4d6: b=8b01000001;4d7: b=8b00011111;4d8: b=8b0

8、0000001;4d9: b=8b00001001;default: b=8bx;哈尔滨工业大学(威海)10endcaseendalways (1)begincase(shi)4d0: s=8b00000011;4d1: s=8b10011111;4d2: s=8b00100101;4d3: s=8b00001101;4d4: s=8b10011001;4d5: s=8b01001001;4d6: s=8b01000001;4d7: s=8b00011111;4d8: s=8b00000001;4d9: s=8b00001001;default:s=8bx;endcaseendalways (

9、1)begincase(ge)4d0: g=8b00000011;4d1: g=8b10011111;4d2: g=8b00100101;4d3: g=8b00001101;4d4: g=8b10011001;4d5: g=8b01001001;4d6: g=8b01000001;4d7: g=8b00011111;4d8: g=8b00000001;4d9: g=8b00001001;default: g=8bx;endcase哈尔滨工业大学(威海)11endendmodule波形仿真如下:(5)符号模块用乘号控制,当 ch=0(未按下乘号)输入被乘数的符号,当ch=1(按下乘号)输入乘数的

10、符号,程序如下。用异或运算结果的符号。module sign(fin,fa,fb,ch);input ch,fin;output fa,fb;reg fa,fb;always(fin) begin if(ch=0)begin fa=fin;endif(ch=1)beginfb=fin;end end endmodule 符号输出时灭掉数码管除符号位以外的其他段,程序如下哈尔滨工业大学(威海)12module mieguan(in,out,rst);input in,rst;output7:0 out;reg7:0 out;always(1)begincase(in,rst)2b10: out=8b1111_1101;2b00: out=8b1111_1111;2b01: out=8b1111_1111;2b11: out=8b1111_1111;default: out=8bx;endcaseendendmodule 四、 总体调试与仿真结果总体模块结构图:总体波形仿真:仿真-9*12,得出结果为数码管对应的二进制数 00000011 显示为 000001001 显示为 9,10011111 显示为 1,00100101 显示为2,00000001 显示为 8。符号位 11111101 显示负号,11111111不显示即为正。哈尔滨工业大学(威海)13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报