ISP在线编程技术2

上传人:野鹰 文档编号:3029275 上传时间:2017-07-29 格式:PPT 页数:66 大小:370KB
返回 下载 相关 举报
ISP在线编程技术2_第1页
第1页 / 共66页
ISP在线编程技术2_第2页
第2页 / 共66页
ISP在线编程技术2_第3页
第3页 / 共66页
ISP在线编程技术2_第4页
第4页 / 共66页
ISP在线编程技术2_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《ISP在线编程技术2》由会员分享,可在线阅读,更多相关《ISP在线编程技术2(66页珍藏版)》请在金锄头文库上搜索。

1、第二章 VHDL程序基本结构,本章重点:1、了解VHDL语言的程序设计风格2、掌握VHDL语言的程序基本结构3、掌握进程的设计方法和规则。4、可以设计简单的电路,第二章 VHDL程序基本结构,一个完整的VHDL语言程序通常可含有五个部分:实体(Entity):描述系统的外部接口信号结构体(Architecture):描述系统内部的结构和行为配置(Configuration):属性选项,描述层与层之间、实体与结构体之间的连接关系程序包(Package):属性选项,用于把共享的定义放置其中。具体讲,就是存放各模块都能共享的数据类型、常数、子程序等。库(Library):存放已编译的实体、构造体、包

2、集合和配置,可由用户生成或由ASIC芯片制造商提供。,2.2.1 VHDL语言设计的基本结构,VHDL程序基本单元,二选一电路,功能描述:当sel=1时,输出q=d0; 当sel0时,输出q=d1.,例1:一个二选一电路的VHDL描述:,ENTITY mux IS PORT(d0,d1,sel:IN STD_LOGIC; q :OUT STD_LOGIC);END mux;,ARCHITECTURE connect OF mux IS SIGNAL tmp1,tmp2,tmp3:STD_LOGIC; BEGIN tmp1=d0 AND sel; tmp2=d1 AND (NOT sel); q

3、=tmp1 OR tmp2;END connect;,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;,二选一电路的仿真波形图,sel,d0,d1,q,二选一电路的另外一种描述方法,ARCHITECTURE rtl OF mux2 ISBEGIN PROCESS(d0,d1,sel) BEGIN IF (sel =1)THEN q=d0; ELSE q=d1; END IF; END PROCESS;END rtl;,ENTITY mux IS PORT(d0,d1,sel:IN STD_LOGIC; q :OUT STD_LOGIC );END mux;,L

4、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;,1 实体说明,任何一个基本设计单元的实体说明都具有如下的结构(格式)ENTITY 实体名 IS 类属参数说明 端口说明END 实体名;,类属参数说明,在VHDL中它是传递信息参数到实体的术语例如实体是带上升和下降沿延时的门级模块,上升和下降延时值将由类属参数传给实体。类属参数的说明必须放在端口说明之前,用于指定参数例如在上例中的语句 GENERIC(m:TIME:1ns);指定m的值为1ns,这样语句:tmp1:= d0 AND sel AFTER m;表示d0和sel两个输入相与后,经1ns延迟才送到tmp1,

5、即GENERIC利用类属参数为tmp1建立了一个延时值。,二选一电路的VHDL描述:,ENTITY mux IS GENERIC (m:TIME:=1ns); PORT(d0,d1,sel:IN BIT; q :OUT BIT);END mux;ARCHITECTURE connect OF mux IS SIGNAL tmp:BIT; BEGIN cale:PROCESS(d0,d1,sel) VARIABLE tmp1,tmp2,tmp3:BIT; BEGIN tmp1:= d0 AND sel; tmp2:= d1 AND (NOT sel); tmp3:= tmp1 OR tmp2;

6、tmp= tmp3; q= tmp AFTER m; END PROCESS; END connect;,2) 端口说明,端口说明是对基本设计单元(实体)外部接口的描述也可以说是外部引脚信号的名称。数据类型和输入、输出方向的描述,其一般书写格式如下:PORT(端口名,端口名:方向 数据类型名; 端口名,端口名:方向 数据类型名);,端口名:,赋于每个外部引脚的名称,通常以1个或n个英文字母,或以字母打头后跟数字命名如上例中:d0、d1、sel、q。ENTITY mux IS PORT(d0,d1,sel:IN STD_LOGIC; q :OUT STD_LOGIC );END mux;,端口方

7、向:,定义外部引脚是输入还是输出,如IN、OUT表明方向的说明符如下:IN 输入,信号从端口进入结构体内;OUT 输出,信号从结构体内流经端口输出(构造体内不 再使用);INOUT 双向;BUFFER 输出,构造体可再使用;LINKAGE 不指定方向,无论哪一个方向都可连接,OUT、INOUT与BUFFER模式的区别:,OUT、INOUT与BUFFER模式的区别,OUT:仅允许数据流从实体内流向外; INOUT:驱动信号可以在实体内向外,也可在实体外向内,也允许用于内部反馈; BUFFER:输出(即驱动只能在实体内向外),但也可被用于内部反馈。,数据类型:规定描述对象的特征;,在VHDL语言中

