首页 EDA课程设计-简易频率计设计说明书

EDA课程设计-简易频率计设计说明书

举报
开通vip

EDA课程设计-简易频率计设计说明书EDA课程设计-简易频率计设计说明书 唐山学院课程设计 1 引言 频率是常用的物理量,在实际测量过程中总是尽可能地把被测参量转换成频率参量进行测量。例如工程中用振弦式方法测量力、时间测量、速度控制等,都可转化为频率测量。在被测信号中,较多的是模拟和数字开关信号,此外还经常遇到以频率为参数的测量信号,例如流量、转速、晶体压力传感器以及经过参变量一频率转换后的信号等等。因此,频率测量是电子测量技术中最基本的测量之一。 数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如...

EDA课程设计-简易频率计设计说明书
EDA课程设计-简易频率计设计说明书 唐山学院课程设计 1 引言 频率是常用的物理量,在实际测量过程中总是尽可能地把被测参量转换成频率参量进行测量。例如工程中用振弦式方法测量力、时间测量、速度控制等,都可转化为频率测量。在被测信号中,较多的是模拟和数字开关信号,此外还经常遇到以频率为参数的测量信号,例如流量、转速、晶体压力传感器以及经过参变量一频率转换后的信号等等。因此,频率测量是电子测量技术中最基本的测量之一。 数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。因此,数字频率计是一种应用很广泛的仪器,是数字电路中的一个典型应用。频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。但实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。 采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。 本次EDA课程设计设计即为简易数字频率计,其实功能为实现1HZ-10MHZ的方波信号的测量;测量的方波频率值要在4位数码管上进行显示; 根据不同的待测方波信号,频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程。此频率计具有记忆功能,在测量过程中不刷新数据,等数据测量过程结束后才显示测量值,显示测量的频率值,并保存到下一次测量结束;此频率计要设有一个整体复位控制。 常用的测量频率的方法有两种,一种是测周期法,一种是测频率法。 测周期法需要有基准系统时钟频率Fs,在待测信号的一个周期Ts内, 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 基准时钟频率的周期数Ns,则被测频率可 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示为 Fx=Fs/Ns 直接测频率的方法就是在一定的时间间隔内Tw内,得到这个周期信号重复变化的次数Nx,则被测频率可表示位Fx=Ns/Tw 本设计采用的是直接测频率的方法 1 唐山学院课程设计 2 VHDL及QuartusII软件简介 2.1 EDA介绍 EDA是电子设计自动化(Electronic Design Automation)缩写。在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言VHDL(VHSIC Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。 几乎所有适于大学生做的数字逻辑电路实验都可以在计算机上利用EDA (Electronic Design Automatic—电子设计自动化)软件进行设计、仿真,只有极少量外部配件不能在计算机上进行仿真。因此,在实验前期阶段,即实验预习阶段的主要应用工具是EDA软件,利用EDA软件可以设计、仿真实验课 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,进行虚拟实验。通过虚拟实验使实验者在进入真实实验前就能对预做的实验有相当的了解,甚至可以预测到实验的结果。这样在实际做实验时,可以把许多设计型实验的难度降低,同时能有更多的时间让实验者动手做实验,研究问题,提高实验效率。当前数字电路设计已由计算机辅助设计进入到以计算机为主的设计时代 2.2 VHDL介绍 硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C” 即可。而且 VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 (IEEE-STD-1076)。 VHDL是一种全方位的硬件描述语言,包括系统行为级。寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL来完成。VHDL还具有以下优点: (1)VHDL的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。 (2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。 2 唐山学院课程设计 (3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。 (4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。 美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门电路,最后用PLD实现其功能。 2.3 设计工具简介 Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。 3 唐山学院课程设计 3 数字频率计原理 3.1系统原理 数字频率计要实现对输入信号频率进行测试,系统必须要提供一个基准频率,这里通过时钟程序产生频率为6兆赫兹的方波,系统同时输入基准频率和待测频率,在基准频率的高电平处开始记录输入频率的周期个数,待基准频率到达低电平时,停止计数,,则输入频率的周期个数就是它的频率。 该程序共分成四部分,分别为分频(fp)程序、位选(wx)程序、时钟(sz)程序和计数(js)程序。通过四个模块相互配合实现简易数字频率计的功能。 其实现过程为:欲测试的方波信号首先通过分频器模块,产生10倍,100倍,1000倍及本来方波信号共四路方波信号,四路信号送入位选功能模块,通过输入按键控制经过分频处理后的四路方波的选择,此两个模块即实现四个测试档位的功能。位选模块所选择的方波信号进入计数模块,从而得到输入方波信号的频率。时钟模块为一分频程序,是为产生一个6兆赫兹的时钟脉冲送入计数模块,用以对方波频率测试。 3.2 系统原理图 分位 频选 模模 计块块 数 模 块 时钟模块 图3-1 系统原理图 本次简易数字频率计设计系统共分为四个功能模块,如上图3-1所示,分别为分频模块,位选模块,时钟模块和计数模块。四部分功能模块中,分频模块完成对于预测试的方波进行分频,输出四路分别为原方波频率的1倍,1/10倍,1/100倍,1/1000倍频率的方波,分频后的四路方波信号送入第二功能模块,即位选模块,此模块完成四个档位的设计功能,选择一路输出,送入到计数模块当中,技术模块的计数时钟频率必须为6MHz,系统的时钟频率需要经过时钟模块进行分频得到,计数结果即为相应档位下的数值,到此,整个系统功能设计完成。 4 唐山学院课程设计 3.3 系统封装图 图3-2 系统封装图 系统封装图如图3-2所示,其中fb为待测试的方波输入端,clk为系统时钟频率输入端,rst为复位端,sel是档位选择端,当sel为00是乘1档,01是乘10档,10是乘100档,11是乘1000档。d1,d2,d3,d4分别输出四位BCD码,并通过数码管显示,分别表示千位,百位,十位,个位。当系统工作时,四个数码管所显示数据乘以档位即使所测量的方波的频率。 5 唐山学院课程设计 4 整体程序设计 系统通过图形输入实现,包括四个分程序,分别为分频程序,位选程序,时钟程序和计数程序。 4.1 分频程序 4.1.1 分频程序原理 该部分程序中使用process,其中敏感信号列表中为fb1,即预测试的方波信号。通过定义一个变量,以方波为时钟进行计数,该系统需要乘1档,乘10档,乘100档,乘1000档,即进行10倍,100倍,1000倍的分频,则需要程序中计数器计分别计数到5,50,500时对四路输出信号进行逻辑非运算。该程序封装图如下图4-1所示: 图4-1 分频程序封装图 其中fb1为预测方波输入信号,ao,bo,co,do分别为分频后的四路信号。该部分用以实现对预测试的方波进行10倍,100倍,1000倍的分频,以及本来方波信号共计四路方波信号的输出。 4.1.2 分频程序仿真 该部分程序仿真波形如下图4-2所示: 图4-2 分频程序仿真图 分频程序仿真参数设定fb1为输入的预测方波信号,ao,bo,co,do为四个输出信号,分别为对输入fb1进行分频后以及本来方波信号,由图中可以看出ao频率与fb1频率相同,bo频率为fb1频率的1/10,co频率为fb1频率的1/100, 6 唐山学院课程设计 do频率为fb1频率的1/1000。 4.1.3分频程序源代码 library ieee; use ieee.std_logic_1164.all; entity fp is port(fb1:in std_logic; --待测信号 ao,bo,co,do:buffer std_logic); end fp; architecture bhv of fp is begin ao<=fb1; process(fb1) variable nu,nu1,nu2:integer range 0 to 1000:=0; --计数常量 begin if(fb1'event and fb1='1')then nu:=nu+1;nu1:=nu1+1;nu2:=nu2+1; if(nu=5)then --10分频 bo<=not bo; nu:=0; end if; if(nu1=50)then --100分频 co<=not co; nu1:=0; end if; if(nu2=500)then --1000分频 do<=not do; nu2:=0; end if; end if; end process; end bhv; 4.2 位选程序 4.2.1 位选程序原理 该部分程序包含四个输入信号ai,bi,ci,di分别接分频程序的四路分频后 7 唐山学院课程设计 的方波信号,通过sel控制端是00,01,10,11分别选择输出信号的选择,例如若sel为00,则fb0等于ai的输入信号。位选程序与分频程序公共构成频率计四个档位测量功能。位选程序封装图如图4-3所示 图4-3 位选程序封装图 封装图中输入信号ai,bi,ci,di为四路分频后的方波信号,当sel为00时fb=ai,当sel为01时fb=bi,当sel为10时fb=ci,当sel为11时fb=di。 4.2.2 位选程序仿真 该部分程序仿真波形如下图4-4所示: 图4-4 位选程序仿真图 由仿真图可以看出,当sel为00时fb为ai的波形,当sel为01时fb为bi的波形,当sel为10时fb为ci的波形,当sel为11时fb为di的波形。 4.2.3 位选程序源代码 library ieee; use ieee.std_logic_1164.all; entity wx is port(ai,bi,ci,di:in std_logic; --分频输出信号 sel: in std_logic_vector( 1 downto 0); --档位选择 fb0:out std_logic); --位选输出信号 end wx; 8 唐山学院课程设计 architecture bhv of wx is begin process(sel,ai,bi,ci,di) begin if(sel="00")then fb0<=ai; elsif(sel="01")then fb0<=bi; elsif(sel="10")then fb0<=ci; elsif(sel="11")then fb0<=di; end if; end process; end bhv; 4.3 时钟程序 4.3.1 时钟程序原理 该部分代码是实现得到6MHZ的时钟频率,用以对方波频率的计数测量。时钟程序封装如图4-5所示: 图4-5 时钟程序封装图 图中输入信号clk为系统时钟频率,clk1为输出信号,作为计数程序的基准时钟。该时钟程序仍为一个分频程序,系统时钟频率作为进程中敏感信号列表的值,当定义的计数变量计数到6000000时对输出clk1进行逻辑非运算,并将变量置零,从而得到3MHz的时钟信号。此部分为计数部分输入时钟信号,作为频率测量的基准信号。 9 唐山学院课程设计 4.3.2 时钟程序仿真 程序仿真波形如下图4-6所示: 图4-6 时钟程序仿真图 由于设计要求6MHZ,在仿真图上体现很困难,所以改为二分频显示。其中输 入信号clk为系统的时钟信号,输出信号clk1为分频后得到的时钟信号,由上图 中可以看出,clk的频率为clk1的1/2。 4.3.3 时钟程序源代码 library ieee; use ieee.std_logic_1164.all; entity sz is port (clk:in std_logic; clk1:buffer std_logic); --基准信号 end sz; architecture bhv of sz is begin process(clk) variable a:integer range 0 to 6000000; begin if clk'event and clk='1' then a:=a+1; if a=6000000 then a:=0; clk1<=not clk1; --高低电平翻转 end if; end if; end process; end bhv; 10 唐山学院课程设计 4.4 计数程序 4.4.1 计数程序原理 该部分为本次课程简易频率计系统设计的核心部分,此处程序实现对于方波频率的测量。需要说明的是,此处所得到的测量结果为频率计选择档位后的值,即输出的频率需要乘以档位,最终所得到数据才为所测量方波的频率值。 封装图中fb为经过选档后的方波信号,clk为0.5Hz的计数基准时钟信号,rst为复位信号。当输出信号超过量程时数码管显示FFFF。程序封装如下图4-7所示: 、 图4-7 计数程序封装图 4.4.2 计数程序仿真 计数程序仿真波形如下图4-8所示: 图4-8 计数程序仿真图 由于仿真所限,图中clk时钟周期为200ns,fb的时钟周期为20ns,可以看出,fb为clk频率的10倍,由于只有当clk为高电平时计数,所以得到计数结果q值为5。同理,若clk频率为0.5Hz,则其高电平持续时间即为1s,所得到的计数结果5既为fb信号相应频率值,即此时输入方波频率为5Hz。 11 唐山学院课程设计 4.4.3 计数程序源代码 library ieee; use ieee.std_logic_1164.all; entity js is port (fb,clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15); end js; architecture bhv of js is signal x1,x2,x3,x4:integer range 0 to 15; begin process(fb,clk,rst) variable t1,t2,t3,t4:integer range 0 to 15; --计数中间变量 begin if rst='1' then --计数信号复位 t1:=0; t2:=0; t3:=0; t4:=0; elsif clk='0' then t1:=0; t2:=0; t3:=0; t4:=0; elsif clk='1' then if fb'event and fb='1' then t1:=t1+1; if t1=10 then t1:=0; t2:=t2+1; if t2=10 then t2:=0; t3:=t3+1; if t3=10 then t3:=0; 12 唐山学院课程设计 t4:=t4+1; if t4=10 then t1:=15; t2:=15; t3:=15; t4:=15; end if; end if; end if; end if; end if; end if; x1<=t1; --计数中间变量赋值 x2<=t2; x3<=t3; x4<=t4; end process; process (clk) begin if clk'event and clk='0'then --计数数值输出 b1<=x1; b2<=x2; b3<=x3; b4<=x4; end if; end process; end bhv; 13 唐山学院课程设计 4.5 系统总体仿真 4.5.1系统总体连接图 系统总体连接图如下所示 图4-9 系统总体连接图 由于仿真所限,此处并未按实际需要进行参数设定。顶层文件程序仿真前,系统时钟频率clk设定为0.1MHZ,预测试方波频率值设定为5MHZ,由图中可已看出,开始sel为0档,由于其中包括了复位信号,所得到的数据为46,接下来sel为1档,所得到的数据为5,该数据再乘以10得到的最后值50才为仿真欲要得到的数据。仿真时设定了复位参数,由图中可看出当复位信号rst为高电平时,所有的输出都会置零或变为低电平,可实现总体复位功能。如下图3-10所示。 图4-10 顶层文件程序仿真图 由于频率计设计包括了四个档位,其中乘1档测试频率范围为1Hz,9999Hz,乘10档测试频率范围为10Hz,99990Hz,乘100档测试频率范围为 100Hz,999900Hz,乘1000档测试频率范围为1000Hz,9999000Hz,所以相对 应的档位,预测试的频率一旦超过量程就会出现FFFF。 14 唐山学院课程设计 4.5.2系统顶层源程序 library ieee; use ieee.std_logic_1164.all; entity pljsq is port(fb1:in std_logic; sel:in std_logic_vector(1 downto 0); clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15); end pljsq; architecture bhv of pljsq is component fp is port(fb1:in std_logic; --待测信号 ao,bo,co,do:buffer std_logic); end component; component wx is port(ai,bi,ci,di:in std_logic; --分频输出信号 sel: in std_logic_vector( 1 downto 0); --档位选择 fb0:out std_logic); --位选输出信号 end component; component sz is port (clk:in std_logic; clk1:buffer std_logic); --基准信号 end component; component js is port (fb,clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15); end component; signal s0,s1,s2,s3,s4,s5:std_logic; begin U1: fp port map(fb1,s0,s1,s2,s3); U2: wx port map(s0,s1,s2,s3,sel,s4); U3: sz port map(clk,s5); U4: js port map(s4,s5,rst,b1,b2,b3,b4); end bhv; 15 唐山学院课程设计 5引脚锁定及下载 5.1引脚锁定 顶层文件编译仿真完成后要对顶层文件程序中各个输入输出信号进行引脚锁定,值得说明的是,硬件试验箱选用模式5方式,其中数码管自带译码功能。系统时钟引脚应锁定为左侧clk2引脚(56),预测方波fb锁定右侧clk1引脚(126)。具体引脚锁定如下图3—11中所示。 图5-1 引脚锁定图 锁定引脚完成后,对程序再次进行编译,然后下载到硬件中,通过硬件操作,测试简易频率计的各项功能,包括1Hz,10MHz频率测试,数据在四个数码管上的显示,频率计档位切换,复位功能,超量程标志 5.2下载 选择Tools菜单下的Programmer命令,然后在Program/Configure下打上钩选中,点“start”按钮开始下载,“Progress”进度条显示下载进度。成功下载后如图所示: 图5-2 代码下载到FPGA 下载完后就可以在实验箱查看结果。 16 唐山学院课程设计 6 总结 本次EDA课程设计题目为简易数字频率计设计,实现对于1Hz,10MHz频率范围的方波频率进行测量,并在四位数码管上显示。该频率计包括四个档位,具有记忆功能,拥有一个整体的复位控制。此次课设需要用硬件描述语言(VHDL)编写程序,并在Quartus II软件平台上进行程序的编译和仿真,锁定引脚并下载到可编程逻辑器件(试验箱)中,进行硬件的测试。 此次EDA课程设计历时一周时间,进行简易数字频率计系统的设计。程序的编写我们采用原理图连接的形式,经过思考和相互间的分析讨论,将整个系统划分四个功能模块,彼此配合进行四个功能模块设计和程序的编写。其间,我们亦遇到许多问题,诸如整个系统核心模块计数过程的实现,时钟频率的设定等等。 经历一周时间的不懈努力和同学之间愈加默契的配合,我们终于完成预定的目的,完成整个简易数字频率计的设计。虽然其中遇到很多困难,很多问题,但在我们两人相互支持和鼓励想下,都能够得以顺利的找到解决办法或者改进的方法,并在合作中相互提高,彼此进步,在困难在中体会到合作的乐趣。 EDA技术对于我们电子信息工程专业的学生来说是一本很重要的专业技术课程,EDA技术极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,是一门实际应用很广泛的技术。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。 所以,EDA课程的学习对于我们自身素质和能力的提高有十分重要的积极作用,应该很认真的学习。 17 唐山学院课程设计 参考文献 [1].Voknei A.Pedroni.《VHDL数字电路设计教程》.电子工业出版社,2008.5 [2].潘松,黄继业.《EDA技术实用教程》(第二版).科学出版社,2005.2 [3].焦素敏.《EDA应用技术》.清华大学出版社,2002.4 [4].沈明山.EDA技术及可编程器件应用实训,科学出版社,2004 18 唐山学院课程设计 附录? 实现电路结构图模式5 19 唐山学院课程设计 附录? 分频程序: library ieee; use ieee.std_logic_1164.all; entity fp is port(fb1:in std_logic; ao,bo,co,do:buffer std_logic); end fp; architecture bhv of fp is begin ao<=fb1; process(fb1) variable nu,nu1,nu2:integer range 0 to 1000:=0; --计数常量 begin if(fb1'event and fb1='1')then nu:=nu+1;nu1:=nu1+1;nu2:=nu2+1; if(nu=5)then bo<=not bo; nu:=0; end if; if(nu1=50)then co<=not co; nu1:=0; end if; if(nu2=500)then do<=not do; nu2:=0; end if; end if; end process; end bhv; 位选程序: brary ieee; li use ieee.std_logic_1164.all; 20 唐山学院课程设计 entity wx is port(ai,bi,ci,di:in std_logic; sel: in std_logic_vector( 1 downto 0); fb0:out std_logic); end wx; architecture bhv of wx is begin process(sel,ai,bi,ci,di) begin if(sel="00")then fb0<=ai; elsif(sel="01")then fb0<=bi; elsif(sel="10")then fb0<=ci; elsif(sel="11")then fb0<=di; end if; end process; end bhv; 时钟程序: library ieee use ieee.std_logic_1164.all; entity sz is port (clk:in std_logic; clk1:buffer std_logic); end sz; architecture bhv of sz is begin process(clk) variable a:integer range 0 to 6000000; begin if clk'event and clk='1' then a:=a+1; 21 唐山学院课程设计 if a=6000000 then a:=0; clk1<=not clk1; end if; end if; end process; end bhv; 计数程序: library ieee; use ieee.std_logic_1164.all; entity js is port (fb,clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15); end js; architecture bhv of js is signal x1,x2,x3,x4:integer range 0 to 15; begin process(fb,clk,rst) variable t1,t2,t3,t4:integer range 0 to 15; begin if rst='1' then t1:=0;t2:=0;t3:=0;t4:=0; elsif clk='0' then t1:=0;t2:=0;t3:=0;t4:=0; elsif clk='1' then if fb'event and fb='1' then t1:=t1+1; if t1=10 then t1:=0; t2:=t2+1; if t2=10 then t2:=0; t3:=t3+1; if t3=10 then 22 唐山学院课程设计 t3:=0; t4:=t4+1; if t4=10 then t1:=15;t2:=15;t3:=15;t4:=15; end if; end if; end if; end if; end if; end if; x1<=t1; x2<=t2; x3<=t3; x4<=t4; end process; process (clk) begin if clk'event and clk='0'then b1<=x1; b2<=x2; b3<=x3; b4<=x4; end if; end process; end bhv; 顶层源程序: library ieee; use ieee.std_logic_1164.all; entity pljsq is port(fb1:in std_logic; sel:in std_logic_vector(1 downto 0); clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15); end pljsq; 23 唐山学院课程设计 architecture bhv of pljsq is component fp is port(fb1:in std_logic; --待测信号 ao,bo,co,do:buffer std_logic); end component; component wx is port(ai,bi,ci,di:in std_logic; --分频输出信号 sel: in std_logic_vector( 1 downto 0); --档位选择 fb0:out std_logic); --位选输出信号 end component; component sz is port (clk:in std_logic; clk1:buffer std_logic); --基准信号 end component; component js is port (fb,clk,rst:in std_logic; b1,b2,b3,b4:out integer range 0 to 15); end component; signal s0,s1,s2,s3,s4,s5:std_logic; begin U1: fp port map(fb1,s0,s1,s2,s3); U2: wx port map(s0,s1,s2,s3,sel,s4); U3: sz port map(clk,s5); U4: js port map(s4,s5,rst,b1,b2,b3,b4); end bhv; 24
本文档为【EDA课程设计-简易频率计设计说明书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_005190
暂无简介~
格式:doc
大小:220KB
软件:Word
页数:28
分类:生活休闲
上传时间:2017-12-19
浏览量:39