EDA分频器实验教案
- 格式:doc
- 大小:42.00 KB
- 文档页数:2
图2.1
占空比为0.5的3分频电路仿真结果如图2.2所示,k_or输出波形的周期为clk脉冲的周期的倍,且占空比为50%。
图2.2
占空比为0.25的8分频电路模型如图2.3所示,有一个脉冲端口(clk),和一个输出端口
图2.3
占空比为0.25的8分频电路仿真结果如图2.4所示,k1输出波形的周期为clk脉冲的周期的倍,且占空比为25%。
图2.4
、结果分析与实验体会
经过本次实验,我对用xlinx软件进行EDA设计有了进一步的认识和理解,经过上一次的实验,这一次可以说是轻车熟路,尽管如此,在实验过程中还是遇到了很多问题,但在同学和老师的帮助这些问题都一一解决。
在解决这些问题的过程中,我体会不同开发环境对VHDL编码的要求,Xilinx ISE FPGA与QuartusII开发环境的区别,了解到更加严格,在中可以编译通过的程序。
EDA课程设计设计题目: 竞赛抢答器姓名:刘云龙学号:2010508140班级:10级2班专业:电子信息院系:信息科学与技术学院指导老师:田敏实验日期:2013 年 1 月13 日一、前言 (2)1.1课程设计的意义 (2)1.2 VHDL语言简介 (2)二、方案选择及原理分析 (3)2.1 通用可控分频器硬件方案选择 (3)2.2 通用可控分频器原理分析 (3)2.2.1 偶数分频器 (3)2.2.2奇数分频器 (4)三、软件设计 (5)3.1系统分析 (5)3.2系统的结构和模块划分 (5)3.2.1固定数值分频模块 (6)3.2.2按键和显示模块 (7)3.2.3占空比和分频系数可控分频模块 (7)3.3 可控分频的实现 (8)四、软硬件的系统测试 (8)五、心得体会 (8)附录 (9)参考文献 (16)一、前言分频器是数字系统设计中的一种基本电路,我们往往需要通过分频器得到我们所需要的时钟频率。
在实际设计中我们经常用到的为整数分频,有时要求等占空比,有时又要求非等占空比。
在同一个设计中有时要求多种形式的分频,通常由计数器或计数器的级联结构构成各种形式的任意占空比偶数分频及非等占空比的奇数分频,实现起来比较简单,对于等占空比的奇数分频以及可控的分频实现起来会较为困难。
本文利用VHDL硬件描述语言,使用Altera公司的FPGA芯片,设计了一种能够满足上述要求,而且较为通用的可控分频器。
只需在分频器的输入端用按键输入相应的分频系数,就可以得到所需的频率。
1.1课程设计的意义随着电子技术的高速发展,FPGA/CPLD以其高速、高可靠性、串并行工作方式等突出优点在电子设计中受到广泛的应用,而且代表着未来EDA设计的方向。
FPGA/CPLD的设计采用了高级语言,如VHDL语言AHDL语言等,进一步打破了软件与硬件之间的界限,缩短了产品的开发周期。
所以采用先进的FPGA/CPLD取代传统的标准集成电路、接口电路已成为电子技术发展的必然趋势。
实验三数控分频器设计【实验目的】1.设计实现一个根据不同的输入,将时钟信号进行分频2.掌握分频计数器类型模块的Verilog描述方法;3.学习设计仿真工具的使用方法;4.学习层次化设计方法;【实验内容】1.用Verilog 语言设计带计数允许和复位输入的数控分频器。
2.编制仿真测试文件,并进行功能仿真。
3.下载并验证分频器功能【实验原理】数控分频器的功能就是当在输入端给定不同数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相加即可。
【程序源代码】(加注释)module FDIV (clk,d,fout,pfull); //数控分频器顶层设计描述input [7:0]d; //定义一个七位数输入input clk; //定义一个时钟信号output fout ,pfull; //定义输出和记满标志位pfullreg[7:0] Q; //定义一个7位寄存器变量reg full;reg pfull;reg fout;always @ (posedge clk) //开始过程语句posedge clk位敏感变量beginif (Q==d) //当有上升沿敏感信号时Q==dbegin Q=0; //Q被清零full=1; // full被赋值为1endelsebeginQ=Q+1; full =0; //否则Q=Q+1,full=0pfull=full; //将full赋值给pfullendalways @ (posedge pfull) //过程语句posedge pfull为敏感变量fout=~fout; // fout取反以后赋值给fout endmodule //结束模块【仿真和测试结果】【实验心得和体会】通过本次试验,我们对数控分频器的设计与原理都有了初步的了解,例如给定100HZ的时钟信号,然后给定d=5的输入,而后输出信号的频率为10HZ。
实验报告课程名称CPU设计实验项目实验一多级分频器图形设计实验仪器LP-2900 FPGA实验装置系别计算机科学与技术专业计算机科学与技术班级/学号计科1206/学生姓名实验日期 2014/05/20 成绩指导教师胡信裕实验一多级分频器图形设计一、实验目的1.学习使用QUARTUSⅡ图形编辑器,熟悉一般的图形编辑方法,通过本实验设计输入,了解和掌握图形设计的一般原理和方法。
2.学习使用QUARTUSⅡ波形编辑器, 熟悉一般的波形编辑方法,通过本实验设计输入,了解和掌握仿真波形文件设计的一般原理和方法。
3.熟悉和掌握QUARTUSⅡ的编译、仿真操作。
4.进一步熟悉应用图形编辑方法,了解层次化设计原理,通过本实验设计输入,掌握自顶向下、自底向上设计方法及各层图形文件的编译、仿真。
二、实验器材微机系统、LP-2900 FPGA实验装置、QUARTUSⅡ。
三、实验内容(一)设计要求1.功能要求:分频器输入频率为10 MHz,输出频率为1 Hz。
2.分频器顶层图形文件设计、例化模块图形文件设计。
3.仿真测试波形文件设计及功能验证。
(二)实验步骤1.上机,学习掌握QUARTUSⅡ工具软件的操作及层次化图形设计输入方法。
2.建立一个设计项目文件夹(Ex1),建立底层文件(counter_n10.bsf)顶层图形设计文件(Ex1.bsf),绘制各层原理图。
3.建立各子模块图形符号,更新顶层设计文件。
4.编译、纠错,完成各层图形文件设计。
5.设计各层图形文件的仿真测试波形文件。
6.完成仿真测试并对各层图形设计文件进行纠错,直至全部功能正确实现。
7.保存设计文件,完成实验报告。
(三)实验设计1.顶层项目设计及仿真:所谓分频器其实就是通过计时器的作用,将频率转换(通常为高频转换为低频),所以只需做一个计时器每隔一定的时间输出一个正脉冲即可。
我们分析到输入频率为10MHz=107,输出频率为1Hz,如果使用十六进制的计数器,使得计算比较复杂,电路也变得复杂,这里我们做一个十进制的加法计数器,那么要完成上述功能,只需要7个这样的10进制计数器即可。
EDA实验报告学院:班级:学号:指导老师:姓名:一、实验目的:学习数控分频器的设计,分析和测试方法。
二、实验原理:不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有计时器溢出位与预置数加载输入信号相接即可。
三、实验内容1、将4096HZ的时钟信号分频为1HZ的时钟信号。
实验原理图:实验源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf isport(clk_in:in std_logic;fout:out std_logic);end;architecture one of dvf issignal cnt: integer range 0 to 2048;signal clk_out:std_logic;beginprocess(clk_in)beginif clk_in'event and clk_in = '1' thenif cnt=2048 thencnt <=0;clk_out <=not clk_out;elsecnt<=cnt+1;end if;end if;end process;fout<=clk_out;end one;功能仿真波形图:实验引脚图:实验箱上工作情况:当CLOCK5接4096HZ的时钟信号时,扬声器每秒钟响一次。
2、如实验内容1将4096HZ的时钟信号分频为2HZ、8HZ、16HZ的时钟信号。
3、编写四选一MUX,可用按键控制选择分频后的某时钟。
实验原理图:实验源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf isport(clk:in std_logic;s: in std_logic_vector(1 downto 0);clk_out:out std_logic);end;architecture one of dvf issignal clk1_out:std_logic;signal clk2_out:std_logic;signal clk3_out:std_logic;signal clk4_out:std_logic;signal cnt2048:integer range 0 to 2048; signal cnt1024:integer range 0 to 1024; signal cnt256:integer range 0 to 256; signal cnt128:integer range 0 to 128;beginfen1: process(clk)beginif clk'event and clk = '1' thenif cnt2048=2048 thencnt2048 <=0;clk1_out <=not clk1_out;elsecnt2048<=cnt2048+1;end if;end if;end process;fen2: process(clk)beginif clk'event and clk = '1' thenif cnt1024=1024 thencnt1024 <=0;clk2_out <=not clk2_out;elsecnt1024<=cnt1024+1;end if;end if;end process;fen8: process(clk)beginif clk'event and clk = '1' thenif cnt256=256 thencnt256 <=0;clk3_out <=not clk3_out;elsecnt256<=cnt256+1;end if;end if;end process;fen16: process(clk)beginif clk'event and clk = '1' thenif cnt128=128 thencnt128 <=0;clk4_out <=not clk4_out;elsecnt128<=cnt128+1;end if;end if;end process;xuan: PROCESS(s)BEGINCASE s ISWHEN "00" => clk_out<=clk1_out;WHEN "01" => clk_out<=clk2_out;WHEN "10" => clk_out<=clk3_out;WHEN "11" => clk_out<=clk4_out;WHEN OTHERS => NULL;END CASE;END PROCESS;END;功能仿真波形:实验引脚图:实验箱上工作情况:CLOCK5接4096HZ的时钟信号,按键1、键2使输入分别为00、01、10、11,扬声器输出声音频率分别为1HZ、2HZ、8HZ、16HZ。
三、实验效果分析(包过仪器设备等使用效果)三、实验效果分析:①八分频,十一分频器的程序主要包括两部分,一是先设定好计数的位数,让计数器计数,当计数满时产生溢出,使溢出标志位为高电平;二是当溢出标志位为1时,D 触发器的D状态发生翻转,从而产生高低电平的变化,而达到分频的目的,计数初值的不同,计数满所要的时钟个数也就不同,D触发器电平翻转所用的时间也就不同,频率也就不同。
②循环计数器是给定时器赋不同的初值,不同初值溢出所用的时间也就不同,状态翻转所用时间也就不同,从而达到实现不同音频循环输出的目的。
③硬件测试:写好程序连接好电路后电路能够很好的实验16种不同音频之间的循环输出,说明实验程序正确,对应的RTL仿真图形也正确。
④实验例序中的P_DIV进程的作用是当计数满产生溢出时让D触发器的状态发生翻转,D触发器状态的翻转的频率就是分频器输出的频率。
也就是做分频器的频率输出作用。
教师评语指导教师年月日江西师范大学物理与通信电子学院教学实验报告专业:电子信息工程2011年月日实验名称数控分频器的设计指导老师姓名年级学号成绩一、预习部分1、实验目的2、实验基本原理3、主要仪器设备(包含必要的元器件、工具)一、实验目的:1.了解数控分频器的设计原理以及分析和测试方法。
2.学会构造使用不同功能的数控分频器械。
二、实验基本原理:给定时器设定好初值,当计数满时溢出,产生溢出后溢出标志位D触发器取反,这样当设定不同的初值时产生一次溢出所用的时间也就不同,频率也就随之改变。
通过设定不同的初值从而产生不同的分频。
三、主要仪器设备电脑,实验箱二、实验操作步骤1.实验数据、表格及数据处理2.实验操作过程(可以用图表示)3.结论1.实验数据、表格及数据处理如下:十一分频器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sy52 isport(clk:in std_logic;d:in std_logic_vector(10 downto 0);fout:out std_logic);end ;architecture one of sy52 issignal full :std_logic;beginp_reg:process(clk)variable cnt8:std_logic_vector(10 downto 0);beginif clk'event and clk='1' thenif cnt8="11111111111"thencnt8:=d;full<='1';elsecnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process(full)variable cnt2:std_logic;beginif full'event and full='1'thencnt2:=not cnt2;if cnt2='1'thenfout<='1';elsefout<='0';end if ;end if ;end process p_div;end 2、实验操作过程如下:八分频器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sy51 isport(clk:in std_logic;d:in std_logic_vector(7 downto 0);fout:out std_logic);end ;architecture one of sy51 issignal full :std_logic;beginp_reg:process(clk)variable cnt8:std_logic_vector(7 downto 0);beginif clk'event and clk='1' thenif cnt8="11111111"thencnt8:=d;full<='1';elsecnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process(full)variable cnt2:std_logic;beginif full'event and full='1'thencnt2:=not cnt2;if cnt2='1'thenfout<='1';elsefout<='0';end if ;end if ;end process p_div;end ;。
电子信息工程学系实验报告课程名称:EDA技术与实验实验项目名称:简单分频时序逻辑电路设计实验时间:班级:通信091 姓名:Jxairy 学号:实验目的:1.掌握基本组合逻辑电路的实现方法。
2.初步了解分频时序逻辑电路的生成方法。
实验环境:Windows 7、max+plusⅡ10等。
实验内容:1.学习Verilog HDL 设计课件。
2.同步置数、同步清零计数器的文本设计过程及其仿真。
3.作clk_in的2分频clk_out,要求输出时钟的相位与课件1/2分频器的输出正好相反。
实验过程:一、同步置数、同步清零计数器实验的设计和仿真:(1)新建文本:选择菜单File下的New,出现如图4.1所示的对话框,在框中选中“Text Editorfile”,按“OK”按钮,即选中了文本编辑方式。
(2)另存为Verilog编辑文件,如图4.2所示。
(3)在编辑窗口中输入程序,如图4.3所示。
图4.1 新建文本图4.2 另存为.V编辑文件(4)设置当前文本:在MAX+PLUS II中,在编译一个项目前,必须确定一个设计文件作为当前项目。
按下列步骤确定项目名:在File菜单中选择Project 中的Name选项,将出现Project Name 对话框:在Files 框内,选择当前的设计文件。
选择“OK”。
如图4.4所示。
图4.3 计数器代码图4.4 设置当前仿真的文本设计(5)打开编译器窗口:在MAX—plusⅡ菜单内选择Compiler 项,即出现如图4.5的编译器窗口。
图4.5 编译器窗口选择Start即可开始编译,MAX+PLUS II编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。
(6)建立波形编辑文件:选择菜单File下的New选项,在出现的New对话框中选择“Waveform Editor File”,单击OK后将出现波形编辑器子窗口。
现代EDA技术课程设计实验报告题目:基于FPGA技术的数字频率计的设计学院:研究生学院专业名称:检测技术与自动化装置班级: 2010 (7)班学号:100081102001学生姓名:司红伟指导教师:徐精华二O一一年五月基于FPGA技术的数字频率计的设计1.实验目的(1)熟悉QUARTUS的基本使用。
(2)熟悉FPGA实验开发系统的基本使用。
(3)学习VHDL基本单元电路的综合设计应用。
2.实验内容设计并调试好一个八位十进制的数字频率计,要求具有以下基本功能:1)测频范围:1HZ-50MHZ。
2)测频精度:测频采用等精度频率测量,其全范围相对误差恒为万分之一。
3)响应时间:小于5S。
4)具有记忆显示功能,即在测量过程中不刷新数据,测量结束才将测量结果送显示。
3.试验原理(1)采用直接测频法。
直接测频法就是在确定的闸门时间内,记录被测信号的脉冲个数。
由于闸门时间通常不是待测信号的整数倍,这种方法的计数值也会产生最大为±1个脉冲误差。
进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量准确度为&=Tx/T=1/Fx。
由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。
因此直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。
(1)采用等精度测频法。
频率是周期信号在单位时间内的重复次数,电子计数器可以对一个周期信号发生的次数,进行计数。
如果某一信号在T 秒时间间隔内的重复次数为N 次,则该信号的频率f 为在直接测频率的基础上发展的多周期同步测频率法,在目前的测频系统中得到越来越多广泛的应用。
多周期同步法测频原理如图3.1 所示。
图3.1 等精度测频原理波形图首先,由控制线路给出闸门开启信号,此时,计数器并不开始计数,而是等到被测信号的上升沿到来时,来真正开始计数。
然后,两组计数器分别对被测信号子和标准信号分别进行计数,要等到被测信号下降沿到来时才真正结束计数,完成一次测量过程。
【实验三】分频器的设计实验目的:1、熟悉QuartusⅡ和GW-48型EDA开发系统的使用2、掌握分频器的设计、分析和测试方法实验原理:数字电路系统中,分频器是一种应用非常广泛的器件,其功能是对较高频率的信号进行分频。
分频电路的本质是加法计数器的变种。
分频器常用来对时钟信号进行分频,用以得到较低频率的时钟信号、选通信号、中断信号等。
实验内容一:设计分频系数为2的整数N次幂的分频器。
N=1,2,3,4即分频系数分别为2,4,8,16。
分频后的信号占空比为50%,控制信号CON=00,01,10,11时,输出信号CLK_OUT分别是输入信号CLK的2,4,8,16分频。
给出仿真图如下:在实验系统上硬件验证其功能,可选合适的实验模式,CLK可由CLK0输入,跳帽可选择256Hz或更高;CON[1..0]可接键2和键1;输出CLK_OUT接适配板的外接引脚PIO24。
编译下载后用示波器测试PIO24输出脚的波形,当改变键2/键1的输入值,可在示波器上观测到对应的分频信号。
实验内容二:设计一分频电路,分频后的信号高电平时间和低电平时间可分别由两个4位的输入数据控制,硬件下载后可通过示波器来观察分频后的波形。
此分频电路的实体可为如下:ENTITY DVF_1 ISPORT ( CLK : IN STD_LOGIC;--基准的时钟信号D_H : IN INTEGER RANGE 0 TO 15;--设定输出高电平时间的数据 D_L : IN INTEGER RANGE 0 TO 15;--设定输出低电平时间的数据 LD : IN STD_LOGIC;--允许装载D_H,D_L的控制信号FOUT : OUT STD_LOGIC );--分频后的信号END;在实验系统上硬件验证其功能,可选实验模式一,键2负责输入4位预置数D_H;键1负责输入4位预置数D_L;CLK由CLK0输入;LD接键8;输出FOUT 接适配板的外接引脚PIO24。
实验五数控分频器的设计一、实验目的1、学习数控分频器的设计、分析和测试方法。
2、了解和掌握分频电路实现的方法。
3、掌握EDA技术的层次化设计方法。
二、实验原理数控分频器的功能就是当输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器来设计完成的,方法是将计数溢出位与预置数加载输入信号相接得到。
三、实验内容本实验要求完成的任务是在时钟信号的作用下,通过输入八位的按键开关输入不同的数据,改变分频比,使输出端口输出不同频率的时钟信号,过到数控分频的效果。
在实验中时,数字时钟选择2HZ作为输入的时钟信号,用八个按键开关做为数据的输入,当八个按键开关置为一个二进制数时,在输出端口输出对应频率的时钟信号,用输出端口接LED灯来观察频率的变化。
四、实验步骤1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序.4、 编写完VHDL 程序后,保存起来。
方法同实验一。
5、 对自己编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6、 编译仿真无误后,依照按键开关、LED 与FPGA 的管脚连接表(表1-1、表1-2)或参照附录进行管脚分配。
表5-1是示例程序的管脚分配表。
分配完成后,再进行全编译一次,以使管脚分配生效。
端口名 使用模块信号 对应FPGA 管脚说 明 INCLK CLOCK2 17 时钟为10KHZDATA0 键1 1 分频比数据 DATA 1 键2 2 DATA 2 键3 3 DATA 3 键4 4 DATA4 键5 5 DATA 5 键6 6 DATA 6 键7 7 DATA 7 键8 10 FOUTLED 灯 D111分频输出 表5-1 端口管脚分配表7、 “模式选择键”:按动该键能使实验板产生12种不同的实验电路结构。
eda频率计课程设计一、课程目标知识目标:1. 学生能够理解EDA(电子设计自动化)的基本概念,掌握频率计的设计原理。
2. 学生能够运用所学知识,分析并设计简单的频率计电路。
3. 学生能够了解频率计在实际应用中的重要性,如信号处理、通信等领域。
技能目标:1. 学生能够运用EDA工具进行电路设计和仿真,提高实际操作能力。
2. 学生能够通过小组合作,解决设计过程中遇到的问题,培养团队协作能力。
3. 学生能够运用所学知识,对频率计电路进行调试和优化,提高问题解决能力。
情感态度价值观目标:1. 学生对EDA技术和电子设计产生兴趣,培养科学探究精神。
2. 学生在学习过程中,养成积极思考、主动探究的良好学习习惯。
3. 学生通过课程学习,认识到科技创新对国家和社会发展的意义,增强社会责任感。
课程性质分析:本课程为电子技术相关课程,旨在让学生掌握EDA技术及其在频率计设计中的应用。
课程内容紧密结合实际,注重培养学生的动手能力和创新能力。
学生特点分析:学生为高中年级,已具备一定的电子技术基础,对新技术和新知识充满好奇,具备较强的学习能力和探究精神。
教学要求:1. 结合教材内容,注重理论与实践相结合,提高学生的实际操作能力。
2. 鼓励学生积极参与课堂讨论,培养学生的思考能力和表达能力。
3. 以项目为导向,注重过程评价,关注学生的学习成果和情感态度价值观的培养。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. EDA基本概念与工具使用- EDA技术的定义、作用及其发展- 常用EDA工具软件的介绍与安装- EDA工具的基本操作与使用方法2. 频率计设计原理- 频率计的基本工作原理- 常见频率计电路拓扑结构分析- 频率计的关键参数及其影响3. 频率计电路设计与仿真- 电路设计流程与方法- 使用EDA工具进行频率计电路设计- 电路仿真与分析4. 频率计电路制作与调试- 电路板设计规范与制作- 元器件选型与焊接- 电路调试与优化5. 频率计在实际应用中的案例分析- 频率计在信号处理、通信等领域的应用- 案例分析与讨论教学大纲安排:第一课时:介绍EDA基本概念与工具使用第二课时:讲解频率计设计原理第三课时:进行频率计电路设计与仿真第四课时:制作与调试频率计电路第五课时:分析频率计在实际应用中的案例教学内容与教材关联:本教学内容紧密结合教材中关于EDA技术、电子测量、电路设计与仿真等章节,确保内容的科学性和系统性。
数控分频器一实验目的:学习数控分频器的设计,分析和测试方法。
二实验原理:数控分频器的功能就是当在输入端给定不同输入数值时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数器溢出位与预置数加载输入信号相接即可。
三实验内容:(1)打开quartus,在菜单中点击new,选择vhdl,在出现的窗口中输入vhdl代码并保存。
其中代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY EX9 ISPORT (clk : IN STD_LOGIC; -- IO30(P125)d : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -- IO47..IO40 (P133, P132, P131, P130, P121, P120, P119, P118)pfull: OUT STD_LOGIC; -- IO01(P38)fout : OUT STD_LOGIC -- IO00(P37));END EX9;ARCHITECTURE behv OF EX9 ISSIGNAL full: STD_LOGIC;BEGINp_reg:PROCESS(clk)V ARIABLE cnt8: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF clk'EVENT AND clk = '1' THENIF cnt8 = "11111111" THENcnt8 := D; -- 计数满后置入初值重新计数full <= '1'; -- 置计数满信号ELSEcnt8 := cnt8 + 1;full <= '0';END IF;END IF;pfull <= full; -- 输出full用于观察END PROCESS p_reg;p_div: -- 将full信号除2,生成方波信号PROCESS(full)V ARIABLE cnt: STD_LOGIC;BEGINIF full'EVENT AND full = '1' THENcnt := NOT cnt;END IF;fout <= cnt;END PROCESS p_div;END behv;(2)创建工程之后对编译之前的参数进行设置,启动start compilation项,其编译结果如下:(3)时序仿真:对仿真前参数设置后启动start simulation,直到出现simulation was successful,仿真结束。
分频器(奇数次分频)一、实验目的1.学习分频器的设计,进一步了解、熟悉和掌握 FPGA开发软件 QuartusII 的使用方法2.学习 Verilog HDL 和 VHDL 的编程方法3.学会使用Vector Wave 功能仿真4.掌握使用多种方法分配管脚二、实验内容编写一个3分频的分频器的 Verilog 代码和 VHDL 代码并仿真。
三、实验步骤1.新建工程,取名为three_fenpin2.新建 VHDL 设计文件,选择“File|New”,在 New对话框中选择 DeviceDesignFiles 下的 VHDLFile,单击 OK,完成新建设计文件。
3.在新建设计文件中输入 VHDL 程序,源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity three_fenpin isport(clk: in std_logic;q :out std_logic);end;architecture one of three_fenpin issignal c1,c2:std_logic_vector (1 downto 0);signal m1,m2:std_logic;beginprocess(clk)beginif rising_edge(clk) thenif c1="10" then c1<="00";else c1<=c1+1;end if;if c1="00" or c1="01" then m1<=not m1;end if;end if;end process;process(clk)beginif falling_edge(clk) thenif c2="10" then c2<="00";else c2<=c2+1;end if;if c2="00" or c2="01" then m2<=not m2;end if;end if;end process;q<=m1 or m2;end;4.新建“Vector Waveform File”文件进行波形仿真。
实验三:整数分频器的设计
一实验目的
了解利用类属设计可配置的重用设计技术。
二实验原理
利用类属n 可以改变分频器的分频系数,输出q的频率是输入信号clk频率的1/n。
通过给n赋不同的值,就可以得到需要的频率。
三实验器材
EDA实验箱
四实验内容
1.参考教材第5章中5.3.1,完成整数分频器的设计。
2.修改5.
3.1中的分频系数n,观察仿真波形和实验箱输入/输出信号的变化。
3.在试验系统上硬件验证分频器的功能。
在实验三中,建议将实验箱的实验电路结构模式设定为模式7。
输入信号clk由键7的输出来模拟,输入信号reset_n由键8模拟,输出信号q接至LED:D14。
当然,也可以由实验者设定到其它功能相似的键或者LED。
代码:(参考教材第5章中5.3.1)
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity div is
generic(n:integer:=8);
port(clk,reset_n:in std_logic;
q: out std_logic);
end div;
architecture behavl_div of div is
signal count:integer range n-1 downto 0;
begin
process(reset_n,clk)
begin
if reset_n='0' then q<='0'; count<=n-1;
elsif(clk'event and clk='1' and clk'last_value='0')then
count<=count-1;
if count>=(n/2)then q<='0';
else q<='1';
end if;
if count<=0 then count<=n-1;
end if;
end if;
end process;
end behavl_div;
五实验注意事项
1.编写代码时一定要书写规范
2模式的选择和引脚的配置一定要合理
六实验报告
简述实验过程,将实验项目分析设计,仿真和测试写入实验报告。