8、有10种数据类型,但是在逻辑电路中通常用到的有四种:BIT、BIT_VECTOR、Boolean、Integer。BIT(位)和BIT_VECTOR(位矢量):当端口说明为BIT数据类型时,该端口的信号取值只可能是“1”或“0”。当端口被说明为BIT_VECTOR数据类型时,该端口的取值可能是一组二进制位的值。,PORT(d0,d1,d2,d3:IN BIT; sel:in BIT_vector (1 downto 0); q:out bit );,2 结构体(Architecture Body),结构体是一个基本设计单元的实体,它具体指明该基本设计单元的行为,单元内部的连接关系也就是定义了设

9、计单元具体的功能或内部操作特性。对结构体的描述方式有以下三种:行为描述数据流方式结构描述,结构描述:,描述该设计单元的硬件结构,即该硬件是如何构成的。主要使用配置指定语句、元件例化语句描述元件的类型及互连关系。行为描述:描述该设计单元的功能,即该硬件能做些什么。主要使用函数、过程或进程语句,以算法形式描述数据的变换和传送。,数据流方式:,又称RTL级方式,描述数据的传输和变换主要使用并行的信号赋值语句,即显示表示了该设计单元的行为也隐式表示了该设计单元的结构。,例如:二选一电路的数据流方式描述,ENTITY mux ISPORT(d0,d1:IN BIT; sel:IN BIT; q:OUT

10、BIT);END mux;ARCHITECTURE dataflow OF mux ISBEGIN Q=(d0 AND seL)OR(NOT seL)AND d1);END dataflow;,1) 结构体描述的一般格式:,ARCHITECTURE 结构体名 OF 实体名 IS 定义语句 包括:内部信号,常数,数据类型, 函数等的定义。 BEGIN 并行处理语句 包括:并行信号赋值语句,进程语句, 生成语句,元件例化语句。 END 结构体名;,例:,ARCHITECTURE connect OF mux IS SIGNAL tmp1,tmp2,tmp3:STD_LOGIC; BEGIN tmp

11、1=d0 AND sel; tmp2=d1 AND(NOT sel); q=tmp1 OR tmp2;END connect;,2) 结构体名称的命名,为了使阅读VHDL程序的人能了解设计者所采用的描述方式通常把采用的描述方式来对结构体名称进行命名。如:ARCHITECTURE structural OF mux IS如:ARCHITECTURE dataflow OF mux IS,3) 定义语句,定义语句位于ARCHITECTURE和BEGIN之间,用于对结构体内部所使用的信号、常数、数据类型和函数进行定义。例如:ARCHITECTURE behav OF mux ISSIGNAL nes

12、:BIT; BEGIN END behav;,4) 并行处理语句,在结构体中的语句都是可以并行执行的也就是说,语句的执行不以书写的语句顺序为执行顺序。并行处理语句位于结构体的BEGIN和END之间这些语句具体的描述了结构体的行为及其连接关系。,2.2.2 结构体的子结构描述,将整个电路分成若干个相对比较独立的模块来进行电路的描述一个结构体可以用几个子结构,即由几个比较独立的模块来构成VHDL语言可以有3种形式的子结构描述语句:BLOCK语句结构;PROCESS语句结构;SUBPROGRAM语句结构。,一、 BLOCK语句结构描述,1、 BLOCK语句的结构及书写格式块结构名:BLOCK BEG

13、IN END BLOCK 块结构名;,例2-3:采用BLOCK语句来描述二选一电路。,ENTITY mux IS PORT(d0,d1,sel:IN BIT; q:OUT BIT);END mux;ARCHITECTURE connect OF mux IS SIGNAL tmp1,tmp2,tmp3:BIT; BEGIN cale: BLOCK BEGIN tmp1= d0 AND sel; tmp2= d1 AND (NOT sel); tmp3= tmp1 OR tmp2; q= tmp3; END BLOCK cale;END connect;,2、 BLOCK语句的并发性,在对程序进

14、行仿真时BLOCK语句中所描述的各个语句是可以并行执行的它与书写顺序无关在VHDL语言中把这样可以并行执行的语句称为并发语句(Concurrent Statement)在结构体内直接书写的语句也是并发语句,3、 卫式BLOCK(Guard BLOCK),把一个结构体分为n个BLOCK,仅仅是把一个结构体设计划分成n个独立的程序模块,这和执行控制没有直接关系,因此,在系统仿真时,BLOCK语句将被无条件的并发执行。为了实行对BLOCK的执行控制,可以用卫式BLOCK即:当某一种条件得到满足时,BLOCK才可以被执行;而条件不满足时,该BLOCK将不被执行。,卫式BLOCK语句的格式为:,BLOC

15、K 卫式布尔表达式;当卫式布尔表达式为真如下例clk=1时,该BLOCK语句将被启动执行否则,BLOCK将不被执行。,例2-4:采用卫式BLOCK语句来描述D 触发器(注意:这是电平触发,即为锁存器,而不是寄存器。),ENTITY latch IS PORT(d,clk:IN BIT; q,qb:OUT BIT);END latch;ARCHITECTURE latch_guard OF latch IS BEGIN G1: BLOCK(clk=1) BEGIN q = GUARDED d AFTER 5ns; qb= GUARDED NOT(d)AFTER 7ns; END BLOCK G1;END latch_guard;,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号