EDA简单频率计设计

合集下载

EDA简易数字频率计设计

EDA简易数字频率计设计

唐山教院之阳早格格创做EDA课程设计题目浅易数字频次计安排系 (部) 疑息工程系班级 12自动化姓名陈帅教号 4120219124指挥西席郭耀华2014 年12月 21日至 12 月 26 日共 1 周2014年 12 月 26 日目录1 弁止12 真验22.1 真验本理2启拆图1554 论断17参照文献18附录191 弁止数字频次计是通讯设备、估计机、电子产品等死产范畴没有成缺少的丈量仪器.由于硬件安排的器件减少,使安排越收搀纯,稳当性变好,延缓减少,丈量缺面变大.通过使用EDA技能对于系统功能举止形貌,使用VHDL谈话,使系统简化,普及真足的本能战稳当性.采与VHDL编程安排的数字频次计,除了被测旗号的整形部分,键输进战数码隐现以中,其余皆正在一片FPGA上真止,进而让所有系统非常粗简,让其具备机动的现场变动性,正在没有改变硬件电路的前提上,进一步矫正普及系统的本能,使数字频次计具备下速,透彻度下,稳当性强,抗搞扰等便宜,为数字系统进一步的集成创制了条件.保守的硬件安排采与自下至上(bottom_up)的安排要收.那种安排要收正在系统安排的后期举止仿真战调试,一朝思量没有周,系统安排存留较大缺陷,便有大概要沉新安排系统,使安排周期大大减少.新颖硬件安排利用电子安排自动化(EDA)技能,采与并止工程战自上至下(top_down)的安排要收,从系统安排进脚,正在顶层举止功能圆框图的区分战结构安排,正在圆框图一级举止仿真战纠错,并用vhd l等硬件形貌谈话对于下条理的系统止为举止形貌,正在系统一级举止考证,末尾再用逻辑概括劣化工具死成简曲的门级逻辑电路的网表,其对于应的物理真止是博用集成电路(ASIC).Vhdl即超下速集成电路硬件形貌谈话,主要用于形貌数字系统的结构、止为、功能战交心.vhdl对于安排的形貌具备相对于独力性,果此安排者不妨没有懂硬件结构,落矮了硬件电路安排易度.以4位十进制数字频次计的安排去证明vhdl谈话正在新颖硬件安排中的应用.旗号频次计的丈量有测频法战周期丈量法.本文采与测频法,即曲交估计每秒钟内旗号脉冲的个数.2 真验2.1 浅易数字频次计安排本理安排真量:(1)安排四位十进制的浅易数字频次计,对于1HZ-10MHZ的圆波旗号举止丈量;(2)丈量的圆波频次值要正在4位数码管上举止隐现;(3)根据分歧的待测圆波旗号,频次计分为4个量程举止丈量,四个量程分别为乘 1乘10,乘100,乘1000量程.(4)此频次计要设有一个真足复位统制;数字频次计的主要功能是丈量周期旗号的频次.频次计的基根源基本理是用一个频次宁静度下的频次源动做基准时钟,对于比丈量其余旗号的频次.频次是单位时间(1秒)内圆波旗号爆收周期变更的次数.正在给定的1秒时间内对于圆波旗号波形计数,并将所计数值隐现出去,便能读与被测旗号的频次.数字频次计最先必须赢得相对于宁静与准确的时间,而后通过计数器估计那一段时间隔断内的圆波脉冲个数并隐现出去.那便是数字频次计的基根源基本理.脉冲旗号的频次便是正在单位时间内所爆收的脉冲个数,其表白式为f=N/T,其中f为被测旗号的频次,N为计数器所乏计的脉冲个数,T为爆收N个脉冲所需的时间.本安排央供基准时钟的频次为1HZ,所以需要分频安排爆收脉宽为1秒的脉冲.再利用那个脉宽为1秒的脉冲计数,计数器所记录的截止,便是被测旗号的频次.果为待测圆波旗号的频次正在1HZ-10MHZ,所以仅用四位7段数码管无法真足透彻隐现,所以需要采用妥当的量程去隐现待测风波旗号的频次,当量程采用没有当大概者频次超出10MHZ时,用一个LED灯面明去告诫丈量有过失.本安排央供用基准时钟旗号(f=1HZ)的统制完毕对于1HZ-10MHZ的圆波旗号举止丈量,使得所丈量的圆波频次值正在4位7段数码管上举止隐现,并根据分歧的待测圆波旗号,将频次计分为4个量程举止丈量,四个量程分别为乘1,乘10,乘100,乘1000量程,量程的采用分为脚动战自动二种.当脚动采用量程时,自动量程隐现为整,脚动量程部分依脚动所选量程而定;当脚动采用旗号没有处事时,频次计自动采用比较符合的量程举止隐现,脚动量程部分隐现为整.而且此频次计具备影象功能,正在丈量历程中没有刷新数据,等数据丈量历程中断后才隐现丈量值,隐现丈量的频次值,并保存到下一次丈量中断.数字频次计另有一个真足的同步浑整端,随时不妨举止浑整收配.别的,数字频次计另有一个没有克没有及透彻隐现待测圆波旗号频次时的告诫灯.数字频次计通过测频统制爆收器将基准旗号变换成所需要的统制旗号clk1战en,待测旗号计数器正在en的统制下对于待测旗号举止丈量并通过锁存器正在clk1的统制下按央供举止隐现,数字频次计包罗测频统制爆收器ctr、待测旗自动采用符合的量程隐现,q1—q4是四位数值从下位到矮位的隐现截止.2.2 各模块步调及仿真此安排使用元件例化的要收举止功能的真止,所以各个模块纵然相互独力又是相互通联的,三个模块共共完毕圆波旗号的丈量.本安排央供为该模块ctr提供的基准旗号频次为1HZ,所以要搞一个2分频器统制爆收一个脉宽为1秒的周期旗号en战一个锁存旗号clk1.rst为下电通常举止真足同步浑整.当en处于下电仄的时间对于输进的待测圆波旗号举止计数丈量,当en处于矮电仄的时间停止计数,并脆持所计数值.当clk1是降下沿的时间将所脆持的数值输出隐现.此测频统制爆收器的步调如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ctr isport(clk,rst: in std_logic;clk1,en: buffer std_logic);end ctr;architecture bhv of ctr isbeginprocess(clk,rst)variable c:integer range 0 to 2beginif rst='1' thenen<='0';elsif clk'event and clk='1' thenc:=c+1;if c=1 thenc:=0;en<=not en;end if;end if;clk1<=not(clk or en);end process;end bhv;此测频统制爆收器的仿真截止如图所示.此模块如果仿真12M分频器很艰易,为了瞅到仿真效验,改成20倍分频器,得到了此仿真截止.如果按步调下载,正在硬件上能很收会的瞅到由6MHZ的基准旗号得到了脉宽为1秒的统制旗号en战统制输出旗号clk1,rst真止了真足同步浑整的功能.该模块通过ctr模块所爆收的脉宽为1秒的en旗号去对于待测旗号举止计数.用28位二进制数d举止对于待测旗号的计数,共时用sel表示自动量程根据所得数值d变更,sel为“0001”时代表乘1,sel为“0010”时代表乘10,sel为“0100”时代表乘100,sel为“1000”时代表乘1000.如果丈量采用量程太小大概者待测圆波旗号频次超出10MHZ,均无法透彻隐现丈量截止,则将b置下电仄举止告诫.此待测旗号计数器的步调如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter isport(en,clkin,rst:in std_logic;a:in std_logic_vector(3 downto 0);sel:out std_logic_vector(3 downto 0);d :out std_logic_vector(27 downto 0);b:out std_logic);end counter;architecture bhv of counter issignal dd: std_logic_vector(27 downto 0);beginprocess(rst,en,clkin)beginif rst='1' thendd<=(others=>'0');b<='0';elsif en='1' thenif clkin'event and clkin='1' thendd<=(others=>'0'); b<='1';elsif dd(7 downto 0)="10011001" then dd<=dd+"01100111";elsif dd(3 downto 0)="1001" thendd<=dd+"0111";elsedd<=dd+'1';end if;end if;if dd(27 downto 24)>"0000" thensel<="1000";elsif dd(23 downto 20)>"0000" then sel<="0100";elsif dd(19 downto 16)>"0000" then sel<="0010";elsesel<="0001";end if;elsedd<=(others=>'0');end if;if dd(27 downto 24)>"0000" thenif a="1000" thenb<='0';elsif a="0000" thenb<='0';elseb<='1';end if;elsif dd(23 downto 20)>"0000" then if a="1000" thenb<='0';elsif a="0100" thenb<='0';elsif a="0000" thenb<='0';elseb<='1';end if;elsif dd(19 downto 16)>"0000" then if a="1000" thenb<='0';elsif a="0100" thenb<='0';elsif a="0010" thenb<='0';elsif a="0000" thenb<='0';elseb<='1';end if;elseb<='0';end if;end process;process(en)beginif en'event and en='0' thend<=dd;end if;end process;end bhv;此待测旗号计数器的仿真截止如图3所示.该模块真止了正在en为下电通常对于输进的待测旗号clkin举止丈量,当en 为矮电通常停止丈量并将所计数值输出,即正在1秒内待测旗号的脉冲数,也便是待测旗号的频次值.sel为根据所计数值自动合理采用的量程,此时sel为“00 01”,代表乘1HZ的量程,即所测圆波旗号的频次正在9999HZ之内.2.2.3 锁存器regist模块的安排该模块用于真止影象隐现,正在丈量历程中没有刷新新的数据,曲到丈量历程中断后,锁存隐现丈量截止,而且保存到下一次丈量中断.其功能是对于四位BCD码举止锁存而且变换成为对于应的4组七段码,用于启动数码管.其中rst为下电通常对于锁存器举止同步浑整.rst为矮电通常仄常处事.输进旗号a对于锁存器举止统制即脚动采用量程,当a为“0001”时,代表采用乘1档,自动量程隐现为整,脚动量程隐现乘1HZ,只输出计数所得值d的矮四位并隐现正在四个十进制数码管上;当a为“0010”时,代表采用乘10档,自动量程隐现为整,脚动量程隐现乘10HZ,只输出计数所得值d的次矮四位并隐现正在四个十进制数码管上;当a为“0100”时,代表采用乘100档,自动量程部分浑整,脚动量程隐现乘100HZ,只输出计数所得值d的次下四位并隐现正在四个十进制数码管上;当a为“1000”时,代表采用乘1000档,自动量程部分浑整,脚动量程隐现乘1000HZ,只输出计数所得值d的下四位并隐现正在四个十进制数码管上.当a 为“0000”时,代表没有举止脚动采用,则脚动量程隐现为整,自动量程部分根据所计数值举止合理采用.sel为“0001”代表所测得的频次值正在0—9999HZ之内,则自动量程隐现乘1HZ,输出所测数值的灵验部分并隐现正在四个十进制数码管上;sel为“0010”代表所测得的频次值正在10000—99999HZ之内,则自动量程隐现乘10HZ,输出所测数值的灵验部分的下四位并隐现正在四个十进制数码管上;sel为“0100”代表所测得的频次值正在100000—999999HZ之内,则自动量程隐现乘100HZ,输出所测数值的灵验部分的下四位并隐现正在四个十进制数码管上;sel为“1000”代表所测得的频次值正在1000 000—9999999HZ之内,则自动量程隐现乘1000HZ,输出所测数值的灵验部分的下四位并隐现正在四个十进制数码管上.此锁存与译码器的步调如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity regist isport(clk1,rst:in std_logic;d:in std_logic_vector(27 downto 0);sel,a:in std_logic_vector(3 downto 0);zd,sd:out std_logic_vector(3 downto 0);q1,q2,q3,q4:out std_logic_vector(3 downto 0));end regist;architecture bhv of regist isbeginprocess(rst,clk1)beginif rst='1' thenq1<=(others=>'0');q2<="0000";q3<="0000";q4<="0000";zd<="0000";elsif(clk1'event and clk1='1') thenif(a="0000") thenif sel="1000" thenq1<=d(27 downto 24);q2<=d(23 downto 20);q3<=d(19 downto 16);q4<=d(15 downto 12);zd<="1000";sd<="0000";elsif sel="0100" thenq1<=d(23 downto 20); q2<=d(19 downto 16); q3<=d(15 downto 12); q4<=d(11 downto 8); zd<="0100";sd<="0000";elsif sel="0010" then q1<=d(19 downto 16); q2<=d(15 downto 12); q3<=d(11 downto 8); q4<=d(7 downto 4); zd<="0010";sd<="0000";elsif sel="0001" then q1<=d(15 downto 12); q2<=d(11 downto 8); q3<=d(7 downto 4); q4<=d(3 downto 0); zd<="0001";sd<="0000";end if;elsif(a="0001") thenq1<=d(15 downto 12); q2<=d(11 downto 8); q3<=d(7 downto 4); q4<=d(3 downto 0); zd<="0000";sd<="0001";elsif(a="0010") thenq1<=d(19 downto 16); q2<=d(15 downto 12); q3<=d(11 downto 8); q4<=d(7 downto 4); zd<="0000";sd<="0010";elsif(a="0100") thenq1<=d(23 downto 20);q2<=d(19 downto 16);q3<=d(15 downto 12);q4<=d(11 downto 8);zd<="0000";sd<="0100";elsif(a="1000") thenq1<=d(27 downto 24);q2<=d(23 downto 20);q3<=d(19 downto 16);q4<=d(15 downto 12);zd<="0000";sd<="1000";end if;end if;end process;end bhv;此锁存与译码器的仿真截止如图所示.该模块的仿真为了将各个功能皆浑晰的隐现出去将sel举止了提前树坐,本去没有是根据所测频次值举止的自动采用.Sel是输进旗号,前提咱们已经相识sel战a没有克没有及共时处事,所以为了使用a,将sel人为的提前设成“0000”了,没有过如许提前将sel的值举止设定本去没灵验率真足的功能.此仿真图中a 为“0001”代表乘1量程,只隐现所计数值d的矮四位,即十六进制的“0”“3”“6”“8”“9”,此时脚动量程sd隐现为“0001”,自动量程zd隐现“0000”代表没有处事.该模块用元件调用(元件例化语句)真止本安排央供的真足功能.顶层文献的效率是将三个下层文献通联到所有,共共真止该浅易数字频次计数器的功能.此处定义了en0,d0,sel0,clko等四个旗号举止下层文献之间以及下层与顶层之间的连交.此模块的步调如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity pin isport(rst,clk,clkin:in std_logic;q1,q2,q3,q4:out std_logic_vector(3 downto 0);sd,zd:out std_logic_vector(3 downto 0);a:in std_logic_vector(3 downto 0);b:out std_logic);end pin;architecture bhv of pin iscomponent ctrport(clk,rst : in std_logic;clk1,en : buffer std_logic);end component;component counterport(en,clkin,rst :in std_logic;a:in std_logic_vector(3 downto 0);sel :out std_logic_vector(3 downto 0);d :out std_logic_vector(27 downto 0);b :out std_logic);end component;component registport(clk1,rst:in std_logic;d:in std_logic_vector(27 downto 0);sel,a:in std_logic_vector(3 downto 0);zd,sd:out std_logic_vector(3 downto 0);q1,q2,q3,q4:out std_logic_vector(3 downto 0));end component;signal clk0: std_logic;signal en0: std_logic;signal d0: std_logic_vector(27 downto 0);signal sel0: std_logic_vector(3 downto 0);beginU1:ctr port map(clk,rst,clk0,en0);U2:counter port map(en0,clkin,rst,a,sel0,d0,b);U3:regist port map(clk0,rst,d0,sel0,a,zd,sd,q1,q2,q3,q4);end bhv;此模块的仿真截止如图所示:由于顶层模块调用ctr模块,所以仿真时逢到类似的问题,咱们改用12倍分频器去仿真,则正在6个基准旗号周期时间内对于待测旗号计数,所以得到的数值除以6便是待测旗号与基准旗号的频次倍数闭系.所以真足功能仿真截止隐现,基准旗号周期为200ns,即频次为5MHZ,所以此待测旗号的频次为50MH Z.当a为“0001”时,代表采用乘1HZ的量程,即隐现矮四位,此时,脚动量程隐现为“0001”表示乘1HZ量程,自动量程隐现为“0000”表示没有处事.当a为“00 10”时,代表采用乘10HZ的量程,即隐现次矮四位,此时,脚动量程隐现为“0 010”表示乘10HZ量程,自动量程隐现为“0000”表示没有处事.当rst为下电通常,输出均为0,则举止了真足同步浑整.2.2.6 启拆图2.2.5 引足锁定硬件下载前,举止引足锁定,各引足锁定情况如图6所示.引足锁定完毕后,再次对于安排文献举止编译.沉新编译完毕后,将摆设文献下载到系统的目标芯片上,下载适配后,按动键1到键4举止脚动采用量程,查看各个部分是可不妨完毕其功能.不妨按键8举止同步浑整.最左边四个数码管从左背左是从下位到矮位的隐现的频次.最左边数码管隐现脚动采用的量程数值,左边第二个是自动默认采用的量程数值.硬件电路简便,体积小,所有电路皆正在一齐芯片里,果此本能宁静.3归纳通过那教期教的《EDA技能》,再加上那几天涯查资料边请教教授,毕竟理浑了头绪,完毕了此次课程安排.刚刚启初拿到本次步调安排题的时间真真有面女镇静,心念着尽管要独力赶快而又下品量的完毕那次课程安排.然而是大概思路有了,感触特地搀纯,尔害怕了,一阵慌治后,毕竟定下心去了毕竟找到了一个比较类似的VHDL步调的浅易数字频次计安排.那也使得尔即日的步调颇有类共的感觉.瞅了几遍课题安排央供战书籍上给的源步调后对于怎么样写那一圆里的步调有了一定的相识,于是便测验考查着自己启初做起了那个系统的总体框图.通常感触教授道课时皆特地简朴收会,然而是当前自己拿到一个安排央供时,治阵足了,然而是通过齐力,先把启拆图绘了出去,最后把本理框图绘出去了.时间过得真快,赶快到周四了,要进真验室搞仿真战下载的时间了,刚刚启初正在真验室有面着慢,然而是教授的新央供提出时,尔热静了,建改步调,搞调试,正在末尾毕竟乐成的完毕了切合安排央供的步调,下载后仍有面小问题需要建改.然而是到底得到了教授的肯定,尔的自疑心更足了.下午又沉新整治了自己的思路,功妇没有背有心人,毕竟把问题皆办理了.通过那次EDA课程安排,尔对于课堂上所教到的表里知识的明白加深了许多,自己动脑、动脚安排的本收也得到了较大普及.正在那次课程安排的历程中,尔对于VHDL 谈话有了更深的认识.通过查阅相闭资料战动脚安排尔创制尔往日对于 VHDL 谈话的认识太过菲薄,认为 VHDL 谈话只可用于安排小型的电路系统.然而有了更深刻的认识之后尔创制教佳VHDL 谈话不妨安排出大规模的、功能搀纯的电路系统.尔创制了动脚试验的要害性.动脚试验是表里知识得以机动使用的需要前提,也是以后走上处事岗位之后不妨很佳的完毕安排处事的技能包管.惟有逢到本量问题并根据自己对于课堂上赢得的博业知识的明白去办理才搞真真的普及自己的本收.那也指示尔正在通常的教习死计中没有克没有及一味笃志于课本知识,现正在社会比赛越去越猛烈,社会对于人才的央供越去越周到,惟有表里知识是近近没有敷的,必须靠试验做收撑.虽然课设完毕了,然而是尔意识到,尔对于FPGA 技能只是不过停顿正在初教的阶段,念要有更大的死长,更深进的钻研,还需要更多的齐力与试验.参照文献[1]Voknei A.Pedroni.《VHDL数字电路安排教程》.电子工业出版社,[3]焦素敏.《EDA应用技能》.浑华大教出版社,[4]曾繁泰,陈好金.VHDL步调安排[M].北京:浑华大教出版社,2001.[5]潘紧,黄继业.EDA技能真用教程[M].北京:科教出版社,2002.[6]宋万杰,罗歉.CPLD 技能及其应用[M].西安:西安电子科技大教出版社,1999附录library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity cs3 isport(rst,clk,clkin:in std_logic;a:in std_logic_vector(3 downto 0);q1,q2,q3,q4:out std_logic_vector(3 downto 0); sd:out std_logic_vector(3 downto 0);zd:out std_logic_vector(3 downto 0);b:out std_logic);end cs3;architecture bhv of cs3 issignal clk1:std_logic;signal en:std_logic;signal bb:std_logic;signal dd:std_logic_vector(27 downto 0); signal d:std_logic_vector(27 downto 0); signal sel:std_logic_vector(3 downto 0); beginprocess(clk,rst)variable c:integer range 0 to 2;beginif rst='1' thenclk1<='0';en<='0';elsif clk'event and clk='1' thenc:=c+1;if c=1 thenc:=0;en<=not en;end if;end if;clk1<= not ( clk or en);end process;process(rst,en,clkin)beginif rst='1' thendd<=(others=>'0');bb<='0';elsif en='1' thenif clkin'event and clkin='1' thendd<=(others=>'0'); bb<='1';elsif dd(7 downto 0)="10011001" then dd<=dd+"01100111";elsif dd(3 downto 0)="1001" thendd<=dd+"0111";else dd<=dd+'1';end if;end if;if dd(27 downto 24)>"0000" thensel<="1000";elsif dd(23 downto 20)>"0000" thensel<="0100";elsif dd(19 downto 16)>"0000" thensel<="0010";else sel<="0001";end if;else dd<=(others=>'0');bb<='0';end if;if dd(27 downto 24)>"0000" thenif a="1000" thenbb<='0';elsif a="0000" thenbb<='0';elsebb<='1';end if;elsif dd(23 downto 20)>"0000" then if a="1000" thenbb<='0';elsif a="0100" thenbb<='0';elsif a="0000" thenbb<='0';elsebb<='1';end if;elsif dd(19 downto 16)>"0000" then if a="1000" thenbb<='0';elsif a="0100" thenbb<='0';elsif a="0010" thenbb<='0';elsif a="0000" thenbb<='0';elsebb<='1';end if;elsebb<='0';end if;end process;process(en)beginif en'event and en='0' thend<=dd;b<=bb;end if;end process;process(rst,clk1)beginif rst='1' thenq1<=(others=>'0');q2<="0000";q3<="0000";q4<="0000";zd<="0000";elsif clk1'event and clk1='1' then if a="0000" thenif sel="1000" thenq1<=d(27 downto 24);q2<=d(23 downto 20);q3<=d(19 downto 16);q4<=d(15 downto 12);zd<="1000";sd<="0000";elsif sel="0100" thenq1<=d(23 downto 20);q2<=d(19 downto 16);q3<=d(15 downto 12);q4<=d(11 downto 8);zd<="0100";sd<="0000";elsif sel="0010" thenq1<=d(19 downto 16);q2<=d(15 downto 12);q3<=d(11 downto 8);q4<=d(7 downto 4);zd<="0010";sd<="0000";elsif sel="0001" thenq1<=d(15 downto 12);q2<=d(11 downto 8);q3<=d(7 downto 4); q4<=d(3 downto 0); zd<="0001";sd<="0000";end if;elsif a="0001" thenq1<=d(15 downto 12); q2<=d(11 downto 8); q3<=d(7 downto 4); q4<=d(3 downto 0); zd<="0000";sd<="0001";elsif a="0010" thenq1<=d(19 downto 16); q2<=d(15 downto 12); q3<=d(11 downto 8); q4<=d(7 downto 4); zd<="0000";sd<="0010";elsif a="0100" thenq1<=d(23 downto 20); q2<=d(19 downto 16); q3<=d(15 downto 12); q4<=d(11 downto 8); zd<="0000";sd<="0100";elsif a="1000" thenq1<=d(27 downto 24); q2<=d(23 downto 20); q3<=d(19 downto 16); q4<=d(15 downto 12); zd<="0000";sd<="1000";end if;end if;end process; end bhv;。

