欢迎来到天天文库
浏览记录
ID:53126134
大小:107.12 KB
页数:5页
时间:2020-04-01
《分频器实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、洛阳理工学院实验报告系部计算机与信息工程系班级05学号B姓名王卫云课程名称PLD原理与应用实验日期11.12实验名称分频器的设计成绩实验目的:1、学习利用VHDL完成分频器的设计2、在QUARTUSⅡ开发环境下用VHDL文本语言编译仿真出任意偶次,奇次,半整数分频器。实验条件:装有QUARTUSⅡ软件的电脑实验内容与步骤:一、实验内容:学习VHDL文本输入设计流程,包括设计、输入、综合、适配、仿真测试和编程下载,并且在QUARTUSⅡ开发环境下用VHDL文本语言编译仿真出任意偶次,奇次,半整数分频器观察并记录其仿真波形。二、实
2、验步骤:奇数分频器的编译与仿真:1:建立工作苦文件夹和编译设计文件。(1)新建一个文件夹。首先利用Windows资源管理器,在EDA默认的工作库(work)中新建一个文件夹命名cnt10。(2)输入源程序。打开QUARTUSⅡ,选择File-New命令。在新建窗口中的DesignFile栏选择编译文件的语言类型即VHDLFile选项。然后再VHDL文本编译窗口输入奇数分频器的程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;enti
3、tycnt10isport(clk:instd_logic;k_or,k1,k2:outstd_logic);end;architecturebhvofcnt10issignalc1,c2:std_logic_vector(2downto0);signalm1,m2:std_logic;beginprocess(clk,c1)beginifrising_edge(clk)thenif(c1="110")thenc1<="000";elsec1<=c1+1;endif;if(c1="001")thenm1<=notm1;elsi
4、f(c1="100")thenm1<=notm1;endif;endif;endprocess;process(clk,c2)beginiffalling_edge(clk)thenif(c2="110")thenc2<="000";elsec2<=c2+1;endif;if(c2="001")thenm2<=notm2;elsif(c2="100")thenm2<=notm2;endif;endif;endprocess;k1<=m1;k2<=m2;k_or<=m1orm2;endbhv;(3)文件存盘。选择File—Sav
5、eas命令,找到已经建立的文件夹cnt10,存盘文件名应该与实体名一致,即cnt10.vhd。当出现问句“Doyouwanttocreat····”单击“是”按钮。2:创建工程。(1)建立新工程管理窗口。单击对话框第二栏右侧“···”按钮,找到文件夹d:workcnt10,选中已存盘文件cnt10.vhd,再单击“打开”按钮。(2)将设计文件加入工程中。单击Next按钮,在弹出的对话框中单击File栏后的按钮将与工程相关的所有VHDL文件都加入此工程。(3)选择目标芯片。单击Next按钮,选择目标器件即EP3C5E144C
6、8。(4)工具设置。(5)结束设置。3:半程编译。编译前首先选择Processing→StartComplilation命令,启动半程编译。4:时序仿真。工程编译通过后(1)打开波形编辑器。选择File→New命令,在新建窗口选择VectorWaveformFile选项,单击OK按钮。(2)设置仿真时间区域。(3)波形文件存盘。选择File→SaveAs,将以默认名为cnt10.vwf的波形文件存入文件夹dworkcnt10中。(4)将工程shift的端口信号节点选入波形编辑器中。(5)编辑输入波形。(6)启动仿真器。现在
7、所有的设置进行完毕,选择Processing→StartSimulation命令,直到出现Simulationwassuccessful,仿真结束。(7)观察仿真结果。如下图:奇数分频器的编译与仿真:偶次分频与上述实验步骤一致。源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt4isport(clk:instd_logic;k1:outstd_logic);end;architecturebhvofcnt4iss
8、ignalc1:std_logic_vector(2downto0);signalm1:std_logic;beginprocess(clk,c1)beginifrising_edge(clk)thenif(c1="011")thenc1<="000";elsec1<=c1+
此文档下载收益归作者所有