贵州大学实验报告
学院: 专业: 班级:
姓名 | 学号 | 实验组 | ||||
实验时间 | 2012.5.17 | 指导教师 | 成绩 | |||
实验项目名称 | D触发器 | |||||
实验目的 | 1. 了解D触发器的工作原理,进一步了解、熟悉和掌握QuartusⅡ的使用方法。 2. 学习Verilog HDL的编程方法。 3. 学会使用Vector Wave进行功能仿真。 | |||||
实验原理 | 组合逻辑电路的设计思想 | |||||
实验仪器 | 硬件:FPGA2C35-Ⅱ开发板、USB ByteBlaster下载线 软件:Altera QuartusⅡ 9.0集成开发环境。 | |||||
实验步骤及内容 | 实验步骤: 1. 新建工程,取名为Dtriger。 2. 新建Verilog设计文件,选择“File|New”,在New对话框中选择Device Design Files下的Verilog HDL File,单击OK,完成新建设计文件。 3. 在新建设计文件中输入verilog程序。 4. 保存文件,使用qsf进行管脚分配。 5. 对该工程文件进行全程编译处理,若在编译过程中发生错误,则找出并改正错误,直至编译成功为止。 6. 新建“Vector Waveform File”文件进行波形仿真。 7. 下载sof文件完成后,观察实验结果。 实验内容: 编写D触发器的Verilog代码并仿真,编译下载验证。 要求:通过开关分别输入单bit的数据,并用开关作为控制信号,实现置位和复位。将D触发器的结果显示在D0上。 D触发器程序: module Dtriger(d,clk,clr,en,q); input d; //定义输入信号d wire d; //定义内部结点信号数据类型 input clk; //定义输入信号clk wire clk; //定义内部结点信号数据类型 input clr; //定义输入信号clr wire clr; //定义内部结点信号数据类型 input en; //定义输入信号en wire en; //定义内部结点信号数据类型 output q; //定义输出信号q reg q; //定义1位寄存器变量 always@(posedge clk) //每当clk信号的上升沿 begin if(en) //如果en=1,则q=1 q=1; else if(clr) //其他如果clr=1,则q=0 q=0; else //其他则q=d q=d; end endmodule | |||||
实验数据 | D触发器管脚分配: D触发器仿真波形: 图1 图2 图3 数据分析:输出结果为D触发器的结果,每当clk信号的上升沿,en=1时,则q=1;en=0,clr=1时;q=0;否则q=d。见上面的仿真结果:图1中,clk第一个上升沿时,en=0且clr=0故q=d=0;图2中,clk第一个上升沿时,en=1,故q=1;故分析可知,以上的波形仿真结果与理论值都吻合。 | |||||
实验总结 | 通过这次实验,我对Altera QuartusⅡ9.0的运用更加熟悉,D触发器程序中,“always@(posedge clk)” 是指每当clk信号的上升沿,体现了D触发器的根本特性,即触发器在时钟脉冲边沿作用下的状态刷新特性。在D触发器中,en输入为置位端,clr输入为清零端,在输出q信号时,首先检测en信号,再检测clr信号。每当clk信号的上升沿,en=1时,则q=1;en=0,clr=1时;q=0;否则q=d。 | |||||
指导教师意见 | 签名: 年 月 日 | |||||
本文来源:https://www.2haoxitong.net/k/doc/de37c6ed998fcc22bcd10d19.html
文档为doc格式