河海大学物联网工程学院数字集成电路课程设计之简易频率计

  • 格式:doc
  • 大小:245.00 KB
  • 文档页数:19

河海大学物联网与工程学院课程设计报告题目数字频率计设计专业电子科学与技术授课班号275901学号学生姓名指导教师单明雷完成时间2013年6月26日课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:数字频率计设计Ⅱ、课程设计(论文)工作内容一、课程设计目标《集成电路课程设计》的性质是实践性强、内容新,强调软、硬件设计及系统设计综合能力的培养,通过该课程的学习,学生能够在学习完集成电路设计相关课程、HDL及系统设计,并具有一定的SOPC设计基础后,更近一步掌握集成电路设计设计流程,加强电路级、系统级的集成电路设计能力。

由于设计工具的飞速发展,使得当前数字集成电路设计可以相互独立的分为逻辑设计(前端)和电路实现(后端)。

本课程设计的任务主要着眼于前端设计。

教学目标主要是使学生掌握利用相关的EDA开发工具、HDL语言,设计半定制的集成电路或可编程片上系统的方法,独立完成电路或系统设计、综合和测试全过程。

二、研究方法及手段应用设计一简易数字频率计,该频率计可设置采用直接测频法或周期测频法进行测频,要求使用Verilog HDL进行设计描述、测试平台编写,并进行仿真和时序分析。

三、课程设计预期效果1、完成实验环境搭建;2、完成数字频率计的功能设计与综合;3、完成modelsim软件仿真,确定程序代码正确性;4、对程序进行逻辑综合和门级后仿真。

学生姓名:专业年级:电子科学与技术2010级摘要简易数字频率计采用数字电路制做,实现对周期性变化信号频率测量器。

目前,主流的频率计用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值,其扩展功能可以测量信号的周期和脉冲宽度。

此次课程设计的频率计用于测量较高频率段的方波信号(1Mhz-50Mhz),核心是计数器,通过定时一段时间,对被测方波信号进行频率检测。

由于条件限制,本次课程设计进行了软件前仿真、综合以及综合后仿真,并未进行硬件验证和调试。

其中,程序采用VerilogHDL编写,基于ModelSim平台进行前仿真和综合后仿真,而在DV平台上对程序进行综合。

【关键词】数字频率计计数器 VerilogHDLABSTRACTSimple digital frequency meter with digital circuit system, the periodic change of signal frequency measuring device. At present, the mainstream of the frequency meter used to measure the sine wave, square wave, triangle wave and sharp pulse frequency value, its function expansion period measurement signal and pulse width.The curriculum design of the frequency meter for the high frequency segment measurement square wave signal (1Mhz-50Mhz), the core is the counter, through the timing for a period of time, the measured signal frequency detection. Because of the limited conditions, the curriculum design of software simulation, integrated and comprehensive simulation, hardware verification and debugging is not. Among them, the program prepared by using VerilogHDL, ModelSim platform for simulation and synthesis simulation based on DV platform, and in the process of comprehensive.[keyword] Digital frequency meter Counter Verilog HDL第一章系统设计第一节课题目标及方案选择1.课题目标:1、学习数字频率计相关知识进行系统构架设计、模块划分和算法分析;2、使用Verilog HDL设计一简易数字频率计,要求具有测量被测时钟频率的功能;3、要求使用Verilog HDL进行设计描述、测试平台编写,并进行仿真和时序分析。

2.方案选择:本次课设我们组考虑了两种测量方案:方案一、利用已知的标准时钟确定检测时间1us,在一个检测时间周期内对被测时钟的周期数目进行计数,从而确定被测时钟的频率。

此方案针对的被测信号要求为1Mhz以上的较高频率的方波信号,对于频率低于1Mhz的信号无法检测。

如需检测低于1Mhz的方波信号,需要相应延长检测时间,使得该数字频率计的工作效率大幅下降。

方案二、利用已知的标准时钟,对被测时钟上升沿进行采样,计算出相邻两个上升沿之间的时间间隔,即被测时钟周期,从而计算出被测信号的频率。

该方案要求被测信号的频率要足够低,使得标准时钟能够采集到被测信号的上升沿,在对较高频率时钟采样的过程中会出现较大误差,从而影响结果的精度甚至得到错误的结果。

