配套课件-Verilog-HDL数字设计实训教.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《配套课件-Verilog-HDL数字设计实训教.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 配套 课件 Verilog HDL 数字 设计 实训教
- 资源描述:
-
1、Verilog HDL数字设计实训教程数字设计实训教程西安电子科技大学出版社西安电子科技大学出版社第第1章章 Verilog HDL数字设计实训基础数字设计实训基础第第2章章 接口类实训项目接口类实训项目第第3章章 数字系统应用类实训项目数字系统应用类实训项目第第4章章 NiosII处理器实训项目处理器实训项目第1章 Verilog HDL数字设计实训基础 1.1实训平台实训平台 1.2 基于基于QuartusII的数字设计流程的数字设计流程 1.3分频器设计分频器设计 1.4 同步有限状态机设计同步有限状态机设计 1.5 小结小结 1.1 实训平台实训平台图图1-1 1-1 开发板结构图(顶
2、层和底层)开发板结构图(顶层和底层)1.1 实训平台实训平台实训平台提供了以下外设资源:实训平台提供了以下外设资源:(1)4个按键;个按键;(2)4位位LED;(3)2个数码管;个数码管;(4)1个液晶接口个液晶接口LCD1602;(5)1个个UART接口;接口;(6)8M SDRAM;(7)4M FLASH。1.1 实训平台实训平台图图1-2 1-2 按键电路连接图和管脚对应图按键电路连接图和管脚对应图4 4个按键个按键:1.1 实训平台实训平台图图1-3 LED1-3 LED电路连接图和管脚对应图电路连接图和管脚对应图4 4个个LEDLED灯灯:1.1 实训平台实训平台图图1-4 1-4
3、数码管电路连接图和管脚对应图数码管电路连接图和管脚对应图2 2个数码管个数码管:1.1 实训平台实训平台图图1-5 1-5 液晶电路连接图和管脚对应图液晶电路连接图和管脚对应图 1 1块液晶块液晶:1.1 实训平台实训平台图图1-6 UART1-6 UART电路连接图和管脚对应图电路连接图和管脚对应图 1 1个个UART:UART:1.1 实训平台实训平台图图1-7 1-7 时钟源电路连接图和管脚对应图时钟源电路连接图和管脚对应图 时钟源时钟源:1.1 实训平台实训平台图图1-8 1-8 复位电路连接图和管脚对应图复位电路连接图和管脚对应图 复位电路复位电路:1.2 基于基于QuartusII
4、的数字设计流的数字设计流程程图图1-9 Quartus II1-9 Quartus II设计流程设计流程编写一个简单的编写一个简单的Verilog HDL语言程序语言程序【例【例1-1】实现一个】实现一个led灯的闪烁,闪烁周期为灯的闪烁,闪烁周期为1s module led_blink(clk,led);input clk;output led;wire clk_1Hz;divf_led_blink U1(clk,clk_1Hz);ctrl_led_blink U2(clk_1Hz,led);endmodule/分频电路分频电路,由由50MHz产生产生1Hz的频率的频率module divf
5、_led_blink(input clk,output reg clk_1Hz);integer p;always(posedge clk)if(p=25000000-1)begin p=0;clk_1Hz=clk_1Hz;endelse p=p+1;endmodule/控制控制led闪烁闪烁module ctrl_led_blink(input clk_1Hz,output reg led);always(posedge clk_1Hz)led=led;endmodule例例1-1说明说明(1)模块)模块led_blink通过调用两个模块来实现本设计,通过调用两个模块来实现本设计,如图如图1
6、-10所示。模块所示。模块divf_led_blink实现分频,将实现分频,将50MHz的频率分频得到的频率分频得到1Hz的频率;模块的频率;模块ctrl_led_blink实现实现led灯的闪烁控制。灯的闪烁控制。图图1-10 1-10 例例1-11-1的顶层实现框图的顶层实现框图(2)divf_led_blink实现分频,使用加法计数器对实现分频,使用加法计数器对时钟信号进行分频。时钟信号进行分频。QuartusIIQuartusII设计流程设计流程 1 1创建工程准备工作创建工程准备工作 图图1-11 1-11 选择编辑文件及其语言类型选择编辑文件及其语言类型QuartusIIQuart
7、usII设计流程设计流程 1 1创建工程准备工作创建工程准备工作 图图1-1-12 12 键入源程序并存盘键入源程序并存盘QuartusIIQuartusII设计流程设计流程2.2.创建工程创建工程 图图1-13 选择创建新工程选择创建新工程QuartusIIQuartusII设计流程设计流程2.2.创建工程创建工程 图图1-14 1-14 工程位置、工程名称、顶层模块名工程位置、工程名称、顶层模块名QuartusIIQuartusII设计流程设计流程2.2.创建工程创建工程 图图1-15 1-15 将所有相关的文件都加入进此工程将所有相关的文件都加入进此工程 QuartusIIQuartus
8、II设计流程设计流程2.2.创建工程创建工程图图1-16 1-16 选择目标选择目标FPGAFPGA器件器件QuartusIIQuartusII设计流程设计流程2.2.创建工程创建工程图图1-17 1-17 选择第三方工具选择第三方工具QuartusIIQuartusII设计流程设计流程2.2.创建工程创建工程图图1-18 1-18 使用使用modelsimmodelsim作为仿真工作的设置作为仿真工作的设置 QuartusIIQuartusII设计流程设计流程2.2.创建工程创建工程图图1-19 1-19 工程层次界面和设计文件界面工程层次界面和设计文件界面QuartusIIQuartusI
9、I设计流程设计流程3 3编译设置编译设置 图图1-20 1-20 设置对话框设置对话框QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图图1-21 Device1-21 Device设置对话框设置对话框QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图图1-22 1-22 选择配置器件的工作方式选择配置器件的工作方式 QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图图1-23 1-23 选择配置器件和编程方式选择配置器件和编程方式 QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图
10、图1-24 1-24 未用管脚设置未用管脚设置QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图图1-25 1-25 编译进度编译进度QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图图1-26 1-26 全程编译后出现报错信息全程编译后出现报错信息QuartusIIQuartusII设计流程设计流程3 3编译设置编译设置 图图1-27 1-27 全程编译成功后的汇总信息全程编译成功后的汇总信息4 4仿真验证仿真验证图图1-28 1-28 选择选择Vector waveform fileVector waveform file界面界面Qu
11、artusII设计流程设计流程4 4仿真验证仿真验证 图图1-29 1-29 仿真测试向量波形文件仿真测试向量波形文件QuartusII设计流程设计流程4 4仿真验证仿真验证 图图1-30 1-30 仿真波形信号设置仿真波形信号设置QuartusII设计流程设计流程4 4仿真验证仿真验证 图图1-31 1-31 加入了待观察信号加入了待观察信号的的波形图波形图QuartusII设计流程设计流程4 4仿真验证仿真验证 QuartusII设计流程设计流程图图1-32 1-32 设置设置仿真时间最小间隔仿真时间最小间隔4 4仿真验证仿真验证 QuartusII设计流程设计流程图图1-33 1-33
12、设置设置仿真时间长度仿真时间长度4 4仿真验证仿真验证 QuartusII设计流程设计流程图图1-34 1-34 设置好的激励波形图设置好的激励波形图4 4仿真验证仿真验证 QuartusII设计流程设计流程图图1-35 1-35 功能仿真设置界面功能仿真设置界面4 4仿真验证仿真验证 QuartusII设计流程设计流程图图1-36 1-36 功能仿真波形输出功能仿真波形输出 4 4仿真验证仿真验证 QuartusII设计流程设计流程图图1-37 1-37 时序仿真设置界面时序仿真设置界面5 5引脚锁定引脚锁定和硬件验证和硬件验证 QuartusII设计流程设计流程图图1-38 1-38 引脚
13、锁定对话框图引脚锁定对话框图5 5引脚锁定和硬件验证引脚锁定和硬件验证QuartusII设计流程设计流程图图1-31-39 9 设置设置USBUSB硬件端口硬件端口5 5引脚锁定和硬件验证引脚锁定和硬件验证 QuartusII设计流程设计流程图图1-40 1-40 下载界面下载界面5 5引脚锁定和硬件验证引脚锁定和硬件验证 QuartusII设计流程设计流程图图1-41 1-41 选择下载文件选择下载文件5 5引脚锁定和硬件验证引脚锁定和硬件验证 QuartusII设计流程设计流程图图1-42 led1-42 led灯闪烁的效果灯闪烁的效果1.3 分频器设计分频器设计分频器电路是非常有用的一种
14、电路,分频器电路是非常有用的一种电路,分频的方法很多,最常见的是利用加分频的方法很多,最常见的是利用加法计数器对时钟信号进行分频。法计数器对时钟信号进行分频。1.3 分频器设计分频器设计【例【例1-2】参数型参数型2n分频,占空比为分频,占空比为50%module divf_2powN(rst,clk,en,clk_N);input rst,clk,en;output clk_N;parameter N=2;regN-1:0 count;always(posedge clk)beginif(rst)count=0;else if(en)count=count+1;endassign clk_N
15、=countN-1;endmodule 1.3 分频器设计分频器设计【例【例1-3】参数型奇数分频,要求占空比为参数型奇数分频,要求占空比为50%moduledivf_oddn(clk,clk_N);input clk;output clk_N;parameter N=3;integer p,q;reg clk_p,clk_q;always(posedge clk)/N分频设计例分频设计例,体会其算法体会其算法(占空比占空比50%)begin if(p=N-1)begin p=0;clk_p=clk_p;end else p=p+1;endalways(negedge clk)begin if
16、(q=N-1)q=0;else q=q+1;if(p=(N-1)/2)clk_q=clk_q;endassign clk_N=clk_pclk_q;endmodule 图图1-43 1-43 任意奇数分频仿真波形任意奇数分频仿真波形1.3 分频器设计分频器设计【例【例1-4】参数型偶数分频,要求占空比为参数型偶数分频,要求占空比为50%module divf_even(clk,clk_N);input clk;output reg clk_N;parameter N=6;integer p;always(posedge clk)begin if(p=N/2-1)begin p=0;clk_N=
17、clk_N;endelse p=p+1;endendmodule图图1-44 1-44 任意偶数分频仿真波形任意偶数分频仿真波形1.3 分频器设计分频器设计【例【例1-5】可设置参数的任意整数分频器:占空比可变。可设置参数的任意整数分频器:占空比可变。module divf_parameter(rst,clk,en,clkout);input rst,clk,en;output clkout;integer temp;/最大值为最大值为2的的32次方次方parameter N=7,M=3;/N为分频系数为分频系数,M/N为占空比为占空比always(posedge clk)beginif(rs
18、t)temp=0;else if(en)if(temp=N-1)temp=0;else temp=temp+1;endassign clkout=(tempM)?1:0;endmodule图图1-45 1-45 占空比可变的任意整数分频仿真波形占空比可变的任意整数分频仿真波形 1.3 分频器设计分频器设计【例【例1-6】5.2小数分频,要求占空比小数分频,要求占空比50%module divf_decimal(clk,clk_26,clk_d);input clk;output reg clk_26;output reg clk_d;reg3:0 cnt1;reg1:0 cnt2,cnt3;a
19、lways(posedge clk)beginif(cnt14)/4times begin if(cnt21)begin cnt2=cnt2+1;clk_26=0;end else begin cnt2=0;clk_26=1;cnt1=cnt1+1;end end else /6times beginif(cnt22)begin cnt2=cnt2+1;clk_26=0;endelse begin cnt2=0;clk_26=1;cnt1=cnt1+1;endif(cnt1=10)cnt1=0;end endalways(posedge clk_26)clk_d=clk_d;endmodule
20、图图1-46 1-46 小数分频仿真波形小数分频仿真波形 1 1状态机的基本概念状态机的基本概念状态机的基本描述方式状态机的基本描述方式1.4 同步有限状态机设计同步有限状态机设计(1)状态转移图)状态转移图状态转移图是状态机描述的最自然的方式。状态转移图经常在设计规划阶段状态转移图是状态机描述的最自然的方式。状态转移图经常在设计规划阶段定义逻辑功能时使用,也可以在分析代码中的状态机时使用,通过图形化的方定义逻辑功能时使用,也可以在分析代码中的状态机时使用,通过图形化的方式非常有助于理解设计意图。式非常有助于理解设计意图。(2)状态转移列表)状态转移列表状态转移列表是用列表的方式描述状态机,是
21、数字逻辑电路常用的描述方法状态转移列表是用列表的方式描述状态机,是数字逻辑电路常用的描述方法之一,经常被用于对状态进行化简,对于可编程逻辑设计,由于可用逻辑资源之一,经常被用于对状态进行化简,对于可编程逻辑设计,由于可用逻辑资源比较丰富,而且状态编码要考虑设计的稳定性,安全性等因素,所以并不经常比较丰富,而且状态编码要考虑设计的稳定性,安全性等因素,所以并不经常使用状态转移列表优化状态。使用状态转移列表优化状态。(3)HDL 语言描述状态机语言描述状态机使用使用HDL 语言描述状态机是本章讨论的重点,使用语言描述状态机是本章讨论的重点,使用HDL 语言描述状态机既有语言描述状态机既有章可循,又
22、有一定的灵活性。通过一些规范的描述方法,可以使章可循,又有一定的灵活性。通过一些规范的描述方法,可以使HDL 语言描述语言描述的状态机更安全、稳定、高效、易于维护。在的状态机更安全、稳定、高效、易于维护。在Verilog HDL中可以用许多种方法中可以用许多种方法来描述有限状态机,最常用的方法是用来描述有限状态机,最常用的方法是用always块和块和case语句语句 1 1状态机的基本概念状态机的基本概念状态机的基本要素状态机的基本要素 1.4 同步有限状态机设计同步有限状态机设计(续续)(1)状态:也叫状态变量。在逻辑设计中,使用状态划分逻辑顺序和时序规律。比如:在设计空调控制电路时,可以以
23、环境温度的不同作为状态。(2)输出:输出指在某一个状态时特定发生的事件。如设计空调控制电路中,如果环境温度高于设定温度环境限值,则控制电机正转进行降温处理,如于环境温度低于设定温度环境限值,则控制电机反转进行升温处理。(3)输入:指状态机中进入每个状态的条件,有的状态机没有输入条件,其中的状态转移较为简单,有的状态机有输入条件,当某个输入条件存在时才能转移到相应的状态。1 1状态机的基本概念状态机的基本概念状态机的分类状态机的分类1.4 同步有限状态机设计同步有限状态机设计(续续)1 1状态机的基本概念状态机的基本概念同步状态机和异步状态机同步状态机和异步状态机 1.4 同步有限状态机设计同步
24、有限状态机设计(续续)【例1-7】使用异步状态机设计一个七进制减法计数器 图图1-48 1-48 七进制减法计数器七进制减法计数器1 1状态机的基本概念状态机的基本概念同步状态机和异步状态机同步状态机和异步状态机 1.4 同步有限状态机设计同步有限状态机设计(续续)【例1-7】使用异步状态机设计一个七进制减法计数器 图图1-49 1-49 七进制减法计数器框图七进制减法计数器框图图图1-50 1-50 例例1-71-7的仿真结果的仿真结果1 1状态机的基本概念状态机的基本概念同步状态机和异步状态机同步状态机和异步状态机 1.4 同步有限状态机设计同步有限状态机设计(续续)【例【例1-8】使用同
25、步有限状态机设计一个七进制减法计数器】使用同步有限状态机设计一个七进制减法计数器module cnt7_fsm(clk,Q);input clk;output2:0 Q;reg2:0 state;always(posedge clk)begin:FSM parameter s0=3d0,s1=3d1,s2=3d2,s3=3d3,s4=3d4,s5=3d5,s6=3d6,s7=3d7;case(state)s0:state=s1;s1:state=s2;s2:state=s3;s3:state=s4;s4:state=s5;s5:state=s6;s6:state=s7;s7:state=s0;
展开阅读全文