四位十进制频率及设计 华北水利水电大学
实验三:四位十进制频率及设计
一. 实验目的
1. 掌握四位十进制频率计的工作原理并能够用virlog 语言编写代码 2. 进一步熟悉EDA6000实验箱的使用方法。
3. 进一步熟悉quartusII 建立程序编译、仿真及下载的操作流程. 4. 学会四位十进制频率计的Verilog 硬件设计。
5. 了解并掌握频率计各模块的设计方法和复杂数字统计的设计方法. 二. 实验环境
开发软件: Quartus II 6.0和EDA6000 实验设备:pc 机, 伟福EDA6000实验箱
三. 实验过程 1. 实验代码
module FRECNT(clk1HZ,uclk,led0,led1,led2,led3,p_cnt_en,p_rst_cnt,p_load); input clk1HZ,uclk;
output [3:0] led0,led1,led2,led3; output p_cnt_en,p_rst_cnt,p_load; wire e1,e2,e3;
wire [3:0] d0,d1,d2,d3;
TESTCTL T1(.CLKK(clk1HZ),.T_EN(p_cnt_en),.T_RST(p_rst_cnt),.T_LOAD (p_load));
CNT10 C0(.CLK(uclk),.RST(p_rst_cnt),.EN(p_cnt_en),.COUT(e1),.OUT(d0)); CNT10 C1(.CLK(e1),.RST(p_rst_cnt),.EN(p_cnt_en),.COUT(e2),.OUT(d1)); CNT10 C2(.CLK(e2),.RST(p_rst_cnt),.EN(p_cnt_en),.COUT(e3),.OUT(d2)); CNT10 C3(.CLK(e3),.RST(p_rst_cnt),.EN(p_cnt_en),.OUT(d3)); REG4B R0(.LOAD(p_load),.DIN(d0),.DOUT(led0)); REG4B R1(.LOAD(p_load),.DIN(d1),.DOUT(led1)); REG4B R2(.LOAD(p_load),.DIN(d2),.DOUT(led2)); REG4B R3(.LOAD(p_load),.DIN(d3),.DOUT(led3)); endmodule
module CNT10(CLK,RST,EN,OUT,COUT); input CLK,RST,EN; output [3:0] OUT; output COUT; reg [3:0] Q; reg COUT;
assign OUT = Q;
always @(posedge CLK or posedge RST) begin
if(RST) Q
always @(Q) begin
if(Q==4'd9) COUT = 1'b1; else COUT = 1'b0; end
endmodule
module REG4B(LOAD,DIN,DOUT); input LOAD; input [3:0] DIN; output [3:0] DOUT; reg [3:0] DOUT;
always @(posedge LOAD) DOUT
module TESTCTL(CLKK,T_RST,T_LOAD,T_EN); input CLKK;
output T_RST,T_LOAD,T_EN; reg T_RST,T_LOAD,T_EN; reg div;
initial div = 1;
always @(posedge CLKK) div
always @(CLKK or div) begin if((~CLKK)&&(~div)) T_RST = 1; else T_RST = 0; T_LOAD = ~div; T_EN = div; end
endmodule
2选择菜单下的红色三角->Tool->Netlist Viewer->RTL viewer.注意:项目应存为系统盘以外的盘内,路径中不含中文字符。编译结果如下:
3. 出电路图:选择主菜单下的Tool->Netist…viewers. 图形如下:
4. 新建波形文件进行仿真。保存时要和源程序存放在同一目录下。设置好输入波形参数后,开始仿真。在仿真后输入输出波形中观察逻辑关系是否正确。主菜单Processing->Generat..Melist。主菜单下的Assign->setting.出现仿真对话框,在下拉框中选择Function. 选择
菜单栏中的蓝色三角进行仿真。如果想改变进制可以单击右键选择value->count value.在下拉框中进行进制的转换。
5.进行时序仿真:选择主菜单下的Assignment->setting.在出现的对话框中选择timing 。然后选择菜单栏中的蓝色三角进行仿真。结果如下:
6. 出管脚:选择菜单栏中的Assignment->pins.然后打开EDA6000实验下的实验十,查看相应的管脚,根据需要选择适当的管脚拉入Name 框。
四. 实验心得:
在这次试验中, 熟悉了十进制频率计的硬件结构和设计方法,掌握了分频计、计数器以及顶层程序编码,所学良多, 对这门课的兴趣更加浓厚, 也进一步熟悉了virlog hdl 的本质,熟练了书上知识, 相信在今后的学习中, 通过自己的努力, 一定能学好这门课程。