EDA实验4 频率计

EDA实验4 频率计

EDA技术参考实验报告实验名称:数字频率计的设计及实现指导老师:沈晓峰2013年11月实验任务四1、实验题目:数字频率计的设计及实现2、实验要求:1)用VHDL完成8位数字频率计的设计, 该频率计要求频率测量范围:1 Hz ~20 MHz;测量误差≤0.1%;具有清零复位功能;频率测量结果用八位数码管稳定显示;用VHDL设计七段LED译码显示电路;2)用实验系统箱实现该频率计,并用数码管显示所测的频率值。

下载该程序验证程序是否正确;3、实验目的:1)学会数字频率计的设计方法2)掌握自顶向下的设计方法,体会其优越性;参考实验报告四一.实验原理与内容1.测频原理若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。

频率计方框图如下:1)时基T 产生电路:提供准确的计数时间T。

晶振产生一个振荡频率稳定的脉冲,通过分频整形、门控双稳后,产生所需宽度的基准时间T的脉冲,又称闸门时间脉冲。

注意:分频器一般采用计数器完成,计数器的模即为分频比。

2)计数脉冲形成电路:将被测信号变换为可计数的窄脉冲,其输出受闸门脉冲的控制。

3)计数显示电路:对被测信号进行计数,显示被测信号的频率。

