EDA数字频率计课程设计说明书.doc_第1页
EDA数字频率计课程设计说明书.doc_第2页
EDA数字频率计课程设计说明书.doc_第3页
EDA数字频率计课程设计说明书.doc_第4页
EDA数字频率计课程设计说明书.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录第一章 设计任务及要求11.1设计任务11.2设计要求11.2.1整体功能要求11.2.1测试要求1第二章 设计思路22.1数字频率计介绍22.2设计原理22.2.1频率测量的基本原理22.2.2整体方框图及原理2第三章 模块介绍43.1闸门产生模块4 3.1.1闸门模块介绍43.1.2闸门模块verilog语言程序描述及仿真43.2计数模块5 3.2.1计数模块介绍53.2.2计数模块模块verilog语言程序描述及仿真53.3锁存器模块6 3.3.1锁存器模块介绍63.3.2锁存器模块verilog语言程序描述及仿真63.4译码器模块7 3.4.1译码器模块介绍73.4.2闸门模块verilog语言程序描述及仿真73.5扫描显示模块8 3.5.1扫描显示模块介绍83.5.2扫描显示模块verilog语言程序描述及仿真9第四章 数字频率计的实现104.1数字频率计的verilog语言程序描述及仿真104.2数字频率计的FPGA芯片实现14第五章 心得体会15第一章 设计任务及要求1.1设计任务采用测频法设计一个数字显示的数字频率计,被测试的频率可由基准频率分频得到。其中应利用硬件描述语言Verilog、EDA软件Quartus和硬件平台Cyclone/CycloneFPGA进行电路系统的设计。1.2设计要求1.2.1整体设计要求(1)要求独立完成设计任务。(2)课程设计说明书封面格式要求见天津城市建设学院课程设计教学工作规范附表1(3)课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。(4)测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。(5)课设说明书要求:1) 说明题目的设计原理和思路、采用方法及设计流程。2) 系统框图、VHDL语言设计清单或原理图。3) 对各子模块的功能以及各子模块之间的关系作较详细的描述。4) 详细说明调试方法和调试过程。5) 说明测试结果:仿真时序图和结果显示图。并对其进行说明和分析。1.2.2测试要求(1)可预置闸门时间/0.1/1s/10s。(2)频率在数码管上显示。(3)测量范围1Hz-999999Hz。第二章 设计思路2.1数字频率计的介绍数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。本设计用硬件描述语言Verilog描述程序,在实验箱上实现数字频率计测频系统,要求能够在数码管上显示被测信号的频率。采用Verilog编程设计实现的数字频率计,除被测信号bclk、时钟信号clk、键输入复位信号reset和数码管显示部分以外,其余全部在一片FPGA芯片上实现,整个系统最突出的优点就是系统非常精简,而且可以根据设计要求灵活更改程序,重新编译与下载,实现新的功能,设计灵活多变。2.2设计原理2.2.1频率测量的基本原理频率测量的基本原理:计算每秒钟内待测信号的脉冲个数,可根据这一定义采用如图2-1所示的算法。图2-1 频率算法示意图用时钟信号clk产生脉冲宽度为1s的闸门信号cl,而且可以通过修改verilog程序来改变闸门信号的脉冲宽度和占空比。让被测信号送入闸门电路,当1s闸门脉冲到来时闸门导通,被测信号通过闸门并到达后面的计数模块(计数模块作用是计算被测输入信号1s钟内脉冲的个数),当1s闸门结束时,闸门再次关闭,此时计数器记录的周期个数为1s内被测信号的周期个数,即为被测信号的频率。2.2.2数字测频计整体方框图测频计的整体方框图如图2-2所示。图2-2 测频计设计总体框图其中若要要计算每秒钟内待测信号的脉冲个数,则要求:1)电路产生一个1秒的时间闸门信号cl,在这1秒钟内启动计数器对被测信号bclk进行计数;2)1秒结束时将计数器所计的脉冲个数的状态值送入锁存器REG24B锁存;3)在计数值锁存完成后还应对计数器清零,以待下1秒钟开始新的一轮计数;4)锁存到锁存器中的数据则输出译码模块进行七段译码扫描显示。 第三章 模块介绍3.1闸门产生模块3.1.1闸门模块介绍闸门信号cl由时钟信号clk(选定频率为1KHZ)产生,当cl为高电平时,对输入信号脉冲计数,当cl为低电平时,将计数所得数据data1输入到锁存器。若按程序3-1设计则闸门信号高电平时间为:210-251000=0.992s低电平时间为:251000=0.032s 从而实现1s的闸门信号。3.1.2闸门产生模块verilog语言程序描述及仿真闸门产生模块verilog语言程序描述如图3-1module zhamen(clk,reset,cl) ;input clk,reset;output cl;reg cl;reg 9:0 counter;always(posedge clk) if(reset=1b0 ) begin counter=10b0000000000; cl=1b0; end else if (counter10b0001000000) begin counter=counter+1; cl=1b0; end else begin counter=counter+1; cl=1b1; endendmodule图3-1 闸门产生模块程序闸门产生模块的仿真图如图3-2图3-2闸门产生模块的仿真图3.2计数模块3.2.1计数器模块介绍由程序3-2可知在闸门信号cl为低电平或复位信号为低电平时计数数据data1清零,当闸门信号cl为高电平且复位信号为高电平时被测信号来一个脉冲,计数数据data1加1,从而实现对被测信号1秒钟内脉冲个数的计算。3.2.2计数模块verilog语言程序描述及仿真计数模块verilog语言描述程序见图3-3module jishu(bclk,reset,cl,data1) ;input bclk,cl,reset;output 23:0 data1;reg 23:0 data1;always(posedge bclk or negedge reset) if(reset=1b0) data1=241b0; else if(cl=1b0) data1=241b0; else if(cl=1b1) data1=data1+1;endmodule图3-3 计数模块程序计数模块的仿真图如图3-4图3-4计数模块的仿真图3.3锁存器模块3.3.1锁存器模块介绍由程序3-2可知在闸门信号cl下降沿来临或复位信号为低电平时计将24位0赋给输出data,当闸门信号cl下降沿来临且复位信号为高电平时,将计数数据data1赋给输出data,从而实现对计数数据data1的锁存,设置锁存器的好处是,数码管上显示的数据稳定,不会由于周期性的清零信号而不断闪烁。3.3.2锁存器模块verilog语言程序描述及仿真锁存器模块verilog语言程序描述如图3-5module suocunqi(cl,reset,data,data1) ;input cl,reset;input23:0 data1;output23:0 data;reg 23:0 data;always(negedge cl or negedge reset) if(reset=1b0 ) data=241b0; else data=data1;endmodule图3-5 锁存器模块程序锁存器的仿真图如图3-6图3-6 锁存器模块仿真图3.4译码器模块3.4.1译码器模块介绍由程序可知此为一个4-16线译码器, 输入信号为A3:0,输出信号为低电平有效,而发光二极管为共阳极接法,故经译码器的处理输出后数码管可显示相应的数值。3.4.2译码器模块verilog语言程序描述及仿真译码器模块verilog语言程序描如图3-7module yimaqi(A,LED7S);input 3:0 A;output 6:0 LED7S;reg 6:0 LED7S;always (A) begin case(A) 4b0000: LED7S = 7b0111111 ; 4b0001: LED7S = 7b0000110 ; 4b0010: LED7S = 7b1011011 ; 4b0011: LED7S = 7b1001111 ; 4b0100: LED7S = 7b1100110 ; 4b0101: LED7S = 7b1101101 ; 4b0110: LED7S = 7b1111101 ; 4b0111: LED7S = 7b0000111 ; 4b1000: LED7S = 7b1111111 ; 4b1001: LED7S = 7b1101111 ; default: LED7S = 7b0111111 ; endcase endendmodule图3-7 译码器模块程序译码器模块的仿真图如图3-8图3-8 译码器模块的仿真图3.5扫描显示模块3.5.1扫描显示模块介绍由程序可知当复位信号为低电平时,将0赋给输出信号sel,当时钟信号上升沿到来且复位信号为高电平时,输出信号sel加1,而不同的sel值选择不同的数码管,数码管显示选择随扫描频率clk循环变化,当时钟信号频率很高时,肉眼看不出闪烁,则可以清楚的看到数码管上显示的数据。3.5.2扫描显示模块verilog语言程序描述及仿真扫描显示模块verilog语言程序描述如图3-9module saomiaoxianshi (clk,reset,sel) ;input clk,reset;output 2:0 sel;reg 2:0 sel;always(posedge clk or negedge reset) if(reset=1b0 ) sel=3b000; else if (sel=3b101) sel=3b000; else sel=sel+3b001;endmodule图 3-9 计数模块程序扫描显示模块的仿真图如图3-10图3-10 扫描显示模块的仿真图第四章 数字频率计的实现4.1数字频率计的verilog语言程序描述数字频率计的verilog语言程序描述见程序4-1module test (bclk,clk,reset,sel,LED7S);/实现bclk频率的测量input bclk;/被测信号输入端input clk,reset;/数码管扫描周期,设定为1kHZ/系统清零端,且为低电平复位output 6:0 LED7S;/七段码管显示输出output 2:0 sel;/七段码管扫描驱动reg 2:0 sel;reg 6:0 LED7S;reg 9:0 counter;/计数,实现1秒的闸门控制和1毫秒的数据输出reg23:0 data1,data;/计数数据/显示数据reg cl;wire 3:0 din0,din1,din2,din3,din4,din5;always(posedge clk) if(reset=1b0 ) begin counter=10b0000000000; cl=1b0; end else if (counter10b0001000000) begin counter=counter+1; cl=1b0; end else begin counter=counter+1; cl=1b1; endalways(posedge clk or negedge reset) if(reset=1b0 ) sel=3b000; else if (sel=3b101) sel=3b000; else sel=sel+3b001;always(posedge bclk or negedge reset) if(reset=1b0) data1=241b0; else if(cl=1b0) data1=241b0; else if(cl=1b1) data1=data1+1;always(negedge cl or negedge reset) if(reset=1b0 ) data=241b0; else data=data1;always(posedge clk) begin if (sel=3b000) begin case(din0) 4b0000: LED7S = 7b0111111; 4b0001: LED7S = 7b0000110; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101; 4b0111: LED7S = 7b0000111; 4b1000: LED7S = 7b1111111; 4b1001: LED7S = 7b1101111; default: LED7S = 7b0111111; endcase end else if (sel=3b001) begin case(din1) 4b0000: LED7S = 7b0111111; 4b0001: LED7S = 7b0000110; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101; 4b0111: LED7S = 7b0000111; 4b1000: LED7S = 7b1111111; 4b1001: LED7S = 7b1101111; default: LED7S = 7b0111111; endcase end else if (sel=3b010) begin case(din2) 4b0000: LED7S = 7b0111111; 4b0001: LED7S = 7b0000110; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101; 4b0111: LED7S = 7b0000111; 4b1000: LED7S = 7b1111111; 4b1001: LED7S = 7b1101111; default: LED7S = 7b0111111; endcase end else if (sel=3b011) begin case(din3) 4b0000: LED7S = 7b0111111; 4b0001: LED7S = 7b0000110; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101; 4b0111: LED7S = 7b0000111; 4b1000: LED7S = 7b1111111; 4b1001: LED7S = 7b1101111; default: LED7S = 7b0111111; endcase end else if (sel=3b100) begin case(din4) 4b0000: LED7S = 7b0111111; 4b0001: LED7S = 7b0000110; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101; 4b0111: LED7S = 7b0000111; 4b1000: LED7S = 7b1111111; 4b1001: LED7S = 7b1101111; default: LED7S = 7b0111111; endcase end else if (sel=3b101) begin case(din5) 4b0000: LED7S = 7b0111111; 4b0001: LED7S = 7b0000110; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101; 4b0111: LED7S = 7b0000111; 4b1000: LED7S = 7b1111111; 4b1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论