在本次课设中,我们的初始思路是分三个模块分别实现判断频率范围、高频率信号检测计算和低频率信号检测计算的功能。

由于低频率信号检测计算部分的编写和综合没有达到预期的目标,我们最终放弃了该模块的实现,编写了检测较高频率的数字频率计。

第二节设计的实现1.功能整体框图:2.数字频率计数器的基本原理:该系统有一个时钟输入和一个复位输入,一个频率计数输出。

被测信号由系统时钟分频得到,系统时钟为100Mhz标准时钟。

程序复位后,由计数器1对系统时钟计数确定1us的检测时间,同时系统时钟根据要求分频得到的被测时钟由计数器2通过计数上升沿数木得到周期个数。

当检测时间达到1us时,计数器1模块会向计数器2模块发送一个允许输出结果的信号,计数器2模块输出被测频率结果同时对两个计数器进行清零以便下一个周期的计数。

3.系统组成模块简介1)顶层模块顶层模块是系统程序的主模块,定义了最终设计的输入、输出、控制端口,实现对各子模块调度,并确定最终功能。

module counter(clk,t,rst,result);input clk,rst; //clk为输入时钟rst为异步清零端input [5:0]t; // t为被测时钟的分频数output [5:0]result; // result为被测频率的输出wire clk,rst;wire[5:0]t;reg sig,sign,tclk; // sig和sign为计数器1和计数器2相互联系的中间量。

tclk为被测时钟reg [5:0]result; //result为输出reg [6:0]count; //计数器1的计数量reg [5:0]cnt; //计数器2的计数量reg [5:0]cn; //分频模块的分频参数2)分频模块对系统时钟进行分频得到相应的被测时钟。

always@(posedge clk or negedge rst)beginif(!rst)begincn<=0;tclk<=0;endelseif(cn==t)begintclk<=~tclk;cn<=0;endelsecn<=cn+1;end3)计数器1模块对输入信号的计数,根据系统时钟确定1us的检测时间。

always@(posedge clk or negedge rst)beginif(!rst)begincount<=0;sig<=1;endelseif(sign==1)begincount<=0;sig<=1;endelsebeginif(count>=100)beginsig<=0;endelsebegincount<=count+1;endendend4)计数器2模块对被测时钟进行计数。

确定1us内被测时钟上升沿的个数,得出被测时钟频率。

always @(posedge tclk or negedge rst)beginif(!rst)beginresult<=0;cnt<=0;sign<=0;endelseif(count==7'b0)begincnt<=0;sign<=0;endelseif(sig==0)beginsign<=1;result<=cnt;endelsebegincnt<=cnt+1;endend第二章结果与讨论第一节实验中遇到的问题在程序编写过程中,我们遇见了如下问题:(1)测试程序的端口数与源程序中的端口数不符合。

通过修改测试程序,删除了调试过程中一部分中间变量占用的端口,解决了问题。

(2)在程序ModelSim仿真通过后,不能进行综合。

通过修改源程序,分解了一些条件语句,合并了部分分散的模块,解决了问题。

(3)后仿真得出的结果与前仿真的结果出现误差和偏移。

我们通过修改源程序,重新进行综合和后仿真,解决了问题。

第二节实验结论1.Modelsim前仿真的测试波形:2.Modelsim前仿真的测试波形:3.从综合报告中我们可以看出,该设计的面积是71261.867316um^2.total references 为4061.534476。

程序共有15条路径,所有的路径的Slack值均为正值,即所有的路径Timing均满足设计约束条件。

情况最差的一条路径的Slack值为2.67576,这条路径通常称为关键路径(Critical Path)。

最为松弛的一条路径为4.62954。

另综合生成的报告见附录。

第三章心得与体会本次集成电路课程设计历时两个星期,在这两个星期的时间里,从构思到编程,再到最后的综合仿真,我们的对总体思路进行了修正,解决了程序编写过程中各模块的独立性与模块之间的衔接问题,在综合过程中,我们了解到软件描述语言与硬件描述语言之间的差别,明白有很多语句在软件中实现很方便,但是很难在硬件中实现,因为硬件是确确实实存在的,它有自身材料和设计的局限性和不可忽略的缺陷,某些在软件中可以忽略的细微影响在硬件综合中是不可忽略的等等。

此次集成电路设计中,我们意识到团结合作的重要性。

一个人的思路是单一的,两个人的想法就会多种多样。