资源描述:
《eda实验报告——计数器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字电路与逻辑设计实验报告模323计数器设计实验报告一、实验内容在QuartusII平台上,利用VHDL代码实现学号323计数器的设计,并在三位数码管显示出来。二、实验步骤与过程分析1、建立工程。打开QuartusII软件平台,点击File---〉newprojectwizard建立一个工程xuehao_323,工程所在文件夹名字为xuehao_323,设置顶层实体名称为xuehao_323,点击next设置device,按照实验箱上FPGA的芯片名更改编程芯片的设置。分析:选择的硬件平台是AlteraEPF10K20TI144_4的FPGA试验箱。2、添加VHDL文件。在所在工程添加文
2、件cnt10.vhd(十进制计数器),cnt_xuehao.vhd(323进制计数器),scan_led3_vhd.vhd(三位数码管显示),exp_cnt_xuehao323_7seg.vhd(数码管显示323三位学号计数器)四个文件。这里通过老师给出的代码进行修改且理解:cnt10.vhd如下:10数字电路与逻辑设计实验报告分析:这是十进制计数器的VHDL代码设计,因为十进制有十个状态,所以输入数据和输出状态需要四位宽,其中输入端口有aclr清零端,clock时钟信号,cnt_en使能端,data[3..0]数据输入,sload装载使能,当aclr为高电平有效时,输出清零,从0开始,
3、计数为时钟信号clock的上升沿到来时且使能端cnt_en为高电平有效时自动加1(sload为低电平时),如果装载使能sload为高电平有效时,则装载数据data[3..0],输出端口有两个,分别为cout(当q[3..0]为9时输出为高电平),q[3..0]变化为0—9循环变化。10数字电路与逻辑设计实验报告cnt_xuehao.vhd分析如下:这里是调用cnt_10十进制计数器的元件例化来设计323(学号)计数器。输入端口aclr(高电平有效清零端),clock(时钟信号上升沿有效),cnt_en(使能端),sload(装载时能,高电平有效时装在输入的数据),datab[3..0],
4、datas[3..0],datag[3..0](三位学号的数据输入端,每位变化相当于一个十进制计数器);输出端口qb[3..0](百位)qs[3..0](十位)qg[3..0](个位)变化为qbqsqg=000到322共323中状态,当等于322时,输出cout为高电平指示达到一个循环。这里的主要思想是用三次十进制计数器分别生成323计数器的三位。scan_led3_vhd.vhd如下:10数字电路与逻辑设计实验报告分析:这里是七段数码管的显示,显示八个数码管中的三个。输入引脚scan_clk为时钟源,cnt_aclr为清零端,datab[3..0],datas[3..0],datag[
5、3..0]为数据输入,用以显示得到三位十六进制的数,已在数码管上显示出来,输出接口seg7[6..0]用来接七段数码管的abcdefg段,wei[2..0]用来选择八个数码管中的三个来显示输入数据。exp_cnt_xuehao323_7seg.vhd如下:10数字电路与逻辑设计实验报告分析:这里是用到元件例化把323计数器和3位数码管结合,达到在七段数码管上显示323计数器的输出的三位。也是我们实验的最终目的,显示计数器的状态变化。输入引脚和输出引脚都是上面几个vhd文件的结合,主要有输入接口aclr(高电位清零),clock(计数器时钟信号),scan_clk(数码管时钟源),cnt_
6、en(时能端),sload(装在时能),数据装载输入datab[3..0](百位),datas[3..0](十位),datag[3..0](个位);输出端口cout(当输出状态为322时cout输出为高电平),seg7[6..0](七段数码管的abcdef段),wei[2..0]三位数码管显示。1、简单编译这里首先点击左上角files中,选择exp_cnt_xuehao323_7seg.vhd右击选择SetasTop-levelEntity设为为顶层文件,然后键盘按下Ctrl+L进行编译。提示成功。2、RTL调试点击Tools->Netlistviewers->RTLviewer命令查看
7、经软件解释生成的原理图如下:10数字电路与逻辑设计实验报告分析:如上图由两部分组成,一部分是cnt_xuehao(323计数器),另一部分是scan_led3_vhd(三位数码管),输出端为cout和wei[2..0],seg7[6..0].输入端为aclr(清零命令),clock(计数器时钟信号),cnt_en(使能端),sload(装载使能),数据输入datab[3..0](百位),datas[3..0](十位),datag[3