北理工数电仿真实验_第1页
北理工数电仿真实验_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、 5/5北理工数电仿真实验 本科实验报告实验名称:一、QuartusII9.1 软件的使用 二、模十状态机与 7 段译码器显示 三、数字钟的设计与仿真 实验一 QuartusII9.1软件的使用 一、实验目的: 一、通过实现书上的例子,掌握QUARTUSII9.1软件的使用; 二、编程实现3-8译码电路以掌握VerilogHDL语言组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验步骤: 1、程序; module ex4 ( input clk, load, en, input 3:0 qin, output reg 7:0 seg ); reg 3:0 qout; always

2、 (posedge clk or posedge load) begin if (load) qout New,弹出对话框后选择 Verilog HDL File,然后进行编写代码。 对Verilog HDL File 编译:从菜单栏中选择ProcessingStartStart Analysis&Synthesis,选取菜单中 Processing Start Compilation 进行全编译。 运行没有问题后 点击File中New,弹出对话框后选择Vector Waveform File, 在空白处右键选择Insert选择Insert Node or bus 点击Node Finder在

3、Filter中选择如下选项,点击List,点击全选 点击ok即可。 设置时钟并在Qin中设置16进制,起始为7 (3)、仿真 点击Processing中的Simulator Tool,在mode中选择Functional进行功能仿真或者选择Timing 进行时序仿真 功能仿真: 功能仿真结果: 时序仿真结果: 选做:3-8译码器 (1)设计思路 随着时钟信号 clk 上升沿的到来,输入 D2D1D0 从 000 加到 111,每个输入 D2D1D0 对应输入输出 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0

4、 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 如果输入错误,则输出 Q7Q6Q5Q4Q3Q2Q1Q0=11111111。 (2)、程序 module ex38 ( input clk, output reg 7:0Q ); reg 2:0 D; always (posedge clk ) begin D 2-5-6-1-9-4-8-7-3-0 的顺序输出;使

5、用此输出作为驱动输入到 7 段译码器的显示逻辑。 1、设计思路 (1)、时钟信号 clk 作为分频器的输入,分频器的设计思路为设计一个模十六计数器,cp0(Q0)输出即为二分频信号,cp1(Q1)输出即为四分频信号,cp2(Q2)输出即为八分频信号,cp3(Q3)输出即为十六分频信号。分频器的输出由 4 选 1 多路选择器的选择输入端 select 选择 2 分频、4 分频、8 分频和 16 分频其中之一作为状态机的时钟输入,当 select 为 0 时,输出为二分频信号;为 1 时,输出为四分频信号;为 2 时,输出为八分频信号;为 3 时,输出为十六分频信号。 (2)、reset 为高有效

6、,则若 reset 信号为 1 时,qout 置为 0,则 now_state 为 0。 若 reset 信号为 0 时,qout 自加,并作为状态机的输入驱动,让状态机按照 0-2-5-6-1-9-4-8-7-3-0 的顺序输出。 (3)、状态机按照 0-2-5-6-1-9-4-8-7-3-0 的顺序输出,并使用此输出作为驱动输入到 7 段译码器的显示逻辑。 2、实验代码: module ex5 ( input 1:0select, input clk,reset, output reg 3:0cp, output reg 6:0seg, output reg fp, output reg

7、9:0now_state ); reg 3:0qout; always (posedge clk or posedge reset)begin if (reset) cp=0; else cp=cp+1; end always (select) case(select) 0:fp=cp0; 1:fp=cp1; 2:fp=cp2; 3:fp=cp3; default:fp=0; endcase always(posedge fp or posedge reset)begin if (reset) qout=0; else if (qout=4b1001) qout=4b0000; else qo

8、ut=qout+1; end always (qout) case (qout) 0: now_state=10b0000000001; 1: now_state=10b0000000100; 2: now_state=10b0000100000; 3: now_state=10b0001000000; 4: now_state=10b0000000010; 5: now_state=10b1000000000; 6: now_state=10b0000010000; 7: now_state=10b010*; 8: now_state=10b0010000000; 9: now_state=

