第六章 时序逻辑电路的VHDL语言描述
- 格式:ppt
- 大小:754.50 KB
- 文档页数:21
VHDL语言的主要描述语句按照语句的执行顺序对VHDL语言进行分类,包含两类语句:●并行描述语句该语句的执行与书写顺序无关,总是同时被执行●顺序描述语句从仿真的角度,该语句是顺序执行的进程语句(PROCESS)是最典型的并行语句,一个构造体可以有几个进程语句同时存在,而且并发执行。
但是进程部的所有语句都是顺序语句。
一、顺序描述语句顺序描述语句只能用在进程和子程序中,它和其他高级语言一样,其语句是按照语句的出现的顺序加以执行的。
如下分别介绍有关的顺序描述语句.1.WAIT语句进程在执行过程中总是处于两种状态:执行或挂起,进程的状态变化受等待语句的控制,当进程执行到等待语句,就被挂起,并等待再次执行进程.等待语句的格式:*WAIT 无限等待*WAIT ON 敏感信号变化*WAIT UNTIL 条件满足*WAIT FOR 时间到(1)WAIT ON格式:WAIT ON 信号[,信号]例5-1PROCESS(a,b)BEGINy<=a AND b;END PROCESS;该例中的进程与下例中进程相同:例5-1PROCESSBEGINy<=a AND b;WAIT ON a,b;END PROCESS;例5-2PROCESS(a,b)BEGINy<=a AND b;WAIT ON a,b;END PROCESS;(2)WAIT UNTIL 直到条件满足格式: WAIT UNTIL 布尔表达式当进程执行到该语句时,被挂起;若布尔表达式为真时,进程将被启动.例: WAIT UNTIL ((x*10)<100)(3)WAIT FOR 等到时间到格式: WAIT FOR 时间表达式当进程执行到该语句时,被挂起;等待一定的时间后,进程将被启动.例: WAIT FOR 20 ns;WAIT FOR (a*(b+c);(4)多条件WAIT 语句例: WAIT ON nmi,interrupt UNTIL ((nmi=TRUE) OR (interrupt=TRUE)) FOR 5 us 该等待有三个条件:第一,信号nmi和interrupt 任何一个有一次刷新动作第二, 信号nmi和interrupt 任何一个为真第三, 已等待5 us只要一个以上的条件被满足,进程就被启动.*注意:多条件等待时,表达式的值至少应包含一个信号量的值。
《VHDL语言程序设计》课程教学大纲课程简介课程简介:本课程为软件工程专业嵌入式专业方向的专业课,是开发基于FPGA/CPLD嵌入式系统的必备基础。
主要内容包括FPGA/CPLD目标器件的结构和工作原理、EDA技术和工作流程、VHDL基础知识、VHDL实用方法和设计深入、原理图输入法、LPM宏功能模块实用方法、状态机设计以及EDA优化设计。
目的是为后续课程的学习和嵌入式系统的设计作必须的基础准备。
课程大纲一、课程的性质与任务:本课程是软件工程专业的专业方向课程。
教学任务主要包括使学生了解EDA技术的工作流程,正确使用开发平台,掌握以VHDL为代表的硬件描述语言的基本知识、编程实用方法和工程设计方法,掌握原理图设计法、状态机设计法,能够正确使用IP Core和LPM等宏功能模块。
本课程是软件工程专业嵌入式专业方向的第一门专业方向课,是后续课程的必备基础,具有较重要的地位。
二、课程的目的与基本要求:本课程涉及到的学科基础知识面广,要求软硬件兼备,需要较好的学科基础。
通过本课程的学习,最终达到能够设计基于FPGA/CPLD的ASIC,并能进行EDA优化的目的。
三、面向专业:软件工程四、先修课程:《计算系统基础》五、本课程与其它课程的联系:本课程的先行课程是计算系统基础。
服务的主要后续课程包括基于FPGA的嵌入式软件开发、基于ARM的嵌入式软件开发等。
六、教学内容安排、要求、学时分配及作业:第一章概述(2学时)1.1 EDA技术及其发展(C)1.2 硬件描述语言硬件描述语言种类、自顶向下设计方法、EDA工程设计流程。
(A)1.3 面向FPGA/CPLD的开发流程设计输入、分析综合、布局布线、仿真、下载和硬件测试。
(A)1.4 IP Core 及EDA技术发展趋势。
(C)第二章 FPGA硬件特性与编程技术(8学时)2.1 PLD发展历程及其分类(c)2.2 低密度PLD工作原理PROM、PLA、PAL、GAL。
GDOU-B-11-213《VHDL语言程序设计》课程教学大纲课程简介课程简介:本课程为软件工程专业嵌入式专业方向的专业课,是开发基于FPGA/CPLD嵌入式系统的必备基础。
主要内容包括FPGA/CPLD目标器件的结构和工作原理、EDA技术和工作流程、VHDL基础知识、VHDL实用方法和设计深入、原理图输入法、LPM宏功能模块实用方法、状态机设计以及EDA优化设计。
目的是为后续课程的学习和嵌入式系统的设计作必须的基础准备。
课程大纲一、课程的性质与任务:本课程是软件工程专业的专业方向课程。
教学任务主要包括使学生了解EDA技术的工作流程,正确使用开发平台,掌握以VHDL为代表的硬件描述语言的基本知识、编程实用方法和工程设计方法,掌握原理图设计法、状态机设计法,能够正确使用IP Core和LPM等宏功能模块。
本课程是软件工程专业嵌入式专业方向的第一门专业方向课,是后续课程的必备基础,具有较重要的地位。
二、课程的目的与基本要求:本课程涉及到的学科基础知识面广,要求软硬件兼备,需要较好的学科基础。
通过本课程的学习,最终达到能够设计基于FPGA/CPLD的ASIC,并能进行EDA优化的目的。
三、面向专业:软件工程四、先修课程:《计算系统基础》五、本课程与其它课程的联系:本课程的先行课程是计算系统基础。
服务的主要后续课程包括基于FPGA的嵌入式软件开发、基于ARM的嵌入式软件开发等。
六、教学内容安排、要求、学时分配及作业:第一章概述(2学时)1.1 EDA技术及其发展(C)1.2 硬件描述语言硬件描述语言种类、自顶向下设计方法、EDA工程设计流程。
(A)1.3 面向FPGA/CPLD的开发流程设计输入、分析综合、布局布线、仿真、下载和硬件测试。
(A)1.4 IP Core 及EDA技术发展趋势。
(C)第二章 FPGA硬件特性与编程技术(8学时)2.1 PLD发展历程及其分类(c)2.2 低密度PLD工作原理PROM、PLA、PAL、GAL。
前几节,我们讲解的都是组合逻辑电路。
通过这些组合逻辑电路,我们初步掌握了VHDL常用的语法结构。
从这节开始,我们要介绍时序电路了。
(其实我们没有刻意去分组合和时序,只是觉的前面组合讲的多点,后面可能会多讲些时序电路而已。
对小平爷爷曾经说过:不管黑猫,白猫,只要能捉到老鼠的猫就是好猫。
所以不论时序,组合,还是时序和组合的混合体,只要能实现功能的就是好程序!)说一下概念:异步和同步。
这是时序电路的两大类。
同步就是电路的触发器由同一个时钟信号驱动,在同一个时刻翻转;而异步就是不在同一个时刻翻转。
大多数编程器的的内部结构是同步时序逻辑电路。
我们以时序电路的基础单元D触发器说起。
上升沿D触发器逻辑符号:由功能表可知,一个D触发器有一个异步置零端Rd,异步置1端Sd,只要Rd或Sd有效(低电平),则D触发器就会立即复位或则置1操作,复位与置1操作是与是时钟无关的,是异步的,有一个输入端D,一个时钟输入端CP,有两个互补的输出端Q和Q源代码:(工程见example中的D_FF文件夹)逐行解释:19~33:是一个有嵌套的IF结构。
这个IF结构就是按照功能表的顺序来写的。
25:是一条功能表没有的语句,在这种情况下,信号输出不确定,即用’X’来表示。
这儿要考虑到选择信号的完备性:Rd和Sd的组合会形成4种可能,若没有第25句的话,那么28~32可在Rd=’0’且Sd=’0’和Rd=’1’且Sd=’1’两种情况下运行。
这个是不符合功能要求的。
这里提醒大家一句:编写程序,不仅仅是VHDL程序,心一定要细。
29:用到了一个内置函数rising_edge(),即表示信号的上升沿,相对的就是falling_edge()。
该句等同于(if CP’event and CP=’1’),意思是CP上有事件发生,且事件发生后CP是高电平。
(事件无非就是上升和下降,若事件后是高电平,那就是上升沿发生了!)这两个函数在以后会经常用到的。
注意:因为是Sd,Rd是异步信号,即该信号不等待时钟的某一状态,而是直接起作用。
VHDL 基础语法篇——VHDLVHDL硬件描述语言1。
1 VHDL概述1。
1。
1 VHDL的特点VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原语句,如if语句、子程序和函数等,便于阅读和应用。
具体特点如下:1。
支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下(top—down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。
2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数据传送.利用单元(componet)、块(block)、过程(procure)和函数(function)等语句,用结构化层次化的描述方法,使复杂电路的设计更加简便。
采用包的概念,便于标准设计文档资料的保存和广泛使用。
3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。
既支持预定义的数据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类型语言。
4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构和行为状态。
1.1.2 VHDL语言的基本结构VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。
但是VHDL毕竟是一种描述数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者感到枯燥无味,不得要领.较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整体的程序结构,再逐步介绍程序中的语法概念。
VHDL (VHSIC Hardware Description Language) is like the architect's blueprint for digital systems. It's a language that hardware engineers use to paint a vivid picture of how these systems are structured and how they behave. Think of it as a virtual playground where designers can play around with digital logic circuits before they bring them to life. With VHDL, they can test and verify their creations, ensuring that everything runs smoothly before it's time to hit the hardware. In other words, VHDL is the ultimate tool for digital wizards to work their magic and bring their ideas to life!VHDL(VHSIC硬件描述语言)就像建筑师的数字系统蓝图。
这种语言是硬件工程师用来描绘这些系统的结构及其表现的生动画面。
把它当作一个虚拟游乐场,设计者可以在带他们复活前用数字逻辑电路来游玩。
通过VHDL,他们可以测试和验证他们的创造,确保一切在击中硬件之前顺利运行。
VHDL是数位魔法师运用魔法,将想法带入生命的终极工具!One of the coolest things about VHDL is that it lets you test out your digital creations virtually before you actually build them. It's like a digital playground where you can play around with your ideas and see how they behave without spending a ton of money on physical prototypes. And the best part? You cancatch any design boo-boos early on and make sure everything is working smoothly. Not only that, VHDL also lets you create these little building blocks, kind of like digital Legos, that you can easily snap together to make bigger and better designs. It's like having a superpower for makingplex digital systems with lots of parts moving at the same time. So basically, VHDL is like the superhero of digital design – making things faster, cheaper, and a whole lot more fun!VHDL最酷的一件事就是它让你在实际建造之前测试你的数字创造。
VHDL详细语法教程VHDL(Very High Speed Integrated Circuit HardwareDescription Language)是一种硬件描述语言,用于对数字电路进行描述、建模和仿真。
它是一种用于描述数字系统结构和行为的语言,广泛用于FPGA(Field Programmable Gate Array)和ASIC(ApplicationSpecific Integrated Circuit)设计中。
VHDL语言具有丰富的语法结构,可以描述数字系统的结构和行为,并可以进行仿真和综合。
下面是VHDL语言的详细语法教程:1. 实体声明(Entity Declaration):VHDL代码的第一部分是实体声明,用于定义设计的接口和名称。
实体声明是设计的顶级结构,它包含输入输出端口的定义。
语法格式如下:```vhdlentity entity_name isportport_name : in/out type;port_name : in/out type;...end entity_name;```其中,entity_name为实体名称,port_name为端口名称,type为端口类型,in表示输入端口,out表示输出端口。
2. 结构体声明(Architecture declaration):在实体声明后,需要定义该实体的结构和行为。
这一部分被称为结构体声明。
语法格式如下:```vhdlarchitecture architecture_name of entity_name issignal signal_name : type;...begin...end architecture_name;```3. 信号声明(Signal declaration):信号用于在VHDL代码中传输数据。
通过信号声明,可以定义存储或传输数据的变量。
信号声明需要在结构体声明的前面进行。
语法格式如下:```vhdlsignal signal_name : type;```其中,signal_name为信号名称,type为信号类型。