计数器一般采用多位10 进制计数器;控制逻辑电路控制计数的工作程序:准备、计数、显示、复位和准备下一次测量。

2、具体实现:1) 测频控制逻辑电路(以1 秒为例)2)产生一个1秒脉宽的周期信号;3)对计数器的每一位计数使能进行控制;4)完成下一次测量前的计数器复位;以下是一种可能的时序关系:5)10 进制计数器要求具有计数使能端CNTEN、复位端CLR、进位输出端CO。

3、组件例化图(方框图):注意:用8个十进制计数器实现1MHz 计数。

二.设计文件及编译处理(一)十进制计数器的基本原理计数器在每个时钟的上升沿自加,并且具有自动进位输出的管脚1)计数模块的程序2)计数模块的时序仿真图中的清零和使能信号均发挥作用图中clk为参考时钟;EN为计数使能信号;RESET为测频清零信号。

EDA简易数字频率计设计

EDA简易数字频率计设计

EDA简易数字频率计设计摘要EDA(Electronic Design Automation)是电子设计自动化的缩写,是现代电子工业领域中的一种重要工具。

EDA工具可以帮助工程师完成电路设计、仿真、验证和布局等工作,从而提高设计效率和精度。

本文将介绍如何通过EDA工具设计一个简单的数字频率计。