9、10b0000001000; default: now_state=10b1111111111; endcase always (qout) case (qout) 0: seg=7b1000000; 1: seg=7b0100100; 2: seg=7b0010010; 3: seg=7b0000010; 4: seg=7b1111001; 5: seg=7b0010000; 6: seg=7b0011001; 7: seg=7b0000000; 8: seg=7b1111000; 9: seg=7b0110000; default: seg=7b1111111; endcase Endmo

10、dule (1)总体仿真结果: (2)rest高有效及二分频结果 (3)四分频结果 (4)八分频仿真结果 (5)十六分频仿真结果 三、实验心得 通过本次实验,设计频率可选的模十状态机以及 7 段译码电路,学会了以代码形式实现频率多路选择器的功能,巩固了模十状态机的实现方式,进一步掌握VerilogHDL 硬件描述语言。 实验三数字钟的设计与仿真 一、实验目的: 通过设计实现的数字钟的设计与仿真,以熟悉VerilogHDL语言编程。 二、实验流程: 输入引脚有 3+16 根,其中三位分别为时钟(提供整个系统的时钟信号)、复位(系统复位信号)和置位信号(用于将时间设置到需要观察的位置)。十六位分别

11、为分钟个位和十位、秒个位和十位。 输出引脚有 16 根,分别位分钟个位和十位、秒个位和十位。 三、设计与实验步骤: 1、设计思路与分析: 本实验设计数字钟的实质为设计 60*60 的计数器。数字钟为上升沿触发,三个输入管脚为提供整个系统的时钟信号 clk,系统复位信号 clr(高有效)和置位信号 load (高有效),复位信号 clr 用于将输出的分钟个位 min_l、十位 min_h 和秒个位 sec_l、 十位 sec_h 清 0,置位信号 load 将输出的分钟个位 min_l、十位 min_h 和秒个位 sec_l、十位 sec_h 设置到需要观察的位置。十六位分别为分钟个位 min_

12、l0、十位 min_h0 和秒个位sec_l0、十位 sec_h0,为 load 信号变为高电平时的预置信号,此时输出结果为预置信号。在load=0,clr=0 时,随着 clk 的上升沿到来,秒个位 sec_l 进行自加,加到 9 时下一个 clk 上升沿到来时秒个位 sec_l 变为 0,sec_h 加 1。当时钟为 59 秒是,下一个 clk 上升沿到来时,秒清 0,分钟低位 min_l 加 1。当时钟为 9 分 59 秒时,下一个 clk 上升沿到来时,分钟低 位 min_l,秒高位 sec_h,秒低位 sec_l 清 0,分钟高位 min_h 加 1。当时钟为 59 分 59 秒是,

13、下一个 clk 上升沿到来时,分钟个位 min_l、 十位 min_h 和秒个位 sec_l、十位 sec_h 均清 0。 2、实验代码: module ex6 ( input clk,clr,load, input 3:0min_h0, input 3:0min_l0, input 3:0sec_h0, input 3:0sec_l0, output reg 3:0min_h, output reg 3:0min_l, output reg 3:0sec_h, output reg 3:0sec_l ); always (posedge clr or posedge clk) begin i

14、f (clr) begin min_h=0; min_l=0; sec_h=0; sec_l=0; end else if(load) begin min_h=min_h0; min_l=min_l0; sec_h=sec_h0; sec_l=sec_l0; end else begin if (sec_l=9)begin sec_l=0; if (sec_h=5)begin sec_h=0; if (min_l=9)begin min_l=0; if (min_h=5)begin min_h=0; end else begin min_h=min_h+1; end end else begin min_l=min_l+1; end end else begin sec_h=sec_h+1; end end e

温馨提示

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

评论

0/150

提交评论