文档详情

实验十进制频率计设计.doc

发布:2017-03-29约1.69千字共6页下载文档
文本预览下载声明
实验三 十进制频率计设计 一、实验目的 1、掌握四位十进制频率计的工作原理; 2、掌握四位十进制频率计的 Verilog 描述方法; 3、学习设计仿真工具的使用方法。 实验设备 QutersII软件、magic sopc实验箱、电脑 三、实验原理 根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为 1秒的脉冲计数允许信号,1 秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。根据频率计的工作原理,将电路划分成控制器、计数器、锁存器几个模块。 控制器: 输入端 clk 收到 1Hz 信号后,其输出端 en 控制各个计数器的使能,rst控制各个计数器的清零,load 控制锁存器内数据的输出。 计数器:对输入信号的脉冲数进行累计 锁存器:锁存测得的频率值 四、实验源程序 module freqcounter(clk,uclk,led0,led1,led2,led3); input clk,uclk; output [3:0] led0,led1,led2,led3; reg [3:0]led0,led1,led2,led3; reg div; wire en,load,cls; reg [3:0] A,B,C,D; always @(negedge clk) begin div=~div; end assign en=div; assign load=~en; assign cls=clkload; always @(posedge uclk or posedge cls) begin if(cls) begin A=4d0;B=4d0;C=4d0;D=4d0; end else if(en) begin A=A+4d1; if(A==4D10) begin A=4d0;B=B+4d1; end if(B==4D10) begin B=4d0;C=C+4d1; end if(C==4D10) begin C=4d0;D=D+4d1; end if(D==4D10) begin D=4d0; end end end always @(posedge load) begin led0=A; led1=B; led2=C; led3=D; end endmodule 实验内容 1、创建工程 file→New Project Wizard 2 file→New→Verilog HDL File 3输入代码→start Compilation 4 file→New→Other Files→Vector Waveform File View→Utility windows→node finder 在Edit里设置end time,对clk,uclk进行clock里的设置。 然后save保存,接着Assignment→settings→Device→DeviceOptions→Unused Pins→As input tri-stated 5时序仿真 Start Simulation 6功能仿真 Setting→simulator setting→simulation node→Functional Processing→Generate Functional simulation Netlist→Start Simulation 7生成RTL原理图: Tools→Netlist Viewers→RTL Viewer 六、实验心得和体会 通过本次实验,学会了十进制频率计的设计,理解了用 virlog 表达和设计电路的方法,进一步熟悉了eda6000这个软件。让我对十进制的频率计设计的工作原理有了深入的理解并巩固了用 virlog 语言编写代码。跟上次实验相比有了较大的进步。 电子设计自动化日期:2014.11.26 星期三 第四大节 地点:s5207 姓名:学号: 6
显示全部
相似文档