设计原理数字频率计是一种可以实时测量电信号频率的仪器。

其工作原理是利用计数模型,通过计算信号周期数与时间,间隔测算信号频率。

本文设计的数字频率计采用2种常见的计数模型:频率分频计数和门限计数。

频率分频计数频率分频计数法是利用可编程可除模块,将输入的高频脉冲信号分频后,通过计数器来计算脉冲个数,最终计算出信号的频率。

其计数原理如下图所示:图1:频率分频计数法图1:频率分频计数法其中,n为分频系数,f为输入信号频率。

门限计数门限计数法是将输入信号经过比较门限后,产生一个矩形脉冲,再利用计数器计算脉冲个数,最终计算出信号的频率。

其计数原理如下图所示:图2:门限计数法图2:门限计数法其中,T表示输入信号周期,Δt为门限宽度。

设计流程本文采用EDA工具LTspice进行数字频率计的设计。

使用LTspice的原因是它是一款功能强大、易于学习、免费的EDA软件,广泛应用于电路设计和仿真领域。

设计流程如下:1.确定输入信号的电路参数:输入信号频率、振幅、时钟等。

2.选择计算频率的计数模型:这里采用频率分频计数和门限计数2种模型,建立计算模型电路。

3.进行仿真,测试电路的性能:可以通过分析波形图、输出计数结果等方式验证电路的正确性和有效性。

设计实例本文将以一个简单的设计实例来说明如何进行数字频率计的设计。

假设输入信号频率为1 kHz,振幅为5V,计数器工作电压为3.3V,门限计数的门限宽度为10 us,计数模型电路如下图所示:V1 IN 0 PULSE(0 5 0 10n 10n 1u 2u)R1 IN N1 50C1 N1 N2 10nD1 N2 0 DQ1 D Q3 VCC TXR2 TX N3 1megC2 N3 0 1uXU1 Q3 CLK TX DFFXU2 CLK 0 N5 D2R3 D2 N7 10kC3 N7 0 1n以上代码中,V1为输入信号源,R1和C1组成低通滤波器,滤除杂波信号,D1、Q1、R2、C2和D2构成频率分频计数器,XU1和XU2分别为D触发器和门限计数器。

EDA频率计设计

EDA频率计设计

