EDA4位乘法器的程序.doc_第1页
EDA4位乘法器的程序.doc_第2页
EDA4位乘法器的程序.doc_第3页
EDA4位乘法器的程序.doc_第4页
EDA4位乘法器的程序.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四、4位乘法器的实现一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V; EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。请参考前面第二章中关于“电源模块”的说明。二、实验目的1、掌握利用Verilog HDL语言实现乘法器的方法2、掌握利用8位数码显示模块的设计三、实 验 内 容1、用Verilog HDL语言按照移位循环相加方法实现4x4乘法器模块。2、用Verilog HDL语言实现8位数码显示模块。三、实验原理 乘法运算模块可采用移位相加原理实现,本实验采用乘法器模块和显示模块在顶层模块中例化的方法实现。四、实验步骤1、按照以下步骤完成每一个模块的设计:新建设计文件夹(不可用中文)-新建设计文件-输入设计项目(原理图/Verilog HDL文本代码)-存盘(注意原理图/文本取名)-将设计项目设置成Project-选择目标器件-启动编译-(可选:建立仿真波形文件-仿真测试和波形分析)2、新建顶层原理图文件,调入第1步中设计好的各模块,以原理图方式实现顶层设计-存盘(注意原理图/文本取名)-将设计项目设置成Project-选择目标器件-启动编译-建立仿真波形文件-(可选:建立仿真波形文件-仿真测试和波形分析)-引脚锁定并编译-编程下载/配置-硬件测试五、 硬件测试说明 1、乘数与被乘数接8位数字开关A组。2、结果显示接动态数码管。六、硬件连线说明如果独立扩展板芯片为EP1K30QC208 PIN分配CLK 79 接GCLK1Rst 71 接按键F12,需要连线到右下角F12的连线插孔Display6 93 接数码管段位引线ADisplay5 92 接数码管段位引线BDisplay4 90 接数码管段位引线CDisplay3 89 接数码管段位引线DDisplay2 88 接数码管段位引线EDisplay1 87 接数码管段位引线FDisplay0 86 接数码管段位引线GSel2 70 接SS2Sel1 69 接SS1Sel0 68 接SS0data_a3 39 接8位数字开关A SW1 data_a2 40 接8位数字开关A SW2 data_a1 41 接8位数字开关A SW3 data_a0 44 接8位数字开关A SW4 data_b3 45 接8位数字开关A SW5 data_b2 46 接8位数字开关A SW6 data_b1 47 接8位数字开关A SW7 data_b0 53 接8位数字开关A SW8如果独立扩展板芯片为EP1K 30TC144 PIN分配CLK 55 接CLK(T)-CLOCK(P)Rst 67 接按键F12,需要连线到右下角F12的连线插孔Display6 91 接数码管段位引线ADisplay5 90 接数码管段位引线BDisplay4 88 接数码管段位引线CDisplay3 87 接数码管段位引线DDisplay2 86 接数码管段位引线EDisplay1 83 接数码管段位引线FDisplay0 81 接数码管段位引线GSel2 70 接SS2Sel1 69 接SS1Sel0 68 接SS0data_a3 37 接8位数字开关A SW1 data_a2 38 接8位数字开关A SW2 data_a1 39 接8位数字开关A SW3 data_a0 41 接8位数字开关A SW4 data_b3 42 接8位数字开关A SW5 data_b2 43 接8位数字开关A SW6 data_b1 44 接8位数字开关A SW7 data_b0 46 接8位数字开关A SW8程序:module CFQ4梁一一(input clk,input wire 4:1 ain, /输入ainput wire 4:1 bin, /输入binput rest_n,output reg 2:0 sel, /位选output reg 6:0 display ); reg 15:0 count_clk; / 分频计数器,最大216=64K分频 reg 3:0 a; /输入ain寄存器 reg 3:0 b; /输入bin寄存器 reg 7:0 mul_num; /乘得结果 reg 3:0 g_bit; /个位 reg 3:0 s_bit; /十位 reg 3:0 b_bit; /百位 reg 3:0 disp_temp; integer i; /assign a=ain; /assign b=bin;/分频 always (posedge clk or negedge rest_n) begin if(rest_n =0) begin count_clk=16b0; end else begin if(count_clk=16hffff) begin count_clk=16b0; end else begin count_clk=count_clk+1b1; end end end/乘法运算always (ain or bin ) begin mul_num=8b0; for (i=1;i=4;i=i+1) begin if(bini) mul_num=mul_num+(ain(i-1); else mul_num=mul_num+1b0; end b_bit=(mul_num/100)%10; s_bit=(mul_num/10)%10; g_bit=mul_num%10; end/ 位选always (posedge count_clk3 or negedge rest_n) begin if(rest_n =0) begin sel=3b0; end else begin if (sel=3b111) begin sel=3b0; end else begin sel=sel+1b1; end end end always (sel) begin case(sel) 3b000: disp_temp=4b1010; 3b001: disp_temp=4b1010; 3b010: disp_temp=4b1010; 3b011: disp_temp=4b1010; 3b100: disp_temp=4b1010; 3b101: disp_temp=b_bit; 3b110: disp_temp=s_bit; 3b111: disp_temp=g_bit; default: disp_temp=4b1010; endcase end /显示译码,共阴数码管,a:对应高位,g:对应低位 always (disp_temp) begin case (disp_temp) 4b0000: display=7b1111110; /0 4b0001: display=7b0110000; /1 4b0010: display=7b1101101; /2 4b0011: display=7b1111001; /3 4b0100: display=7b0110011; /4 4b0101: display=7b1011011; /5 4b0110: display=7b1011111; /6 4b0111: d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论