ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:768.98KB ,
资源ID:9513121      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9513121.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字时钟系统实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字时钟系统实验报告.docx

1、数字时钟系统实验报告 数字时钟系统设计7段数码管译码显示一、 实验目的作为熟悉实验箱后的第一个实验,本实验继续帮助同学们进一步熟悉试验箱和开发软件QuartusII,实验结合下载到实验箱的操作,定会帮助同学们更加熟悉EDA实验流程和方法,为后续实验打下基础。利用FPGA开发软件QuartusII,熟悉其原理图方式的设计方法,简单VHDL程序模块化,原理图连结的方式,实现7段数码管译码显示。二、 实验内容建立工程,理解和编写实验中的VHDL程序,然后把每个简单的VHDL程序(Create Symbol Files For Current File)作为一个模块,在原理图输入中引入,最后把原理图设

2、置成顶层文件,模拟仿真,下载到FPGA中观看数码管循环译码显示。三、 实验原理VHDL程序原理实验程序用VHDL语言编写,利用开发软件QuartusII完成编译,完成本实验,主要有3部分参考程序,分别是系统时钟分频程序(int_div.vhd)、加法计数器程序(cnt4b.vhd),还有转换译码程序(decl7s.vhd)。系统时钟分频程序,实验箱的系统时钟频率为48Mhz,通过设置分频模块,对系统时钟进行了48 000 000分频,得到1Hz的信号频率,通过分频输出后,频率降低,1Hz频率时,周期为一秒,得到1Hz的秒脉冲,一秒一个跳变,从而使得7段数码管的每一个跳变眼睛都能够清晰地分辨出来

3、。加法计数器程序,在工作频率作用下,每个频率周期进行一次加一操作,使得4位二进制数循环输出(0000到1111),每输出一个4位的二进制数据信号,分别对应数码管0 9、A F的16个数据,并且循环显示,让变化的顺序和结果循环展示,方便验证观察。转换译码程序,在对应加法计数器输出的4位二进制信号下,经逻辑译码转换,每一组4位的二进制信号输入都对应一组8位的高低电平信号输出,对应数码管0 9、A F每个状态下的8个发光二极管的发光状态,使数码管在每个状态下都有相应、直观的显示输出在数码管上。数码管原理实验箱中的数码管为7段共阴数码管,低电平有效,需注意在习惯逻辑上的1转换成0,并修改书上的VHDL

4、程序,“0”为亮,当然,在上面转换译码程序中,我们可以把对应的电平二进制数值写成较简单的十六进制数据表示(参见转换译码(decl7s.vhd)的参考程序)。最后用VHDL程序构成3个模块,分频模块(int_div)分频得到1Hz的频率信号,加载于4位加法器模块的时钟输入端,计数循环输出09、AF共16个数。最后通过七段译码模块译码后在数码管上显示出来。四、 实验步骤(1)打开QuartusII,利用New Project Wizard建立一个新的工程。在第二栏与第三栏中,将工程名与顶层文件的实体名同设为sled。图1 新建工程路径、名称、顶层实体指定对话框这里我们选择的是QuikSOPC核心板

5、上用的Cyclone系列的EP1C12Q240C8。图2 新建工程器件选择对话框(2)新建VHDL源程序文件(菜单中FileNEWVHDL File),输入源程序代码,并以程序中的实体名保存在工程所在的文件夹,可先对单个程序逐个编译仿真,检查程序的正确性。若在编译过程中发现问题,可在程序编译的下窗口的提示中检查程序并更正错误。输入顶层文件代码并保存。若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。图3输入4位加法计数器代码并保存。若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。图4输入转换译码代码并保存。若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。图5图

6、6(3)新建原理图(菜单中FileNEWBlock Diagram/Schematic File),对各个已保存的VHDL程序创建成相应的模块(Create Symbol Files For Current File),使得能在原理图中作为元件引入调用。图7图8(4)按照下面的原理图进行连接,并将原理图设置成顶层文件,完成编译并排错。图9图10(5)选择目标器件并对相应的引脚进行锁定,为准备下载到试验箱做准备。Clock信号引脚设置为28。图11(6)编译结束后,对话框显示消息“Full complication was successful.”,单击OK进入Complication Repo

7、rt窗口,如图13所示,包括编译报告、综合报告、适配报告和时序分析报告等。图12(7)进行引脚锁定后,点击编译按钮,进行一些下载前的设置,比如在菜单中AssignmentsDevice,点击弹出界面中的Devices&Pin Options,进行设定,确保下载仿真顺利并成功。(8)下载硬件设计到目标FPGA成功编译硬件系统后,将产生led_test.sof的FPGA配置文件输出,下面简单介绍将SOF文件下载到目标FPGA器件的步骤。通过ByteBlaster II下载电缆连接实验箱JTAG口和主计算机,接通实验箱电源。在Quartus II主界面中选择ToolsProgrammer,也可以单击