E D A频率计设计(共18页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--八位十六进制频率计设计摘要频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器。

可用来测量频率、时间、周期、计数。

该设计是利用VHDL语言实现频率计的功能,频率计主要由四个模块构成:计数模块、锁存模块显示模块以及控制模块。

对各个部分的设计思路、对各部分电路设计方案的选择、元器件的筛选、以及对它们的调试、对调试结果的分析,最后得到实验结果的方方面面。

关键字:频率计、VHDL、元件例化。

AbstractFrequency meter is called for frequency counter ,which is a specialized measuring device to be used for measuring measured signal frequency .It can be used to measure frequency,time,period, layout make use of VHDL language to come true the function of frequency meter,it is made up of four blocks which are counting block,registering block,showing block and curbing ,electric circuit project design ,component screen , shakedown test and analysing result of every part,finally getting all aspects of experimenting result.Key : frequency meter, VHDL,component.一.原理八位十六进制频率计是由TFCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B的ENABL使能进行同步控制。

eda的频率计课程设计

eda的频率计课程设计

eda的频率计课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握频率计的设计原理;2. 学生能描述频率计的工作原理,了解其主要组成部分;3. 学生能掌握频率计的电路设计方法,并了解其在实际应用中的重要性。

技能目标:1. 学生能运用所学知识,使用EDA软件进行频率计的电路设计;2. 学生能通过实验操作,搭建并调试频率计电路,提高实际动手能力;3. 学生能分析实验数据,解决频率计使用过程中出现的问题。

情感态度价值观目标:1. 学生对电子设计产生兴趣,培养创新意识和实践能力;2. 学生养成合作学习的习惯,提高团队协作能力;3. 学生认识到频率计在科技发展中的重要作用,增强社会责任感和使命感。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握基本理论知识的基础上,通过实践操作,提高电子设计能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。

后续教学设计和评估将围绕这些具体学习成果展开。

二、教学内容本章节教学内容围绕以下三个方面进行选择和组织:1. 理论知识学习:- 电子设计自动化(EDA)基本概念及发展历程;- 频率计的工作原理及主要组成部分;- 频率计电路设计的基本方法。

教学内容关联课本第3章“电子设计自动化”及第4章“频率计的设计与应用”。

2. 实践操作环节:- 使用EDA软件进行频率计电路设计;- 搭建并调试频率计电路;- 分析实验数据,解决实际问题。

实践操作环节与课本第5章“实验与实训”相结合。

3. 教学大纲安排:- 第一周:学习EDA基本概念、发展历程,了解频率计的工作原理及主要组成部分;- 第二周:学习频率计电路设计方法,进行EDA软件操作训练;- 第三周:分组进行频率计电路设计,搭建和调试电路,分析实验数据。

教学内容具有科学性和系统性,确保学生在掌握理论知识的基础上,通过实践操作提高电子设计能力。

4. 教材章节及内容列举:- 第3章 电子设计自动化:3.1节、3.2节、3.3节;- 第4章 频率计的设计与应用:4.1节、4.2节、4.3节;- 第5章 实验与实训:5.1节、5.2节、5.3节。

EDA课设-数字频率计设计

EDA课设-数字频率计设计

E D A课设-数字频率计设计(总17页) -本页仅作为预览文档封面,使用时请删除本页-一.背景介绍数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。

它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。

经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。

因此数字频率计在测量物理量方面应用广泛。

本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。

具有体积小、可靠性高、功耗低的特点。

数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。

在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。

该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。

2二.设计思路以及实现方法1.测频原理本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用LED数码显示管显示出来。

频率计测量频率需要设计整形电路使被测周期性信号整形成脉冲,然后设计计数器对整形后的脉冲在单位时间内重复变化的次数进行计数,计数器计出的数字经锁存器锁存后送往译码驱动显示电路用数码管将数字显示出来,需要设计控制电路产生允许计数的门闸信号、计数器的清零信号和锁存器的锁存信号使电路正常工作。

2.实现方法根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,并且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。

eda频率计课程设计

eda频率计课程设计

eda频率计课程设计一、课程目标知识目标:1. 让学生理解EDA(电子设计自动化)的基本概念,掌握频率计的设计原理;2. 学会运用已学的电子元件和电路知识,设计并搭建一个简单的频率计;3. 掌握频率计在电子测量中的应用,了解其重要性和实际意义。

技能目标:1. 培养学生动手操作能力,能正确使用电子仪器和工具进行电路搭建;2. 提高学生问题解决能力,通过团队协作,设计和调试频率计电路;3. 培养学生运用EDA软件进行电路仿真和优化设计的能力。

情感态度价值观目标:1. 培养学生对电子设计的兴趣和热情,激发创新意识;2. 培养学生团队协作精神,学会倾听、沟通、分享和合作;3. 增强学生环保意识,了解电子产品的绿色设计和可持续发展。

分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能独立完成频率计电路的设计和搭建;2. 学生能运用EDA软件进行电路仿真,优化设计方案;3. 学生在团队协作中,发挥个人特长,共同解决问题;4. 学生通过课程学习,增强对电子设计领域的认识和兴趣,培养良好的情感态度价值观。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. EDA基本概念与频率计原理- 介绍EDA的基本概念、作用及其在电子设计中的应用;- 讲解频率计的工作原理、分类及其在电子测量中的重要性。

2. 电子元件与电路知识- 复习已学的电子元件(如电阻、电容、二极管、晶体管等)及其特性;- 梳理相关电路知识(如放大电路、滤波电路等)在频率计设计中的应用。

3. 频率计设计与搭建- 分析频率计电路的设计方法,引导学生运用所学知识进行设计;- 实践操作,指导学生正确搭建频率计电路,并进行调试。

4. EDA软件应用与电路仿真- 介绍EDA软件的基本功能,教授学生如何进行电路仿真和优化设计;- 指导学生运用EDA软件完成频率计电路的仿真,提高设计效率。

5. 团队协作与问题解决- 培养学生团队协作能力,分工合作完成频率计设计任务;- 引导学生学会分析问题、解决问题,提高实际操作能力。

eda课程设计数字频率计

eda课程设计数字频率计

eda课程设计 数字频率计一、课程目标知识目标:1. 学生能够理解并掌握数字频率计的基本原理,包括频率的概念、测量方法及其在电子工程中的应用。

2. 学生能够运用所学知识,分析并识别EDA(电子设计自动化)软件中与数字频率计相关的元件和模块。

3. 学生能够运用电子元件搭建简单的数字频率计电路,并描述其工作过程。

技能目标:1. 学生能够运用EDA软件进行数字频率计电路的设计、仿真和调试,具备实际操作能力。

2. 学生能够通过小组合作,解决在数字频率计设计过程中遇到的技术问题,提高团队协作和问题解决能力。

情感态度价值观目标:1. 学生能够认识到数字频率计在电子工程领域的重要性和实际应用价值,激发对电子工程的兴趣和热情。

2. 学生在课程学习中,培养严谨的科学态度,注重实验数据的真实性和准确性。

3. 学生通过小组合作,学会尊重他人意见,培养良好的沟通能力和团队精神。

本课程针对高中年级学生,结合电子工程学科特点,强调理论与实践相结合,注重培养学生的动手操作能力和实际应用能力。

课程目标具体、可衡量,旨在帮助学生和教师在课程结束后,能够清晰地了解学生在知识、技能和情感态度价值观方面的预期成果。

同时,将课程目标分解为具体的学习成果,便于后续的教学设计和评估。

二、教学内容本章节教学内容依据课程目标,紧密围绕数字频率计的设计与实现,确保内容的科学性和系统性。

具体教学内容如下:1. 理论知识学习:- 频率概念及其测量方法- 数字频率计的原理与分类- EDA软件的基本操作与使用方法2. 实践操作环节:- 数字频率计电路设计原理- EDA软件中数字频率计电路搭建与仿真- 实际电路搭建与调试3. 教学大纲安排:- 第一课时:介绍频率概念、测量方法及数字频率计的原理与分类,让学生了解课程背景和目标。

- 第二课时:讲解EDA软件的基本操作与使用方法,引导学生学习并掌握软件应用。

- 第三课时:分析数字频率计电路设计原理,指导学生进行电路设计和仿真。

eda数字频率计课程设计

eda数字频率计课程设计

eda数字频率计课程设计一、课程目标知识目标:1. 让学生理解数字频率计的基本原理,掌握EDA工具的使用方法;2. 使学生掌握数字频率计的电路设计,包括计数器、时钟分频器等关键部分;3. 让学生掌握数字频率计的仿真与调试方法,了解其在实际应用中的限制和改进措施。

技能目标:1. 培养学生运用EDA工具进行数字电路设计和仿真的能力;2. 培养学生独立分析问题、解决问题的能力,能够根据实际需求调整和优化数字频率计的设计;3. 培养学生团队合作意识,提高沟通与协作能力。

情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养创新意识和探索精神;2. 培养学生严谨的科学态度,注重实验数据的真实性,遵循实验操作规范;3. 引导学生关注我国电子产业的发展,增强民族自豪感和使命感。

课程性质:本课程为实践性较强的电子设计课程,旨在通过数字频率计的设计与实现,让学生掌握电子设计的基本方法和技能。

学生特点:学生已具备一定的电子基础知识,具有较强的学习能力和动手能力,但对EDA工具的使用和数字电路设计尚较陌生。

教学要求:教师需结合学生特点,注重理论与实践相结合,引导学生主动参与课堂讨论和实践活动,培养其独立思考和解决问题的能力。

通过课程学习,使学生能够达到预定的学习成果,为后续相关课程的学习打下坚实基础。

二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 数字频率计原理介绍:使学生了解数字频率计的工作原理,掌握频率测量的基本方法。

- 相关教材章节:第五章“数字频率计”- 内容列举:频率计的基本原理、计数器原理、时钟分频器原理等。

2. EDA工具使用:培养学生运用EDA工具进行电路设计与仿真的能力。

- 相关教材章节:第三章“EDA工具的使用”- 内容列举:EDA工具的基本操作、原理图绘制、电路仿真等。

3. 数字频率计电路设计:使学生掌握数字频率计的电路设计方法,包括计数器、时钟分频器等关键部分。

- 相关教材章节:第四章“数字电路设计”- 内容列举:计数器设计、时钟分频器设计、数字频率计整体电路设计等。

EDA秒表和简易频率计的设计

EDA秒表和简易频率计的设计

完善秒表及简易频率计的设计(研究)一.任务解析分析秒表和简易频率计的结构个原理图发现两者之间颇有相同之处。

故考虑用相同的思路设计出秒表和频率计。

在设计秒表时考虑用7位数码管来显示,每1000毫秒进1秒,每60秒进1分钟,最大能显示59’99’’999。

毫秒和秒之间用小数点隔开,秒和分之间也用小数点隔开。

在程序中能实现暂停、开始、缓存和显示。

在设计频率计时,想用8位数码管显示外部的频率大小,精度为1HZ。

调节外部的频率发生器,数码管能够迅速显示其频率大小。

二.方案论证在设计秒表时,首要考虑到计数模块部分。

首先想到的是分高低位,用进位来计数。

在实际写出操作中发现用此种写法写出来的程序,在清零时遇到了问题,在清零操作时低位能清零而高位不能清零。

最后考虑到把每一个数码管当一整体进行计数,然后进行译码。

此种方法能很好的将秒表中的暂停,开始,缓存,显示功能加入进去并实现。

同样次计数模块用来实现频率计也很方便,同样可以应用秒表中的缓存方法写出程序,译码方式也相同。

三.实验步骤计数模块原理图:秒表和频率计原理图:秒表程序如下:module my_miaobiao2(clk,clr,stop,jishu,jishuplot,k,w,y); input clk,clr,stop,k,jishu,jishuplot;output [2:0]w;output [7:0]y;reg[3:0]d,q;reg [3:0]d1,d2,d3,d4,d5,d6,d7;reg[7:0]y;reg [3:0]q1,q2,q3,q4,q5,q6,q7;reg [26:0]count1,count2;reg [2:0]w;reg clkr1,clkr2,,r;always @(posedge clk)begincount1=count1+1;if(count1==1000)begin count1=0;clkr1=~clkr1;endcount2=count2+1;if(count2==25000)begincount2=0;clkr2=~clkr2;endendalways @(posedge clkr2 or negedge clr or negedge stop or negedge jishu)beginif(!stop) r=!r;if(!clr) begin d1=0; d2=0;d3=0;d4=0;d5=0;d6=0;d7=0; end //全局清零else if(!r) begin d1=d1; d2=d2;d3=d3;d4=d4;d5=d5;d6=d6;d7=d7; //暂停if(!k) begin d1=0; d2=0;d3=0;d4=0;d5=0;d6=0;d7=0; end end //清零elseif(d1<9)d1=d1+1;else begin d2=d2+1;d1=0;endif(d2>9)begin d3=d3+1;d2=0;endif(d3>9)begin d4=d4+1;d3=0;endif(d4>9)begin d5=d5+1;d4=0;endif(d5>5)begin d6=d6+1;d5=0;endif(d6>9)begin d7=d7+1;d6=0;endif(d7>5)begin d7=0;endif(!jishu) beginq1=d1; q2=d2;q3=d3;q4=d4;q5=d5;q6=d6;q7=d7;endelse if(!jishuplot) begin d1=q1;d2=q2;d3=q3;d4=q4;d5=q5;d6=q6;d7=q7; endendalways @(posedge clkr1)beginif(w<6) w=w+1;else w=0;if(w==0)d=d1;if(w==1)d=d2;if(w==2)d=d3;if(w==3)q=d4;if(w==4)d=d5;if(w==5)q=d6;if(w==6)d=d7;endalways @(w)beginif(w==3||w==5)y=(q==0)?8'hbf:(q==1)?8'h86:(q==2)?8'hdb:(q==3)?8'hcf:(q==4)?8'he6:(q==5)?8'hed:(q==6)?8'hfd:(q==7)?8'h87:(q==8)?8'hff:(q==9)?8'hef:8'h00; elsey=(d==0)?8'h3f:(d==1)?8'h06:(d==2)?8'h5b:(d==3)?8'h4f:(d==4)?8'h66:(d==5)?8'h6d:(d==6)?8'h7d:(d==7)?8'h07:(d==8)?8'h7f:(d==9)?8'h6f:8'h00;endendmodule程序中,clr代表全局清零,stop为暂停开始按键,k代表清零按键,jishu为记下缓存按键,jishuplot表示显示缓存的按键。

EDA课程设计--数字频率计

EDA课程设计--数字频率计

EDA《数字频率计》课程设计报告专业:电子信息工程班级:08电信姓名:刘冰学号: F指导教师:任苹年月日一课程设计目的1)课程设计题:数字频率计2)任务及要求1、设计一个能测量方波信号的频率的频率计。

