免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于VHDL的12位十进制数字频率计的设计仿真一、功能与要求:该计数器的功能:对被测试信号进行计数,在1秒定时结束后,将计数器结果送锁存器锁存,同时将计数器清零,为下一次采样测量做好准备。要求如下:1.用VHDL完成12位十进制数字频率计的设计及仿真。2.频率测量范围:1Hz10KHz,分成两个频段,即1999Hz,1KHz10KHz,用三位数码管显示测量频率,用LED显示表示单位,如亮绿灯表示Hz,亮红灯表示KHz。3.具有自动校验和测量两种功能,即能用标准时钟校验、测量精度。4.具有超量程报警功能,在超出目前量程档的测量范围时,发出灯光和音响信号。二、设计思路图2.1是频率计数器的原理图。图2.1频率计数器的原理图1、基本原理:计算单位时间内待测信号的脉冲个数,各模块设计成process。测量/校验选择模块(test_meas)测频控制信号发生器(二分频)(clk_process)计数器模块(cnt_process)送存选择、报警模块(tostore_process)锁存模块(store_process)扫描显示模块(cnt3_process,bus_process, disp_process)2、各模块功能图2.2测量校验选择如图2.2为测量/校验选择模块,该模块的信号如下:输入信号:选择信号selet,被测信号meas,测试信号test;输出信号:CP1。当selet=0时,为测量状态,CP1=meas;当selet=1时,为校验状态,CP1=test。校验与测量共用一个电路,只是被测信号CP1不同而已。图2.3测频控制信号发生器(二分频)如图2.3为测频控制信号发生器(二分频),该模块的信号如下:输入信号:1HZ时钟信号;输出信号:1秒定时信号(周期为2秒)。图2.4计数器、送存选择、报警模块1、如图2.4为计数器、送存选择、报警模块,模块的功能如下:设置:量程档控制开关K,单位显示信号Y,当K=0时,为1999Hz量程档,数码管显示的数值为被测信号频率值,unit显示绿色,即单位为Hz;当K=1时,为1KHz10KHz量程档被测信号频率值为数码管显示的数值乘1000,unit显示红色,即单位为KHz。2、其中四级十进制计数器模块(带进位C)模块功能如下:输入信号:RD、CP,用于计数开始、清零、锁存输出信号:Q4Q1设置超出量程档测量范围示警信号alert。若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计数,最大显示值为999.Hz;如果被测信号频率超过此范围,示警信号驱动灯光、扬声器报警;若被测信号为1KHz10KHz(K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为9.99KHz,如果被测信号频率超过此范围,报警。3、送存选择、报警电路状态表如表2.1。表2.1送存选择、报警电路状态表图2.5锁存,扫描显示模块图2.5为锁存、扫描显示模块,该模块功能如下:锁存器输入信号:D3D1,LD;输出信号:Q3Q1 ,小数点单位显示unit。图2.6扫描显示电路如如2.6扫描显示电路,该模块包含两个模块:七段显示译码器电路(DEC_LED);分时总线切换电路(SCAN)。三、原理图说明图3.1频率计显示原理图如图3.1,输入有扫描时钟clkscan,分频时钟clk1hz,单位选择键K,被测信号meas,测试信号test,测试校验选择键sel。输出有数码管信号led,数码管选择信号ms123,报警信号alert,单位显示信号unit。四、源代码说明-实体声明library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity dig_frq is Port ( clk1hz : in STD_LOGIC; clkscan : in std_logic; test : in STD_LOGIC; meas : in STD_LOGIC; sel : in STD_LOGIC; k : in STD_LOGIC; alert : out STD_LOGIC; unit : out STD_LOGIC; ms123 : out STD_LOGIC_VECTOR (2 downto 1); led : out STD_LOGIC_VECTOR (8 downto 1);end dig_frq;-结构体说明architecture Behavioral of dig_frq issignal cp1:std_logic;signal clk05hz:std_logic:=0;signal cp:std_logic;signal rd:std_logic:=1;signal c:std_logic;signal q4,q3,q2,q1:std_logic_vector(4 downto 1):=0000;signal load:std_logic:=0;signal d3,d2,d1:std_logic_vector(4 downto 1):=0000;signal data3,data2,data1:std_logic_vector(4 downto 1):=0000;signal disp:std_logic_vector(4 downto 1):=0000; signal ms123_s:STD_LOGIC_VECTOR (2 downto 1);begin-时钟电路,1hz信号二分频产生0.5hz信号,1s高电平,1s低电平clk_process:process(clk1hz) beginif(clk1hzevent and clk1hz=1)thenclk05hz=not clk05hz;end if;end process;-测试、校验选择模块test_meas:process(sel,meas,test)beginif(sel=1)thensel为1时cp1为测试信号cp1=meas;elsesel为0时cp1为校验信号cp1=test;end if;end process;-锁存的加载信号load,当分频信号clk05hz上升沿时有效load=not clk05hz;cp=clk05hz and cp1;-计数清零信号rd,当分频信号clk05hz为0时有效rd=clk05hz;-四位bcd计数电路cnt_process:process(cp,rd)variable q4_s,q3_s,q2_s,q1_s:integer range 0 to 9;variable c_s:integer range 0 to 1;beginif(rd=0)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=0;elsif(cpevent and cp=1)thenif(q4_s=9 and q3_s=9 and q2_s=9 and q1_s=9 and c_s=1)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=0;elsif(q4_s=9 and q3_s=9 and q2_s=9 and q1_s=9)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=1;elsif(q3_s=9 and q2_s=9 and q1_s=9)thenq4_s:=q4_s+1;q3_s:=0;q2_s:=0;q1_s:=0;elsif(q2_s=9 and q1_s=9)thenq3_s:=q3_s+1;q2_s:=0;q1_s:=0;elsif(q1_s=9)thenq2_s:=q2_s+1;q1_s:=0;elseq1_s:=q1_s+1;end if;end if;q4=conv_std_logic_vector(q4_s,4);q3=conv_std_logic_vector(q3_s,4);q2=conv_std_logic_vector(q2_s,4);q1=conv_std_logic_vector(q1_s,4);if(c_s=0)thenc=0;else c=1;end if;end process;-送锁存电路tostore_process:process(q4,q3,q2,q1,c,k)beginif(k=0)then-当计数单位选择k为0时,输出计数器的低三位d3=q3;d2=q2;d10000 or c0)then-此时,当计数超过三位bcd数时,报警信号置1alert=1;elsealert=0;end if;elsif(k=1)then-当计数单位选择k为1时,输出计数器的高三位d3=q4;d2=q3;d10)then-此时,当计数超过四位bcd数时,报警信号置1alert=1;else alert=0;end if;end if;end process;-锁存电路store_process:process(load,d1,d2,d3,k)beginif(loadevent and load=1)then-加载信号load下降沿时,锁存数据data3=d3;data2=d2;data1=d1;if(k=0)then-当单位选择键K为0时,单位unit置0,显示绿色unit=0;else-当单位选择键K为1时,单位unit置1,显示红色unit=1;end if;end if;end process;-计数到3的计数器,产生数码管选择信号cnt3_process:process(clkscan)variable cnt:integer range 0 to 2:=0;beginif(clkscanevent and clkscan=1)thenif(cnt=2)thencnt:=0;elsecnt:=cnt+1;end if;end if;ms123_s disp disp disp disp=data1;end case;end if;end process;ms123ledledledledledledledledledledled=00111111;end case;if(ms123_s=00 and k=0)thenled(8)=1;elsif(ms123_s=10 and k=1)thenled(8)=1;else led(8)=0;end if;end process;end Behavioral;五、仿真结果及说明1、二分频电路仿真结果:图5.1clk1hz一个时钟产生一个clk05hz电平,clk05hz电平高低交替。2、测试校验选择电路图5.2sel为0时,cp1为测试信号meas,sel为1时,cp1为校验信号test。3、控制电路图5.3当clk05hz为1,被计数信号cp为cp1,当clk05hz为0,被计数信号cp为0;当clk05hz为1,加载信号load为0,计数清零信号为1,当clk05hz为0,加载信号load为1,计数清零信号为0。4、四位bcd计数电路图5.4当清零信号rd为0时,输出信号q4,q3,q2,q1置零,当清零信号rd为1时,q4,q3,q2,q1为cp的计数值。5、送锁存,报警模块图5.5当键K为0时,对bcd计数的低三位输出,当计数超出999时,报警信号输出为1。图5.6当键K为1时,对bcd计数的高三位输出,当计数未超出9999时,报警信号输出为0。6、锁存电路图5.7当键K为0时,对bcd计数的低三位锁存;当加载键load为1时,进行锁存。7、显示电路图5.8ms123为0,1,2时分别显示个位,十位,百位,当单位选择键k为1时,单位显示unit为 1(红灯),且,百位数据DB高位dot位为1。经典婚庆主持词炮竹声声贺新婚,欢声笑语迎嘉宾.尊敬各位来宾,各位领导,各位亲朋好友,先生们,女士们,活泼可爱的小朋友们,大家好! 好歌好语好季节,好人好梦好姻缘.来宾们今天是公元*年*月*日(农历六月初八)是良辰吉日,在这大吉大利吉祥喜庆的日子里,我们怀着十二分的真诚的祝福相聚在*酒楼一楼婚宴大厅共同庆贺*先生与*小姐新婚典礼.(首先我们给予掌声的恭喜)大家都知道结婚是人生中的一件大事,而婚礼更是人生中最幸福神圣的时刻,尤其婚礼上浪漫温馨高雅别致的婚礼仪式以及亲朋好友的良好祝愿会给新人一生永远带来最美好的回忆.各位亲朋好友,我是本次婚礼庆典的主持人*.今天我十分荣幸地接受新郎新娘的重托,步入这神圣而庄重的婚礼殿堂为新郎*,新娘*的婚礼担任司仪之职.让我们在这里共同见证一对新人人生中最幸福神圣美好的一刻!真是:百鸟朝凤凤求凰,龙凤呈祥喜洋洋.让我们用掌声祝贺他们祝福新人凤凰展翅迎朝晖,恩爱鸳鸯比翼飞.携手同步知心人,共创宏图献真情.郎才女貌天作美,洞房花烛喜成双.在神圣的婚礼进行曲中一对新人手挽手,肩并肩缓缓步入婚礼大厅.脸上充满了无比幸福的笑容让我们用掌声与鲜花给予一对新人最诚挚的祝福.婚姻是人生大事,结婚典礼对青年男女来说是一生中最重要的时刻.你也笑,我也笑,亲朋好友齐来到.天也新,地也新,众星捧月迎新人.新郎新娘台上站,甜蜜感觉涌心间.风风雨雨牵手过,今天喜结美姻缘.亲朋好友齐相聚,欢欢喜喜来贺喜. * * * 天仙配,幸福的生活比蜜甜.在这个激动人心的美好时刻,作为婚庆司仪,首先请允许我代表新郎新娘以及新郎新娘的双方家长,对今天百忙当中来参加婚礼的各位来宾,各位亲朋好友的光临表示最诚挚的谢意和热烈的欢迎(谢谢大家)!欢迎你们!婚礼对每一个新婚的人而言,都是神圣,浪漫,唯美和经典的,随着神圣的婚礼进行曲奏响,英俊的新郎和美丽的新娘在掌声与祝福声中,缓缓的步上红地毯,那是万众瞩目的一瞬,那是梦寐以求的一瞬,那是凝结爱的万语千言的一瞬,那是最激动人心的一瞬,一同迷醉在尘世间最美妙的气氛里.爱情是古老而年轻的话题,也是不朽的人生主题.许多人已经拥有,更多人正在追求,今天这两位新人从有过初恋时月上柳梢头,人约黄昏后的热烈心跳,到也有热恋中冷落清秋伤别离的难舍难分,经历了似水柔情,如梦佳期,的苦苦期盼,品尝过相知不渝,永结金兰的浪漫温馨,终于迎来这携手共赴红地毯的幸福时刻.啊!美丽的新娘,这一刻,整个世界因你而多姿多采,英俊萧洒的新郎,这一刻,整个宇宙而为你祝福,祝福你们在这鲜花绽开的时候,祝福你们在这神圣庄重的幸福时刻.首先由我介绍一下二位新人,站在我身边这位英俊潇洒的男子就是我们今天的新郎官*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双方合作开发合同范本
- 别墅出售商用合同范本
- 农村土地征用合同范本
- 口罩用品采购合同范本
- 农村打包秸秆合同范本
- 内贸船员劳务合同范本
- 企业授权合作合同范本
- 农村项目建设合同范本
- 制衣小厂转让合同范本
- 农村收购二手房协议书
- 合伙养猪合同协议书
- 2025年中考数学复习难题速递之代数式(2025年4月)
- 商城平台搭建合同协议
- 短视频在教育中的创新应用及发展前景
- 《复杂系统理论》课件
- 2025年个人参加巡察工作总结心得(二篇)
- 汽车维修配件供货及售后服务方案
- 基于物联网的智能设备销售合同
- 《铁路技术管理规程》(普速铁路部分)
- 2024年度广东省国家电网招聘之财务会计类通关题库(附答案)
- 《影院服务礼仪》课件
评论
0/150
提交评论