EDA技术实用教程 第2版 李洋 第五章VHDL新.pptVIP

EDA技术实用教程 第2版 李洋 第五章VHDL新.ppt

  1. 1、本文档共155页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程总体内容: VHDL程序的基本组成 (一)参数部分——程序包 (二)接口部分—设计实体 (二)接口部分—设计实体 (三)描述部分—结构体 对象:是一个或多个代表着对象种类的字符串,多个对象时用“,”号分开。 VHDL数据类型(Data Type) 信号可被看作两个元件之间数据传输的通路。 程序1: ENTITY mux2_1 IS   PORT(a,b:IN BIT;       s:IN BIT;   y:OUT BIT); END ENTITY mux2_1; 在所有的并行语句中,两个以上的并行赋值语句在字面上的顺序并不表明它们的执行顺序。 例如: 仍以四路数据选择器为例,采用WHEN –ELSE条件信号赋值语句实现结构体。VHDL程序如下。 BEGIN PROCESS(A) BEGIN TMP =‘0’; FOR N IN 0 TO 7 LOOP TMP =TMP XOR A(N); END LOOP; Y= TMP; END PROCESS; END ART; 第5章 VHDL硬件描述语言(core content) 【例5.4.4】 WHILE_LOOP语句的使用。 SHIFT1: PROCESS(INPUTX) VARIABLE N: POSITIVE:=1; BEGIN L1: WHILE N=8 LOOP --这里的“=”是小于等于的意思 OUTPUTX(N)=INPUTX(N+8); N:=N+1; END LOOP L1; END PROCESS SHIFT1; 第5章 VHDL硬件描述语言(core content) (5)NEXT 语句 NEXT语句主要用在LOOP语句执行中有条件的或无条件的转向控制。它的语句格式有以下三种: NEXT [LOOP 标号] [WHEN 条件表达式]; 当LOOP 标号缺省时,则执行NEXT 语句时,即刻无条件终止当前的循环,跳回到本次循环LOOP语句开始处,开始下一次循环,否则跳转到指定标号的LOOP语句开始处,重新开始执行循环操作。若WHEN子句出现并且条件表达式的值为TRUE,则执行NEXT语句,进入跳转操作,否则继续向下执行。 第5章 VHDL硬件描述语言(core content) 【例5.4.5】 … L1: FOR CNT_VALUE IN 1 TO 8 LOOP S1:A(CNT_VALUE):=‘0’; NEXT WHEN (B=C); S2 :A(CNT_VALUE+8):=‘0’; END LOOP L1; 第5章 VHDL硬件描述语言(core content) (6)EXIT语句 EXIT语句也是LOOP语句的内部循环控制语句,其语句格式如下: EXIT [LOOP 标号] [WHEN 条件表达式]; 这里,每一种语句格式与前述的NEXT 语句的格式和操作功能非常相似,惟一的区别是NEXT语句是跳向LOOP 语句的起始点,而EXIT语句则是跳向LOOP语句的终点。 下例是一个两元素位矢量值比较程序。在程序中,当发现比较值A和B不同时,由EXIT语句跳出循环比较程序,并报告比较结果。 第5章 VHDL硬件描述语言(core content) 【例5.4.6】 SIGNAL A,B:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL A_LESS_THEN_B:BOOLEAN; … A_LESS_THEN_B=FLASE; --设初始值 FOR I IN 1 DOWNTO 0 LOOP IF (A(I)=‘1’ AND B(I)=‘0’) THEN A_LESS_THEN_B=FALSE; EXIT; 第5章 VHDL硬件描述语言(core content) ELSIF (A(I)=‘0’ AND B(I)=‘1’) THEN A_LESS_THEN_B=TRUE; --AB EXIT; ELSE; NULL; END IF; END LOOP;

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档