2、测量的频率范围是0 Hz。

3、结果用十进制数显示。

4、按要求写好设计报告(设计报告内容包括:引言,方案设计与论证,总体设计,各模块设计,调试与数据分析,总结)。

3)教学提示1、脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。

所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。

2、被测频率信号取自实验箱晶体振荡器输出信号,加到主控门的输入端。

3、再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。

4、时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。

5f=N/T,改变时基信号的周期T,即可得到不同的测频范围。

5、当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个置零信号,将计数器和所有触发器复位,为新的一次采样做好准备。

6、改变量程时,小数点能自动移位。

4)设计报告要求1、说明设计作品的功能、特点、应用范围;2、方案对比,确定方案。

3、电路工作原理、操作方法;4、编程方法、程序框图及关键程序清单。

5、课程设计总结。

数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字,显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精度高,显示直观,所以经常要用到数字频率计。

二、设计方案论证、结果以及分析1 原理图编译成功后其波形图如下:2、信号发生器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sele isport(clk: in std_logic;jian: in std_logic_vector(1 downto 0);oclk: out std_logic);end;architecture s_1 of sele issignal full : std_logic;signal t :integer range 0 to ;beginP1:process(jian,t)begincase jian iswhen "00" => t <= ; --产生时基脉冲1swhen "01" => t <= ; --产生时基脉冲100mswhen "10" => t <= 59999; --产生时基脉冲10ms when "11" => t <= 5999; --产生时基脉冲1ms when others => null;end case;end process P1;P2: process(clk,t)variable s : integer range 0 to ;beginif (clk'event and clk = '1') thenif s < t thens := s +1;else s := 0 ;end if;end if;if s = t then full <= '1';else full <= '0';end if;end process P2;P3: process(full)variable c : std_logic; beginif full'event and full = '1' then c := not c;if c = '1' thenoclk <= '1';else oclk <='0';end if;end if;end process P3;end;其仿真波形为:3、测频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity cp isport(clkk: in std_logic;en,rst,load: out std_logic); end;architecture cp_1 of cp issignal div2: std_logic;beginprocess(clkk)beginif(clkk'event and clkk='1') thendiv2 <= not div2;end if;end process;process(clkk,div2)beginif (clkk='0' and div2='0') thenrst <='1';else rst <='0';end if;end process;load <= not div2;en <= div2;end;其仿真波形为:4、计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu isport(rst,en,clk: in std_logic;Q: out std_logic_vector(3 downto 0); cout: out std_logic);end;architecture cnt of jishu issignal cnt: std_logic_vector(3 downto 0);beginprocess(rst,en,clk)beginif rst='1' then cnt <= "0000";elsif(clk'event and clk='1') and en = '1' thenif cnt = "1001" thencnt <= "0000"; cout <= '1';elsecnt <= cnt + 1;cout <= '0';end if;end if;end process;Q <= cnt;end;在源程序中COUT是计数器的进位输出;Q[3..0]是计数器的状态输出;CLK是时钟输入端;RST是复位控制端;当RST=1时,Q[3..0]=0,EN是使能控制输入端,当EN=1时,计数器计数,当EN=0时,计数器保持状态不变。

EDA简易数字频率计-课设报告1

EDA简易数字频率计-课设报告1

《EDA技术》课程设计报告题目:简易数字频率计专业:本组成员:简述随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,因此测频计常受到人们的青睐。

目前许多高精度的数字频率计都采用单片机加上外部的高速计数器来实现,然而单片机的时钟频率不高导致测频速度比较慢,并且在这种设计中,由于PCB版的集成度不高,导致PCB板走线长,因此难以提高计数器的工作频率。

为了克服这种缺点,大大提高测量精度和速度,我们可以设计一种可编程逻辑器件来实现数字频率计。

EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术。

其设计的灵活性使得EDA技术得以快速发展和广泛应用。

以QUARTUSII软件为设计平台,采用VHDL 语言实现数字频率计的整体设计。

EDA技术已经广泛应用于模拟与数字电路系统等许多领域。

电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。

EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,VHDL语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。

1.设计概述1.1设计原理在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。

EDA课设_简易数字频率计

EDA课设_简易数字频率计

1 引言在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。

稳定的时钟在高性能电子系统中有着举足轻重的作用,直接决定系统性能的优劣。

随着电子技术的发展,测频系统使用时钟测频,提高频技术有了相当大的发展,但不管是何种测频方法,±1个计数误差始终是限制测频精度进一步提高的一个重要因素。

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。

随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。

本次课设所设计的为易数字频率计,用于测量方波信号的频率并显示测量结果。

2 总体介绍2.1EDA、FPGA、VHDL介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA的基本特点主要有:采用FPGA 设计ASIC电路,用户不需要投片生产,就能得到合用的芯片;FPGA可做其它全定制或半定$0ASIC电路的中试样片;FPGA内部有丰富的触发器和I/O引脚;FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;FPGA 采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

eda频率计课程设计

eda频率计课程设计

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技术、电子测量、电路设计与仿真等章节,确保内容的科学性和系统性。

EDA课程设计——数字频率计的设计

EDA课程设计——数字频率计的设计

《电子设计自动化(EDA)技术》课程设计报告书题目: 数字频率计的VHDL设计姓名:院系:专业:学号:指导教师:完成时间: 年月日课程设计题目、内容、要求目录1 课程设计题目、内容与要求……………………………………1.1 设计内容……………………………………………………1.2 具体要求……………………………………………………2 系统设计…………………………………………………………2.1 设计思路……………………………………………………2.2 系统原理与设计说明3 系统实现…………………………………………………………4 系统仿真…………………………………………………………5 硬件验证(操作)说明…………………………………………6 总结……………………………………………………………7 参考书目………………………………………………………1 课程设计题目、内容与要求1.1课程设计的题目:数字频率计设计1.2课程设计内容:(1)设计一个能测量方波信号的频率计;(2)测量范围是0-999999Hz;(3)结果用十进制数显示。

2 系统设计2.1设计思路:2.1.1 数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器.它的基本功能是测量方波信号及其他各种单位时间内变化的物理量。

本数字频率计采用自顶向下的设计思想,通过闸门提供的1s闸门时间对被测信号进行计数及测出的被测信号的频率,测出的频率再通过译码器译码后输出给显示器显示。

根据系统设计的要求,数字频率计的电路原理框图如下:2.2 系统原理与设计说明系统各个模块的功能如下:2.2.1标准时钟发生电路模块借用实验板上标准时钟发生电路,为计数闸门控制电路提供一个标准8Hz信号。

2.2.2 计数器闸门控制电路模块计数器闸门控制电路就是产生三个控制信号,即计数器复位信号、4位十进制计数器允许计数信号、锁存信号。

2.2.3锁存电路模块锁存电路就是为了让LED数码管在信号来临之前保持计数值不变。

EDA课程设计报告__频率计

EDA课程设计报告__频率计

课程设计报告一、设计目的和要求1.课程设计目的(1).熟悉CPLD的开发软件的基本使用。

(2).理解频率计的测量原理。

(3).掌握CPLD逻辑电路设计方法。

(4).掌握虚拟数字频率计的软件设计。

2.课程设计的基本要求在CPLD中设计一个数字频率计电路,设计要求为:测量范围:1Hz~1MHz。

3.课程设计类型Vhdl程序设计二、仪器和设备1.电脑2.max+plus2软件三、设计过程1.设计内容和要求在CPLD中设计一个数字频率计电路,设计要求为:测量范围:1Hz~1MHz。

2.设计方法和开发步骤3.设计思路下图是8位十进制数字频率计的电路逻辑图,它由1个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器的CNT10、1个32位锁存器REG32B组成。

常熟理工学院课程设计报告1)测频控制信号发射器的设计频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。

