



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文案4 位十进制频率计一、设计目的用 Verilog HDL语言设计一个能实现自动测频的4 位十进制频率计。1)测量范围 : 1Hz 9999Hz2)测量的数值通过4 个数码管显示3)频率超过9999Hz时,溢出指示灯亮,可以作为扩大测量范围的接口。二、设计原理1、若某一信号在T 秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率 fs 为: fs=N/T 。2、当 T=1s 时, N 就是测得的频率。3、根据以上所提出的方法,测定信号的频率必须有一个脉宽为1 秒的对输入信号脉冲计数允许的信号;1 秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器复位信
2、号。这个复位信号可以由一个测频控制信号发生器产生,即图1 中的 TESTCTL,它的设计要求是, TESTCTL 的计数使能信号 CNT_EN 能产生一个 1 秒脉宽的周期信号,并对频率计的每一计数器CNT10 的 EN 使能端进行同步控制。当CNT_EN 高电平时,允许计数;低电平文档大全实用标准文案时停止计数,并保持其所计的脉冲数。在停止计数期间,每0.01ms 锁存器进行一次锁存,并由数码管显示计数值。 设置锁存器是为了使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。 锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1 秒钟的计数操作准备。图1原理图三、设计步骤1
3、、新建 cym 工程文件。图 2建立工程由于是用 VHDL 语言进行设计,所以此处选择类型为HDL 。之后一直点击确认即可。文档大全实用标准文案图 3芯片信息配置由于我们所采用的板子为RCXQ208_V5 FPGA 开发板,所以配置如图所示。2、新建各个分模块并输入代码。图 4 建立 VHDL 文件3、建立顶层文件为原理图型,例化各个模块并连接。文档大全实用标准文案图 5 建立 VHDL 文件4、对设计进行综合,如果出现错误,根据提示改正。图6综合黄色感叹符号代表有警告,有些警告可以忽略,绿色小勾表示综合成功。5、建立测试文件并进行仿真,验证设计。文档大全实用标准文案图 7建立激励文件之后一直
4、点击确认即可。为了结合我们的下载板子的时钟信号,在测试文件中设置时钟单位为10ns,精度为 1ps, 如图:图 8设置时钟单位仿真文件应验证个端口的正确性。由于时钟单位为10ns, 所以 CLK_50M 每一个仿真时间单位翻转一次即可产生一个50M 的时钟信号。开始时进行一次复位,使各寄存器初值正确。 control_port端为数码管位扫描端, 所以其值一直在1110 1101 1011 0111 循环。data_out端为数码管显示的数字对应的七段数码管的二进制数据,它的值可以与control_port端对应到一起观察,转换为对应的十进制数据即是1110 、1101 、1011 、0111
5、 对应的 data 端的信号由 09循环。对测试文件进行检查,出现绿色小勾表示无语法错误,可以进行仿真。文档大全实用标准文案图 96、根据板子锁定引脚,并生成下载文件。下载板有两个时钟输出引脚,一个为40M 的,一个为 50M 的。本设计采用的是 50M ,所以 CLK_50M 引脚锁定为引脚P80 ,即 net "CLK_50M" loc =p80 。CLR 复位端连接一个轻触开关,为P57 ,即 net"CLR" loc = p57 。CARRY_OUT 溢出标志端用一个LED 灯来表示,net "CARRY_OUT" loc =
6、 p22。下载板数码管引脚图如图所示:图 10数码管端口图由图可知 data 端和 control_port端的引脚应该分别锁定为:net "data_out0" loc = p102;net "data_out1" loc = p99;文档大全实用标准文案net "data_out 2" loc = p107;net "data_out 3" loc = p109;net "data_out 4" loc = p112;net "data_out 5" loc = p100
7、;net "data_out 6" loc = p106;net "data_out 7" loc = p108;net "control_port0" loc = p127;net "control_port1" loc = p128;net "control_port2" loc = p129;net "control_port3" loc = p132;net "control_port4" loc = p120;net "control_
8、port5" loc = p122;四、仿真结果1、时钟信号图 11验证 CLK 信号由图可知, CLK 信号周期为 20ns ,时钟信号正确。2、 control_port信号文档大全实用标准文案图 12 control_port 信号由图可知, control_port信号在预料的循环之内,所以正确。3、 data 信号图 13data 信号第二个扫描周期图 14data 信号第三个扫描周期图 15data 信号第四个扫描周期图 16data 信号第五个扫描周期由上图综合可知, data 信号在预料的变化之内,所以正确。五、体会本次设计由于有了上一次跑表的设计,所以有了几分心得。
9、要做得快了不少,文档大全实用标准文案但还是有一定难度。把难度大的设计分为各个难度较小的模块来设计,本就是我们自顶向下设计的一种重要思想。 该设计就用到了这种思想。 在简化的同时, 我们应该确保各个模块的正确性,所以各个模块我们都应测试、仿真之后在综合到一起。有时候分开各个模块都可以, 但是综合在一起就有各种错误出现了。所以我们在综合代码的时候, 一点要小心又小心, 确保引脚的对应关系无误。 逻辑顺序无误。六、代码1、Verilog HDL代码:/*4位十进制计数器*/F_in待测频率 ,CLK_50M 系统时钟 ,CLR 复位标志, CARRY_OUT 溢出标志/data_out数码管显示值,
10、control_port数码管位选信号*/( 1)十进制计数器模块module counter_10(CLK,CLR,En,data,CO);input CLK,CLR,En;output reg 3:0 data;output reg CO = 1'b0;always (posedge CLK or posedge CLR)beginif(CLR)文档大全实用标准文案begindata <= 4'b0;CO <= 1'b0;endelse if(En)beginif(data = 4'b1001)begindata <= 4'b0;C
11、O <= 1'b1;endelsebegindata <= data + 1'b1;CO <= 1'b0;endendendendmodule( 2)分频模块文档大全实用标准文案/*分频模块,用于产生测试用的频率,以及控制信号。*/module div_fre(CLK_50M,CLR,F_in,clk_1s,clk_100us);input CLK_50M,CLR;output reg F_in,clk_1s,clk_100us;reg 12:0 cnt,cnt1,cnt2;parameterdiv_num= 13'h1;/13'h13
12、87;/ 改变阈值即可调节F_in 的频率范围always (posedge CLK_50M or posedge CLR)/ 分频模块beginif(CLR)begincnt <= 13'h0;clk_100us <= 1'b0;endelse if(cnt = 13'h1387)/ 每 0.1ms 产生一个脉冲信号文档大全实用标准文案beginclk_100us <= 1'b1;cnt <= 13'h0;endelsebegincnt <= cnt+1'b1;clk_100us <= 1'b0;en
13、dendalways (posedge clk_100us or posedge CLR)beginif(CLR)begincnt1 <= 13'h0;F_in <= 1'b0;endelse if(cnt1 = div_num)begincnt1 <= 13'h0;F_in <= F_in;文档大全实用标准文案endelsecnt1 <= cnt1 + 1'b1;endalways (posedge clk_100us or posedge CLR)beginif(CLR)begincnt2 <= 13'h0;clk
14、_1s <= 1'b0;end/else if(cnt2 = 13'h1387)else if(cnt2 = 13'ha)begincnt2 <= 13'b0;clk_1s <= clk_1s;endelsecnt2 <= cnt2 + 1'b1;end文档大全实用标准文案endmodule( 3)测频控制模块module test_ctl(clk_1s,cnt_en,clr_cnt);input clk_1s;/ 1HZoutput cnt_en;output clr_cnt;/ output load;reg div2clk
15、= 0; wire cnt_en; reg clr_cnt,i;/ wire load;always (negedge clk_1s) beginfor(i = 10;i>0;i=i-1) div2clk <= 1'b0;div2clk <= 1'b1;endalways (clk_1s or div2clk)文档大全实用标准文案beginif(!clk_1s && !div2clk)clr_cnt <= 1'b1;elseclr_cnt <= 1'b0;end/ assign load = div2clk; ass
16、ign cnt_en = div2clk;endmodule( 4)锁存器模块module latch(clk,data_in,data_out);input clk;input 3:0 data_in;output reg 3:0 data_out = 4'b0;always (posedge clk)data_out <= data_in;endmodule文档大全实用标准文案( 5)数码管显示模块moduleseg_display(CLK_50M,CLR,data_in_1,data_in_2,data_in_3,data_in_4,data_out,control_por
17、t);input CLK_50M,CLR;input 3:0 data_in_1,data_in_2,data_in_3,data_in_4;output reg 7:0 data_out;output reg 3:0 control_port;reg 15:0 scan_cnt;reg 1:0 seg;always (posedge CLK_50M or posedge CLR)/ 数码管的动态扫描显示 ,每 1ms 显示下一位beginif(CLR)beginscan_cnt <= 16'h0;seg <= 2'b00;endelse文档大全实用标准文案begi
18、nif(scan_cnt = 16'hc34f)scan_cnt <= 16'h0;elsescan_cnt <= scan_cnt + 1;if(scan_cnt = 16'h0)beginif(seg = 2'b11)seg <= 2'b00;elseseg <= seg + 1'b1;endendendalways (posedge CLK_50M or posedge CLR)beginif(CLR)begindata_out <= 8'b0;control_port <= 4'b111
19、0;end文档大全实用标准文案elsecase(seg)/ 数码管显示选择2'b00:control_port,data_out<=4'b1110,seg_data(data_in_1);2'b01:control_port,data_out<=4'b1101,seg_data(data_in_2);2'b10:control_port,data_out<=4'b1011,seg_data(data_in_3);2'b11:control_port,data_out<=4'b0111,seg_data(da
20、ta_in_4);default : control_port,data_out <= 12'hec0;endcaseendfunction 7:0 seg_data;/ 数码管值的选择input 3:0 x;case(x)0: seg_data = 8'hc0;1: seg_data = 8'hf9;2: seg_data = 8'ha4;3: seg_data = 8'hb0;文档大全实用标准文案4: seg_data = 8'h99;5: seg_data = 8'h92;6: seg_data = 8'h82;7:
21、seg_data = 8'hf8;8: seg_data = 8'h80;9: seg_data = 8'h90; default: seg_data = 8'hff;endcaseendfunctionendmodule2 、测试代码:timescale 10ns / 1psmodule cym_cym_sch_tb();/ Inputsreg CLR;reg CLK_50M;/ Output文档大全实用标准文案wire CARRY_OUT;wire 7:0 data_out;wire 3:0 control_port;/ Bidirs/ Instantiate the UUT cym UUT (.CLR(CLR),.CARRY_OUT(CARRY_OUT),.CLK_50M(CLK_50M),.data_out(data_out),.control_port(control_port);/ Initialize Inputsinitial beginCLK_50M = 0;forever #1 CLK_50M = CLK_50M;endin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5-2寄存器2-74194的应用
- 统编版语文五年级下册第1课《古诗三首》精美课件
- 新疆师范大学《临床技能与思维一》2023-2024学年第二学期期末试卷
- 沈阳航空航天大学北方科技学院《商务英语写作(二)》2023-2024学年第一学期期末试卷
- 朔州陶瓷职业技术学院《阿拉伯语精读》2023-2024学年第二学期期末试卷
- 山西林业职业技术学院《医疗与康复机器人》2023-2024学年第二学期期末试卷
- 山东省济南市长清五中学2025届初三下学期模拟试题(二)化学试题含解析
- 厦门大学《给排水管道系统》2023-2024学年第二学期期末试卷
- 利辛县2024-2025学年五年级数学第二学期期末学业水平测试试题含答案
- 江西省萍乡市莲花县2024-2025学年初三第五次中考模拟考试数学试题含解析
- DB62∕T 25-3111-2016 建筑基坑工程技术规程
- 大班音乐《水果百变秀》课件
- 妇幼保健院医疗保健服务转介工作制度和流程
- 国家职业技能鉴定考评员考试题库1100题【含答案】
- 监察机关执法工作规定学习测试
- 产品鉴定试验大纲
- 2022职业病防治法宣传周PPT
- 常州市武进区征地拆迁房屋装修及附属设施补偿标准
- 民办教师人员花名册
- 国家开放大学《管理英语4》章节测试参考答案
- 公路工程决算编制办法(交公路发2004-507号)附表
评论
0/150
提交评论