8、工具栏上的按钮,打开编程器窗口并自动打开配置文件。如果没有自动打开配置文件,则需要自己添加需要的配置文件。确保编程器窗口左上角的Hardware Setup栏中硬件已经安装。确保Program/Configure下的方框选中。单击“Start”开始使用配置文件对FPGA进行配置,Progress框中显示配置进度。如果使用QuickSOPC核心板,板上的配置绿色指示灯CONF亮,说明配置成功。本实验只讲述如何将配置文件下载到FPGA中,掉电后FPGA中配置的数据将丢失。也可以将配置文件写入掉电保护的EPCS,在上电时使用EPCS对FPGA进行配置。五、 实验参考程序(VHDL)程序清单1 分频器

9、 int_div.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.NUMERIC_BIT.ALL;-包含移位函数等.ENTITY int_div ISGENERIC ( F_DIV:Integer:=48000000;-分频系数 F_DIV_WIDTH:Integer:=32-分频计数器宽度 );PORT( clock : IN STD_LOGIC; clock_out: OUT STD_LOGIC );END;AR

10、CHITECTURE one OF int_div ISSIGNAL clk_p_r: STD_LOGIC;-上升沿输出时钟SIGNAL clk_n_r: STD_LOGIC;-下降沿输出时钟SIGNAL count_p: STD_LOGIC_VECTOR(f_div_width-1 DOWNTO 0);-上升沿脉冲计数器SIGNAL count_n: STD_LOGIC_VECTOR(f_div_width-1 DOWNTO 0);-下降沿脉冲计数器-SIGNAL f_div_width_r:STD_LOGIC_VECTOR(f_div_width-1 DOWNTO 0);SIGNAL cl

11、ock_out_r:STD_LOGIC;SIGNAL full_div_p: STD_LOGIC;-上升沿计数满标志SIGNAL half_div_p: STD_LOGIC;-上升沿计数半满标志SIGNAL full_div_n: STD_LOGIC;-下降沿计数满标志SIGNAL half_div_n: STD_LOGIC;-下降沿计数半满标志BEGINclock_out=clock_out_r;-clock_out=clock WHEN (F_DIV=1) ELSE (clk_p_r=1 AND clk_n_r=1) WHEN (F_DIV(0)=1) clk_p_r); -判断计数标志位

12、置位与否.full_div_p=1 WHEN (count_pF_DIV-1) ELSE 0;half_div_p=1 WHEN (count_p(F_DIV/2 )-1) ELSE 0;full_div_n=1 WHEN (count_nF_DIV -1) ELSE 0;half_div_n=1 WHEN (count_n(F_DIV/2)-1) ELSE 0;PROCESS(clock)-上升沿脉冲计数-VARIABLE i:Integer RANGE 0 TO 31;BEGIN IF RISING_EDGE(clock)THEN IF full_div_p=1 THEN count_p=

13、count_p+1; IF (half_div_p=1) THEN clk_p_r=0; ELSE clk_p_r=1; END IF; ELSE count_p0); clk_p_r= 0; END IF; END IF;END PROCESS;PROCESS(clock)-下降沿脉冲计数BEGIN IF FALLING_EDGE(clock)THEN IF full_div_n=1 THEN count_n=count_n+1; IF half_div_n=1 THEN clk_n_r=0; ELSE clk_n_r=1; END IF; ELSE count_n0); clk_n_r =

14、 0; END IF; END IF;END PROCESS;PROCESS(clock)BEGIN IF RISING_EDGE(clock)THEN IF F_DIV= 1 THEN clock_out_r=clock; ELSE IF (F_DIV REM 2) =1 THEN clock_out_r= clk_p_r AND clk_n_r; ELSE clock_out_r=clk_p_r; END IF; END IF; END IF;END PROCESS;END;程序清单2 4位加法计数器 cnt4b.vhdlibrary ieee;use ieee.std_logic_116

15、4.all;use ieee.std_logic_unsigned.all;entity cnt4b is port(CLK : in std_logic; OUTY : out std_logic_vector(3 downto 0);-加法器输出end cnt4b;architecture behav of cnt4b issignal cqi:std_logic_vector(3 downto 0);begin process (CLK) begin if CLKEVENT AND CLK=1 THEN-上升沿 cqi=cqi+1; end if;outy led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s null; end case; end process;end;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1