这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。

当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。

在停止计数期间,首先需要一个锁存信号LOAD 的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B 中,由外部的7段译码器译出并稳定显示,锁存信号之后必须有一清零信号CLR_CNT对计数器进行清零,为下一秒的计数操作作准备。

测频控制信号发生器是先建立一个由D触发器构成的二分频物理与电子工程学院EDA实验室器,再在每次时钟CLK上沿到来时其值翻转。

其中,控制信号时钟CLK的频率取1Hz,而信号TSTEN的脉宽恰好是1s,可以用做闸门信号。

此时,根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。

在计数完成后,即计数使能信号TSTEN在1s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5秒后,CLR_CNT产生一个清零信号上跳沿。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单频率计设计物理与电子工程学院电子信息科学与技术专业 2011级董思林指导教师何传红摘要:随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,因此测频计常受到人们的青睐。

EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术,其设计的灵活性使得EDA技术.快速发展和广泛应用。

关键词:可编程逻辑器件;计数;分频;脉冲;扫描1 引言在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得非常重要。

测量频率的方法有多种,其中电子计数器测量具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内量被测信号的脉冲个数;二是间接测频法,如周期测频法。

直接测频法适用于高频信号的频率测量,间接测频法适用于低频号的频率测量。

本设计采用直接测频法,以QuartusⅡ软件为设计平台,采用VHDL语言实现数字频率计的整体设计。

伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。

电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。

EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,在电子设计领域受到了广泛的接受。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,有硬件描述语言VHDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作,最终形成集成电子系统或专业集成芯片的一门新技术。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

2 设计原理2.1 基本原理数字频率计的主要功能是测量周期信号的频率。

频率是单位时间(1秒)内信号发生周期变化的次数。

在给定的1秒时间内对信号波形计数,并将所计数值显示出来,就能读取被测信号的频率。

数字频率计首先必须获得相对稳定与准确的时间,然后通过计数器计算这一段时间间隔内的方波脉冲个数并显示出来。

这就是数字频率计的基本原理。

2.2 系统框图通过测频控制信号发生器将由脉冲发生器产生的信号转换成所需要的控制信号clk1和en,待测信号计数器在en的控制下对待测信号进行测量并通过锁存与译码器在clk1的控制下按要求进行显示,大体结构如图1所示:图2.2 系统框图3 整体功能介绍3.1 计数器设计频率计的核心元件之一是含有时钟使能及进位扩展输出的十进制计数器。

为此,这里用一个双十进制计数器器件74390和其他一些辅助元件来完成。

电路框图如图3.1所示。

图3.1 含有时钟使能的2位十进制计数器图中,74390连接成两个独立的十进制计数器,待测频率信号clk通过一个与门进入74390的计数器“1”端的时钟输入端1CLKA。

与门的另一端由计数使能信号enb控制:当enb=1时允许计数;enb=0时禁止计数。

计数器1的4位输出q[3] 、q[2] 、q[1] 和q[0] 并成总线表达方式,即q[3..0] ,由图左下角的OUTPUT输出端口向外输出计数值。

同时由一个4输入与门和两个反相器构成进位信号,进位信号进入第二个计数器的时钟输入端2CLKA。

第二个计数器的4位计数输出是q[7] 、q[6] 、q[5] 和q[4],总线输出信号是q[7..4].这两个计数器的总得进位信号,可由一个6输入与门和两个反相器产生,由cout输出。

clr是计数器的清零信号。

对图3.1所示电路进行仿真,其波形图如下图3.1.1所示。

图3.1.1 仿真波形图3.2 时序控制电路设计欲使电路能自动测频,还需增加一个测频时序控制电路,如图3.2所示。

该电路由三部分组成:4位二进制计数器7493、4-16译码器74154和两个由双与非门构成的RS 触发器。

图3.2 测频时序控制电路3.3 时钟分频模块设计由于设计中利用了一个50MHz的时钟信号输入,需要将其分频为合适的频率供给本设计中的各个模块。

其程序代码如下:module CLK_DIV(CLK,DIVCLK); //时钟偶数分频模块input CLK; //定义输入时钟output DIVCLK; //定义输出时钟reg DIVCLK; //定义寄存器reg [DIV_WIDTH-1:0]counter; //定义计数寄存器parameter DIV_Num = 500000; //参数,定义分频参数parameter DIV_WIDTH = 19; //参数,定义分频参数占用的位宽always @ (posedge CLK) //分频过程beginif(counter == ((DIV_Num>>1)-1)) //注意分频数的计算公式begincounter <= 0;DIVCLK <= ~DIVCLK;endelsecounter <= counter + 1'b1;endendmodule利用此代码生成元件命名为CLK_DIV,供上层文件调用。

3.4 数码管动态扫描显示驱动模块设计本设计利用8位7段LED数码管,但只需要2位,需采用动态扫描驱动,为显示频率计的结果,需要在计数器和数码管之间放置一个驱动电路模块,由于数码管的现实字符段码过于冗长,这里只作简要说明。

代码总共分为三部分:第一部分是相关参数的定义和段码字符的赋值;第二部分有两个case语句,第一个case语句实现对莫一位数码管的定义,,第二个case语句实现对数码管某一个段进行定义;第三部分则是对数码管具体要显示哪个字符进行初始化。

3.5 顶层电路设计将图3.1所示电路包装入库,元件名取为counter8;将图3.2所示电路包装入库,元件名取为ft_ctrl。

有了counter8和ft_ctrl,就可以做成自动测频和数据显示的实用频率计了,电路如图3.5所示。

图中counter8为第1步生成的2位十进制计数器模块,ft_ctrl为第2步生成的时序控制模块,只含有两个输入信号:待测频率输入信号F_IN 和测频控制时钟clk。

时钟分频模块CLK_DIV在此设计中被调用(例化)了3次,因为此模块采用了参数可配置的设计模式,所以调用同一个原型,通过改变参数就可以实现不同的特性,其中最上面一个时钟分频模块把50MHz分频到1024Hz(参数DIV_Num 为48828,所以输出频率为50MHz/48828≈1024Hz;参数DIV_WIDTH随DIV_Num而变;中间一个分频模块把1024Hz分频到8Hz作为时序控制模块的时钟,则计数使能信号CNT_EN的脉冲宽度即为1秒,从而可使数码管直接显示F_IN的频率值了;下面一个分频模块把1024Hz分频到约51Hz作为被测频率F_IN输入到十进制计数器。

图3.5 顶层电路设计电路4 设计总结通过这次EDA课程设计,我对课堂上所学到的理论知识的理解加深了许多,自己动脑、动手设计的能力也得到了较大提高。

在这次课程设计的过程中,我对 VHDL语言有了更深的认识。

通过查阅相关资料和动手设计我发现我以前对 VHDL 语言的认识太过肤浅,认为VHDL语言只能用于设计小型的电路系统。

但有了更深刻的认识之后我发现学好VHDL语言可以设计出大规模的、功能复杂的电路系统。

以前之所以会有错误的认识是因为自己对VHDL语言的了解和掌握还不够。

现在仔细想想,这次课程设计使得我对 VHDL 语言的理解与应用能力得到了较大的提升,也让我认识到只要深入学习,提升的空间永远是存在的。

在设计的过程中我遇到了一些问题,通过查阅书本我发现了产生错误的原因并解决了问题完成了设计。

经过反思我发现较大一部分错误是因为操作的不熟练造成的,这也让我明白了要保持设计的高效率必须经常练习。

另一方面我也发现了动手实践的重要性。

动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。

只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。

这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。

虽然此次设计完成了,但是我意识到,我对FPGA技术仅仅只是停留在入门的阶段,想要有更大的发展,更深入的研究,还需要更多的努力与实践。

因此在学习之余我们应该积极参加各种与专业知识有关的实践活动和竞赛,巩固所学的理论知识,多注重培养实际动手能力和专业技术能力,这样才能在以后的工作岗位上有所作为。

参考文献:[1] 潘松.黄继业.潘明.EDA技术实用教程-Verilog HDL版(第四版). 科学出版社[2] 杨欣.电子设计从零开始(第2版),清华大学出版社[3] 康华光.电子技术基础·模拟部分,高等教育出版社[4] 康华光.电子技术基础·数字部分,高等教育出版社[5] 顾斌,赵明忠,姜志鹏,马才根.数字电路EDA设计,西安电子科技大学出版社。

相关文档
最新文档