洛阳理工学院实验报告系部计算机与信息工程系班级05学号B09050508姓名王卫云课程名称PLD原理与应用实验日期11.12实验名称分频器的设计成绩实验目的:1、学习利用VHDL完成分频器的设计2、在QUARTUSⅡ开发环境下用VHDL文本语言编译仿真出任意偶次,奇次,半整数分频器。实验条件:装有QUARTUSⅡ软件的电脑实验内容与步骤:一、实验内容:学习VHDL文本输入设计流程,包括设计、输入、综合、适配、仿真测试和编程下载,并且在QUARTUSⅡ开发环境下用VHDL文本语言编译仿真出任意偶次,奇次,半整数分频器观察并记录其仿真波形。二、实验步骤:奇数分频器的编译与仿真:1:建立工作苦文件夹和编译设计文件。(1)新建一个文件夹。首先利用Windows资源管理器,在EDA默认的工作库(work)中新建一个文件夹命名cnt10。(2)输入源程序。打开QUARTUSⅡ,选择File-New命令。在新建窗口中的DesignFile栏选择编译文件的语言类型即VHDLFile选项。然后再VHDL文本编译窗口输入奇数分频器的程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt10isport(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;elsif(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—Saveas命令,找到已经建立的文件夹cnt10,存盘文件名应该与实体名一致,即cnt10.vhd。当出现问句“Doyouwanttocreat····”单击“是”按钮。2:创建工程。(1)建立新工程管理窗口。单击对话框第二栏右侧“···”按钮,找到文件夹d:\work\cnt10,选中已存盘文件cnt10.vhd,再单击“打开”按钮。(2)将设计文件加入工程中。单击Next按钮,在弹出的对话框中单击File栏后的按钮将与工程相关的所有VHDL文件都加入此工程。(3)选择目标芯片。单击Next按钮,选择目标器件即EP3C5E144C8。(4)工具设置。(5)结束设置。3:半程编译。编译前首先选择Processing→StartComplilation命令,启动半程编译。4:时序仿真。工程编译通过后(1)打开波形编辑器。选择File→New命令,在新建窗口选择VectorWaveformFile选项,单击OK按钮。(2)设置仿真时间区域。(3)波形文件存盘。选择File→SaveAs,将以默认名为cnt10.vwf的波形文件存入文件夹d\work\cnt10中。(4)将工程shift的端口信号节点选入波形编辑器中。(5)编辑输入波形。(6)启动仿真器。现在所有的设置进行完毕,选择Processing→StartSimulation命令,直到出现Simulationwassuccessful,仿真结束。(7)观察仿真结果。如下图:奇数分频器的编译与仿真:偶次分频与上述实验步骤一致。源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt4isport(clk:instd_logic;k1:outstd_logic);end;architecturebhvofcnt4issignalc1:std_logic_vector(2downto0);signalm1:std_logic;beginprocess(clk,c1)beginifrising_edge(clk)thenif(c1=011)thenc1=000;elsec1=c1+1;endif;if(c1=001)thenm1=notm1;elsif(c1=011)thenm1=notm1;endif;endif;endprocess;k1=m1;endbhv;仿真波形及结果:半整数次频源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt25isport(clk:instd_logic;k1:outstd_logic);end;architecturebhvofcnt25issignalc1,c2:std_logic_vector(2downto0);beginprocess(clk,c1)beginifrising_edge(clk)thenif(c1=100)thenc1=000;elsec1=c1+1;endif;endif;endprocess;process(clk,c2)beginiffalling_edge(clk)thenif(c2=100)thenc2=000;elsec2=c2+1;endif;endif;endprocess;k1=1whenc1=000orc2=010else0;endbhv;仿真波形及结果:实验总结:通过本次试验,我基本掌握了QUARTUSⅡ开发环境的应用,熟练的建立文件、编译文件、以及工程仿真的整个流程和波形文件的建立和仿真。虽然在本次实验中遇到了一些问题,刚开始由于程序有错误不能编译成功,经过耐心的修改最终成功编译,但在波形仿真时由于延时冲突问题不能出现正确结果,又经过重新从编译开始有认真做了整个流程最终成功做完可控奇数分频器的实验。同时在实验基础上修改源程序和在次建立工程文件及修改波形图得到偶次分频及半整数次分频的仿真。在此次实验中我了解到做实验需要耐心、细心,不断地发现错误,认识理解错误,从而改正的过程。