Verilog-HDL数字设计教程(贺敬凯)第7课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Verilog-HDL数字设计教程(贺敬凯)第7课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog HDL 数字 设计 教程 贺敬凯 课件
- 资源描述:
-
1、第7章 Verilog HDL可综合设计举例 7.1 跑马灯控制器的设计7.2 8位数码扫描显示电路的设计7.3 数控分频器的设计7.4 乐曲硬件演奏电路的设计7.5 数字跑表和数字钟的设计7.6 用Verilog HDL状态机实现A/D采样控制电路7.7 交通控制器的设计7.8 空调控制器的设计7.9 饮料自动售卖机的设计7.10 小结习题7第7章 Verilog HDL可综合设计举例 7.1 跑马灯控制器的设计跑马灯控制器的设计1. 设计要求设计要求共8个LED灯,连成一排。要求实现几种灯的组合显示。具体要求如下:(1) 模式1:先奇数灯,即第1、3、5、7灯亮0.25 s,然后偶数灯,即
2、第2、4、6、8灯亮0.25 s,依次循环。(2) 模式2:按照1、2、3、4、5、6、7、8的顺序依次点亮所有灯,间隔时间为0.25 s;然后再按1/2/3/4/5/6/7/8的顺序依次熄灭所有灯,间隔时间为0.25 s。 第7章 Verilog HDL可综合设计举例 (3) 模式3:按照1/8、2/7、3/6、4/5的顺序依次点亮所有灯,间隔时间为0.25 s,每次同时点亮两个灯;然后再按照1/8、2/7、3/6、4/5的顺序依次熄灭所有灯,间隔时间为0.25 s,每次同时熄灭两个灯。(4) 以上模式可以选择。 第7章 Verilog HDL可综合设计举例 2. 设计说明设计说明LED灯与
3、FPGA的连接如图7-1所示,设计要求很容易实现,在此不再说明。 第7章 Verilog HDL可综合设计举例 图7-1 8个LED灯与FPGA的连接图第7章 Verilog HDL可综合设计举例 使用两个键进行模式选择,两个键有00、01、10、11四种组合,使用其中的三种组合,分别对应设计要求的三种情况。第7章 Verilog HDL可综合设计举例 3. 设计模块设计模块(包含模块划分包含模块划分)该设计比较简单,仅用一个模块即可,输入端口为rst、clk、sel1.0,输出端口为led7.0,其中sel用于模式选择,led用于控制8个LED灯,如图7-2所示。第7章 Verilog HD
4、L可综合设计举例 图7-2 跑马灯模块端口框图第7章 Verilog HDL可综合设计举例 4. 代码分析代码分析【例7-1】 设计源码。module paomadeng(rst,clk,sel,led);input rst,clk;input1:0 sel;output7:0 led;reg7:0 led;reg7:0 led_r,led_r1;reg cnt1,dir;reg2:0 cnt2;reg1:0 cnt3;第7章 Verilog HDL可综合设计举例 always (posedge clk)beginif(rst) begin cnt1=0; cnt2=0; cnt3=0; di
5、r=0; endelsecase(sel) 2b00:beginled_r=8b01010101;if(cnt1=0) led=led_r;else led=led_r1;cnt1=cnt1+1;end第7章 Verilog HDL可综合设计举例 2b01:beginif(!dir) beginif(cnt2=0) begin led_r=8b00000001;led=led_r; endelse begin led=(led1)+led_r; endif(cnt2=7) begin dir=dir; endcnt2=cnt2+1; end第7章 Verilog HDL可综合设计举例 else
6、 beginif(cnt2=0) begin led_r=8b11111110;led=led_r; endelse begin led=led1; endif(cnt2=7) begin dir=dir; endcnt2=cnt2+1; endend第7章 Verilog HDL可综合设计举例 2b11:beginif(!dir) beginif(cnt3=0) beginled_r=8b00000001;led_r1=8b10000000;end else begin led_r=(led_r1)| led_r1; endled=led_r | led_r1;if(cnt3=3) begi
7、n dir=dir; endcnt3=cnt3+1; endelse第7章 Verilog HDL可综合设计举例 beginif(cnt3=0) begin led_r=8b11111110;led_r1=8b01111111;endelse begin led_r=led_r1; endled=led_r & led_r1;if(cnt3=3) begin dir=dir; endcnt3=cnt3+1;第7章 Verilog HDL可综合设计举例 endend default: ;endcaseendendmodule第7章 Verilog HDL可综合设计举例 程序说明:(1) case
8、语句用于选择三种模式。当case表达式中的sel为2b00时选择模式1,为2b01时选择模式2,为2b11时选择模式3。(2) cnt1、cnt2、cnt3分别为三种模式下的计数器,用于控制流水灯的转换节奏。(3) dir用于方向控制,与cnt1、cnt2、cnt3的具体数值相关。 第7章 Verilog HDL可综合设计举例 5. 仿真分析仿真分析仿真波形如图7-3所示。该仿真波形仅列出了sel为2b11时跑马灯的运行情况。从图中可以看出,灯的运行与模式3一致,说明程序代码实现了模式3。读者也可以通过修改sel的值对模式1和模式2进行验证。 第7章 Verilog HDL可综合设计举例 图7
9、-3 跑马灯仿真波形第7章 Verilog HDL可综合设计举例 6. 引脚锁定下载硬件验证引脚锁定下载硬件验证选择GW48-PK2系统中的实验电路5,引脚锁定情况如图7-4所示。将设计下载到实验开发系统中,观察实际运行情况。clk接FPGA的93引脚,频率选择4 Hz,然后通过按键选择跑马灯的运行模式,观察跑马灯的实际运行情况。 第7章 Verilog HDL可综合设计举例 图7-4 引脚锁定情况第7章 Verilog HDL可综合设计举例 7. 扩展部分扩展部分请读者思考其他LED显示方式,并实现之。例如:先循环左移,再循环右移(任一时刻只有一个LED灯亮),然后从两头至中间依次点亮(任一
10、时刻只有两个LED灯亮),之后不断重复以上显示方式。 第7章 Verilog HDL可综合设计举例 7.2 8位数码扫描显示电路的设计位数码扫描显示电路的设计1. 设计要求设计要求共8个数码管,连成一排,要求可以任意显示其中一个或多个数码管。具体要求如下:(1) 依次选通8个数码管,并让每个数码管显示相应的值,比如让每个数码管依次显示13579BDF。(2) 要求能在实验台上演示出数码管的动态显示过程。 第7章 Verilog HDL可综合设计举例 2. 设计说明设计说明下面对实验原理作简单介绍。(1) 数码管分共阴极和共阳极两类。7段共阴极数码管如图7-5所示。当数码管的输入为“110110
11、1”时,数码管的7个段g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;由于接有高电平的段发亮,因此数码管显示“5”。注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h。 第7章 Verilog HDL可综合设计举例 图7-5 共阴极数码管及其电路第7章 Verilog HDL可综合设计举例 (2) 图7-6所示的是8位数码扫描显示电路,其中每个数码管的8个段h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号K1、K2、K8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k1为高电平,其余选通信号为低电平,这时仅K1对应的数码
12、管显示来自段信号端的数据,而其他7个数码管均不显示。因此,如果希望在8个数码管显示不同的数据,就必须使得8个选通信号K1、K2、K8轮流被单独选通,同时,在段信号输入口加上希望在对应数码管上显示的数据,这样随着选通信号的变化,才能实现扫描显示的目的。第7章 Verilog HDL可综合设计举例 图7-6 8位数码扫描显示电路第7章 Verilog HDL可综合设计举例 3. 设计模块设计模块(包含模块划分包含模块划分)该设计使用了2个模块,如图7-7所示。该设计的输入为clk,输出为SM_7S6.0、SM_B7.0。其中SM_7S为段选信号,对数码管的每一段进行控制;SM_B为位选信号,用于在
13、8个数码管中选择。 第7章 Verilog HDL可综合设计举例 图7-7 数码管顶层模块框图第7章 Verilog HDL可综合设计举例 4. 代码分析代码分析例7-2的Dec7S模块为7段译码器,输入信号SM_in可取十六进制数0F,输出信号SM_7S的7位分别接数码管的7个段,高位在左,低位在右。 第7章 Verilog HDL可综合设计举例 【例7-2】 7段数码显示译码器设计。module Dec7S(SM_in,SM_7S); /七段译码电路input3:0 SM_in;output reg6:0 SM_7S;always (SM_in) begincase(SM_in)第7章 V
14、erilog HDL可综合设计举例 4d0: SM_7S=7b0111111;4d1: SM_7S=7b0000110;4d2: SM_7S=7b1011011;4d3: SM_7S=7b1001111;4d4: SM_7S=7b1100110;4d5: SM_7S=7b1101101;4d6: SM_7S=7b1111101;4d7: SM_7S=7b0000111;4d8: SM_7S=7b1111111;第7章 Verilog HDL可综合设计举例 4d9: SM_7S=7b1101111;4d10: SM_7S=7b1110111;4d11: SM_7S=7b1111100;4d12:
15、 SM_7S=7b0111001;4d13: SM_7S=7b1011110;4d14: SM_7S=7b1111001;4d15: SM_7S=7b1110001;default: ; endcase endendmodule第7章 Verilog HDL可综合设计举例 例7-3的GenBS模块用于生成位选信号和待显示数据。程序中的cnt8是一个3位计数器,产生扫描计数信号,SM_B=1cnt8;用于对8个数码管扫描选通,SM_in =7) cnt8=0; else cnt8=cnt8+1; SM_in = 2*cnt8+1; /生成待显示数据为1, 3, 5, . SM_B=1cnt8;
16、/生成位选信号 endendmodule例7-4是扫描显示的顶层模块。其中:clk是扫描时钟;SM_7S为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a 7个段;SM_B是位选控制信号,接图7-6中的8个选通信号K1、K2、K8。 第7章 Verilog HDL可综合设计举例 【例7-4】 8位数码扫描显示电路顶层模块。module shumaguan(clk,SM_7S,SM_B);input clk;output6:0 SM_7S; /段控制信号输出output7:0 SM_B; /位控制信号输出wire3:0 SM_in;GenBS inst1(clk,SM_in,SM_B)
17、; /调用位选和待显示数据生成电路Dec7S inst2(SM_in,SM_7S); /调用译码电路endmodule 第7章 Verilog HDL可综合设计举例 5. 仿真分析仿真波形如图7-8所示。从图中可以看出,在每一个时钟上升沿选中下一个数码管,同时送相应的数据给该数码管显示。 图7-8 数码管仿真波形第7章 Verilog HDL可综合设计举例 6. 引脚锁定下载硬件验证引脚锁定下载硬件验证将设计下载到实验开发系统中,观察实际运行情况。实验方式:若考虑小数点,则SM_7S的8个段分别与PIO49、PIO48、PIO42(高位在左)连接、SM_B的8个位分别与PIO34、PIO35、
18、PIO41(高位在左)连接。在GW48 EDA系统数码管左边有一个跳线冒,将其跳下端“CLOSE”(平时跳上端“ENAB”),这时实验系统的8个数码管构成图7-6所示的电路结构,时钟clk可选择clock0,通过跳线选择16 384 Hz信号。引脚锁定后进行编译、下载和硬件测试实验。引脚锁定如图7-9所示。 第7章 Verilog HDL可综合设计举例 图7-9 引脚锁定情况第7章 Verilog HDL可综合设计举例 时钟clk选择clock0,通过跳线选择4 Hz信号,可演示数码管的动态扫描过程。7. 扩展部分扩展部分请读者尝试完成以下几种显示方式:(1) 8个数码管同时显示,每个数码管的
19、8个段,即a、b、c、d、e、f、g、dp依次显示,每个段持续显示时间为0.25 s。第7章 Verilog HDL可综合设计举例 (2) 8个段和8个数码管依次显示,a段显示在第1个数码管上,b段显示在第2个数码管上,dp段显示在第8个数码管上,显示持续时间为0.25 s。(3) 将0F这16个十六制数依次显示在数码管中,每个时刻只有一个数码管显示,持续时间为0.25 s,即0显示在第1个数码管、1显示在第2个数码管、7显示在第8个数码管、8显示在第1个数码管、F显示在第8个数码管。 第7章 Verilog HDL可综合设计举例 7.3 数控分频器的设计数控分频器的设计1. 设计要求设计要求
20、(1) 对于任意频率,均可以对其进行数控分频,以得较低的频率。(2) 对于预定频率,均可以通过对较高频率分频得到。第7章 Verilog HDL可综合设计举例 2. 设计说明设计说明数控分频器的功能是:当在输入端给定不同输入数据时,对输入的时钟信号有不同的分频比。数控分频器是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接,详细设计程序如例7-5所示。 第7章 Verilog HDL可综合设计举例 3. 设计模块设计模块(包含模块划分包含模块划分)本例仅有一个模块,图7-10给出了分频器模块的端口框图。其中,CLK为时钟信号;D为输入数据,根据这个数据进行分
21、频;FOUT为分频后的输出。第7章 Verilog HDL可综合设计举例 图7-10 分频器模块的端口框图第7章 Verilog HDL可综合设计举例 4. 代码分析代码分析【例7-5】 数控分频器的设计。module DVF_v(CLK,D,FOUT);input CLK;input7:0 D;output reg FOUT;reg7:0 FULL;always (posedge CLK) begin:P_REG reg7:0 CNT8; if(CNT8=8b11111111) 第7章 Verilog HDL可综合设计举例 begin CNT8 = D; /当CNT8计数计满时,输入数据D被
22、同步预置给计数器CNT8 FULL = 1b1; /同时使溢出标志信号FULL输出为高电平 endelse begin CNT8 = CNT8 + 1; /否则继续作加1计数 FULL = 1b0; /且输出溢出标志信号FULL为低电平end 第7章 Verilog HDL可综合设计举例 endalways (posedge FULL) begin:P_DIVreg CNT2;CNT2=CNT2; /如果溢出标志信号FULL为高电平,则D触发器输出取反if(CNT2=1b1) FOUT=1b1; else FOUT=1b0; endendmodule第7章 Verilog HDL可综合设计举例
23、 5. 仿真分析仿真分析图7-11为数控分频器的仿真结果。从图中可以看出,FOUT的输出频率随D的变化而变化,实现了数控分频。 图7-11 数控分频器的仿真结果第7章 Verilog HDL可综合设计举例 6. 引脚锁定下载硬件验证引脚锁定下载硬件验证将设计下载到实验开发系统中,观察实际运行情况。选实验电路模式1,键2/键1负责输入8位预置数D(PIO7PIO0),CLK由clock0输入,频率选65 536 Hz或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。编译下载后进行硬件测试:改变键2/键1的输入值,可听到不同音调的声音。引脚锁定如图7-12所示。 第7章 Ver
24、ilog HDL可综合设计举例 图7-12 引脚锁定第7章 Verilog HDL可综合设计举例 7. 扩展部分扩展部分(1) 利用本节的数控分频器得到的频率,其占空比为50%。若占空比可调,比如占空比为30%,如何实现?提示:可使用两个8位输入数据控制输出脉冲的高低电平持续时间。(2) 尝试使用其他分频器的设计方法,例如第4章提出的方法,并比较这些方法的异同。第7章 Verilog HDL可综合设计举例 7.4 乐曲硬件演奏电路的设计乐曲硬件演奏电路的设计1. 设计要求设计要求(1) 利用7.3节的数控分频器设计硬件乐曲演奏电路。(2) 了解乐谱的一些基本知识,可以将乐谱转换为相应的Quar
25、tus 文件,掌握其演奏原理。(3) 掌握本设计中各模块的功能,能够填入并演奏一些新的曲子。第7章 Verilog HDL可综合设计举例 2. 设计说明设计说明乐曲演奏的原理:组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。(1) 音调的控制。简谱中音名与音频的对应关系如图7-13所示。 第7章 Verilog HDL可综合设计举例 图7-13 简谱中音名与音频的对应关系第7章 Verilog HDL可综合设计举例 图7-13中仅列出了低音、中音和高音的频率,对于
展开阅读全文