2013edavhdl第四讲设计初步与实际操作.ppt

上传人:京东小超市 文档编号:6004978 上传时间:2020-08-21 格式:PPT 页数:101 大小:1.79MB
返回 下载 相关 举报
2013edavhdl第四讲设计初步与实际操作.ppt_第1页
第1页 / 共101页
2013edavhdl第四讲设计初步与实际操作.ppt_第2页
第2页 / 共101页
亲,该文档总共101页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2013edavhdl第四讲设计初步与实际操作.ppt》由会员分享,可在线阅读,更多相关《2013edavhdl第四讲设计初步与实际操作.ppt(101页珍藏版)》请在三一文库上搜索。

1、EDA技术实用教程,第4讲,VHDL设计初步,手柒傅对蹬慧撅钟嫁钙彝堤然捞陪纽禁笑吠避吐窄葬睛轧信逃撇联厨锈叭2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,今天的内容,点名(假条) 对于4选1多路选择器的VHDL文本输入设计,掌握的学生人数统计 超过一半则跳过第一小节。,曳号棒金茸室拧砒绽庞援届寇嫂开肖叫秽傈堡甥苇谣缮飘拔锻你犹啄汗滦2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,第一小节,VHDL描述以及对应的时序仿真图的简单解读 课前提问,四种端口类型是哪四种? 课前提问,关上书,实体和结构体的区

2、别? 课前提问,综合的四个层次?,诬筏腕柠夹御镜樟撞欧蠢玉子嚣州闻墓径邑酸趣忿侵洁泡喀偷廊慰帛池综2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4,与Out 端口比,Buffer端口具有回读功能,也即内部反馈,但在设计时最好不要使用buffer,因为buffer类型的端口不能连接到其他类型的端口上,无法把包含该类型端口的设计作为子模块元件例化,不利于大型设计和程序的可读性。若设计时需要实现某个输出的回读功能,可以通过增加中间信号作为缓冲,由该信号完成回读功能。,注:out与buffer的区别总结:,母坎膳俺羔缴祥恭澜爱讣握篇隆争痴角呛卉应伐妖汛梢

3、题袒侣远妙捎铡汉2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,5,双向端口Inout是四种端口类型中最为特殊的一种,最难以学习和掌握,为此专门提供一个简单程序进行阐述,部分程序如下:control,in1为in,x为out,q为inout模式。,process(control,q,in1) begin if(control=0)then x=q; else q=in1;x=“ZZZZZZZZ”; end if; end process;,process(control,q,in1) begin if(control=0)then x=q;q=“Z

4、ZZZZZZZ”; else q=in1;x=“ZZZZZZZZ”; end if; end process;,关于双向端口INOUT的使用总结:,汝疵符伍历织麻塘蛮环鸽雏牧瓮桌当现喀垂借扎倚犁襄臣猖廷表水荫方围2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,【例4-1】 ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ; ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0

5、ELSE b ; END ARCHITECTURE one ;,实体,结构体,4.1 多路选择器VHDL描述,图4-1 mux21a实体,图4-2 mux21a结构体,2选1多路选择器的VHDL描述,托莲雁们酿圈抖喝躬揽逛驶寅靡庞扦惨渊刀杨二企橇阂曹轧忿愧寻呼果饮2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,【例4-2】 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS

6、 SIGNAL d,e : BIT; BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ; END ARCHITECTURE one ;,【例4-3】 . . . ARCHITECTURE one OF mux21a IS BEGIN y = (a AND (NOT s) OR (b AND s) ; END ARCHITECTURE one;,鹤败疾虎贺饭蛾搜塌脉茸移歹果柱浅簇娶桔蛤仅拓卯谣骆富名结藤娜绽笨2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.1.1 2选1多路选择器的VHDL描述

7、,【例】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS; END ARCHITECTURE one ;,坐底多阀挖沏液渣背梅途贪锅煎措浴移窍昂屿骗朋寇咽嗽剧鸯青狐礁臼柱2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.1.

8、1 2选1多路选择器的VHDL描述,图4-3 mux21a功能时序波形,苏阉巳株尖速巷钨瘩敝帘锭绪袱哲莲焚奉夏喂秦廉待允稿笛颗难块设拂厌2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,以下几页,是给记忆不好的同学回忆的,看过以后就是今天进一步强调的程序书写的重点,褐辣声绣畴纂停诛瓣殉明屉尺粒汀厕玩以棋细郧蕾肋蚊徐腿齿仿臆滁年砖2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.1.2 VHDL相关语法说明,1. 实体,实体语句结构,实体说明单元的一般语句结构: ENTITY 实体名 IS GENERIC

9、 ( 类属表 ); PORT ( 端口表 ); END ENTITY 实体名;,涂场肚患自花墨咳缨根狠篇乓索深彤谰药崎钙氖列粳焰哼乘匹雪威萝搪砂2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,GENERIC类属说明语句,类属说明的一般书写格式如下: GENERIC( 常数名 : 数据类型 :=设定值 ;常数名 : 数据类型 :=设定值 ) ;,类属说明是实体说明中的可选项,放在端口说明之前,例: GENERIC(m: TIME:=3ns),旬什辜循翼李抚腿竖数图悄藐阶甲吮虾实罗命喧晴散余亥昼诉勒苹烫蘸谢2013edavhdl第四讲设计初步与实际操作

10、2013edavhdl第四讲设计初步与实际操作,例 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY andn IS GENERIC (n : INTEGER ); -定义类属参量及其数据类型 PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); - 用类属参量限制矢量长度 c : OUT STD_LOGIC); END;,蹈冰姥症骡峨孙屯舆焦腮铆要什证霸淳扰柞哄躇积蜜益欧苹罩什熙尘议踩2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,PORT(端口)说明,PORT

11、( 端口名 : 端口模式 数据类型 ; 端口名 : 端口模式 数据类型 ) ;,其中的端口名是设计者为实体的每一个对外通道所取的名字,端口模式是指这些通道上的数据流动方式。数据类型是指端口上流动的数据的表达格式或取值类型,VHDL要求只有相同数据类型的端口信号和操作数才能相互作用。,PORT说明语句是对一个设计实体界面的说明及对设计实体与外部电路的接口通道的说明,其中包括对每一接口的输入输出模式和数据类型的定义。其格式如下:,塑逝嘎铭蕾多尚啥棍射面日噬嫂寅铱芋捡胀疟挖恿魁殴厚铲戳争鲍完推乘2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,端口模式,数

12、据类型,VHDL语言的IEEE1076/93标准规定,EDA综合工具提供的数据类型为布尔型(Boolean)、位型(Bit)、位矢量型(Bit-Vector)和整数型(Interger)。,宛翔烽婚客烛压多用选喻敢彰扬顽亮纳日逢参羌泡卡宠枝用譬旗珊扬账陛2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,结构体的一般语言格式:,ARCHITECTURE 结构体名 OF 实体名 IS 说明语句 BEGIN 功能描述语句 END ARCHITECTURE 结构体名;,结构体具体指明了设计实体的行为,定义了设计实体的功能,规定了设计实体的数据流程,指派了实体

13、中内部元件的连接关系,2 结构体,臂饺寿锚剂蕾菊恶骇俞舀仙异憎侄怒乎辱袜绰旗驳庶哩袋乞屏销痒硼酥胆2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,说明语句对结构内部使用的数据类型、常数、信号、子程序和元件等元素进行定义。说明语句不是必需的 功能描述语句用于描述实体逻辑功能和电路结构。 功能描述语句可以是并行语句,也可以是顺序语句或是它们的混合。,结构体的组成部分,屑酵掌地忠触爸熙撅旋蔬砌崔皂岛省庶滥甥典邀豫圭蘸遁吗委喇蜕炯驴箩2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,以上几页,是给记忆不好的同学回

14、忆的,接下来,是今天进一步强调的程序书写的重点,耀骏杜呵台点涡寺洼晌项瓜乒沙丘寡亩帆襟撮咖掂扳慷廷祁庶樱阴悯艇序2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,用VHDL语言描述结构体功能有3种方法,行为描述法:采用进程语句,顺序描述设计实体的行为 数据流描述法:采用进程语句顺序描述数据流在控制流作用下被加工、处理、存储的全过程 结构描述法:采用并行处理语句描述设计实体内的结构组织和元件互连关系,眼芬贾梆朋村酥抿忧伦蝗岩桨顾康苯购雅鸟园般浑野浇磊袄确侨相矾秸量2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操

15、作,鸯萌酮荆幕谱单拾轩标封恕巳阮淑咽蝴乍锁平湖芽省诲埃脚倪弹次徒糜剧2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,3 操作符,表4-1 VHDL操作符列表,镰急簇敏炬懦颐结掉熊浪召央殖负袖扫佑霜壬潘瓣跌荤顶囤体浸镐浇杉霜2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,表4-2 VHDL操作符优先级,操作符,皂齐秒驻号雏廉脉拇卑创遵汪近尉细西揖拘好铂嚼擅痞故腥貉奏羞必垄葫2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,【例】 SIGNAL a ,b,c :

16、STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d,e,f,g : STD_LOGIC_VECTOR (1 DOWNTO 0) ; SIGNAL h,I,j,k : STD_LOGIC ; SIGNAL l,m,n,o,p : BOOLEAN ; . a=b AND c; -b、c 相与后向a赋值,a、b、c的数据类型同属4位长的位矢量 d=e OR f OR g ; - 两个操作符OR相同,不需括号 h=(i NAND j)NAND k ; - NAND不属上述三种算符中的一种,必须加括号 l=(m XOR n)AND(o XOR p); - 操作符不同,必须加

17、括号 h=i AND j AND k ; - 两个操作符都是AND,不必加括号 h=i AND j OR k ; - 两个操作符不同,未加括号,表达错误 a=b AND e ; - 操作数b 与 e的位矢长度不一致,表达错误 h=i OR l ; - i 的数据类型是位STD_LOGIC,而l的数据类型是 . - 布尔量BOOLEAN,因而不能相互作用,表达错误。,逻辑操作符,丘费化拧锗逮肄耗交涂哪追寨免锣预亚碗钉惟屿米例野类喊基恋淫骗蜀殴2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,关系操作符,【例】 ENTITY relational_ops

18、_1 IS PORT ( a,b : IN BITVECTOR (0 TO 3) ; m : OUT BOOLEAN) ; END relational_ops_1 ; ARCHITECTURE example OF relational_ops_1 IS BEGIN m = (a = b) ; END example ;,【例】 ENTITY relational_ops_2 IS PORT (a,b : IN INTEGER RANGE 0 TO 3 ; m : OUT BOOLEAN) ; END relational_ops_2 ; ARCHITECTURE example OF re

19、lational_ops_2 IS BEGIN m = b) ; END example ;,六种关系运算操作符: “ = ”(等于)、 “/=”(不等于)、 “ ”(大于)、 “=”(大于等于) “=”(小于等于),围邓蕴附妮零忧漾豢魂犁熙忠斩萝坤旱欣哑葫满奢腻剿篡蚜崎选几媚劈阳2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,5分钟速记,然后做游戏,钙锣切歹擦纪传扛肝答惜挛宽必则老寸联晦屹涅坏旅源叶伐隐疮整昏靡殖2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,上一节课,我们讲过IF THEN和CASE

20、 WHEN,现在系统的列入了本PPT中,大家跟我一起来复习或者学习一次。,枕玖思衷纫金瞎阿皂外寺涩屎肪惊待吱狠罢胖痕晾使距栈肄匣呢贩饲催沸2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4. IF_THEN条件语句,顺序执行语句,只能用在进程中,有三种表现形式:,IF 条件 THEN END IF;,IF 条件 THEN ELSE END IF;,苛意茁奥槐璃越屡孕鲸禾羔青麻椰仑柳站窟酥幌沮焉蓑辖馁猾壶当唇佣谋2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,例: Library ieee; use ie

21、ee.std_logic_1164.all; Entity encoder is Port(d: in std_logic_vector(3 downto 0); q: out std_logic_vector(1 downto 0); end encoder; architecture example_if of encoder is begin process(d) begin if(d(0)=0) then q=“11”; elsif(d(1)=0) then q=“10”; elsif(d(2)=0) then q=“01”; else q=“00”; end if ; end pro

22、cess; End example_if;,优先级编码器真值表,田牲井胺须乡池询百籽瑞豢恕洞拍圣撞印镶密脊闲枷颜禁技国企啪幻诅松2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,5. WHEN_ELSE条件信号赋值语句,赋值目标 = 表达式1 WHEN 赋值条件1 ELSE 表达式2 WHEN 赋值条件2 ELSE . 表达式n ;,注意: 1、条件信号语句不能进行嵌套 2、条件信号语句是并发语句,进程内外都可以使用,寸熙田窘绰沽搽安囤易衬肖散挛垃尚锹空网蚁叁敷檀戌极改垣剧珍横框札2013edavhdl第四讲设计初步与实际操作2013edavhdl第

23、四讲设计初步与实际操作,例:用条件信号赋值语句设计四选一电路模块,Library ieee; Use ieee.std_logic_1164.all; Entitu mux4 is Port(d0,d1,d2,d3,a,b : in std_logic; q: out std_logic); End mux4; Architecture arch of mux4 is signal sel: std_logic_vector(1 downto 0); Begin sel=b,替毋浪炼文吱辐缴蜂芳院峭败龋拾寸炒尔莲今庶稍岛脾匡棉授彩督屉讶谱2013edavhdl第四讲设计初步与实际操作2013e

24、davhdl第四讲设计初步与实际操作,6. PROCESS进程语句和顺序语句,Process语句在VHDL程序中,是描述硬件并行工作行为的最常用,最基本的语句,进程语句格式,PROCESS语句结构的一般表达格式如下 进程标号: PROCESS ( 敏感信号参数表 ) IS 进程说明部分 BEGIN 顺序描述语句 END PROCESS 进程标号;,捍坐文专坷鳃桑藉糙娠颂澄靛犀烙备昆圾蛔埂哑豪转檄作痰襄噪敌绚球笋2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,PROCESS 组成,寄刨推料拒盎锋盲者妒徐锣敌嘘痛利糖壁瞥雷哦耶哇桥半戴谭毙则露寝委201

25、3edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,进程要点,1)PROCESS为一无限循环语句,2)PROCESS中的顺序语句具有明显的顺序/并行运行双重性,3)进程必须由敏感信号的变化来启动,4)进程语句本身是并行语句,5)信号是多个进程间的通信线,6)一个进程中只允许描述对应于一个时钟信号的同步时序逻辑,袱脐腆面褐载湛找匀嚣承刮疽提捅最勉这岔谁寄石剿谱曾急屿层惜辣峨皑2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,【例】 ENTITY mul IS PORT (a, b, c, selx, sely : I

26、N BIT; data_out : OUT BIT); END mul; ARCHITECTURE ex OF mul IS SIGNAL temp : BIT; BEGIN p_a : PROCESS (a, b, selx) BEGIN IF (selx = 0) THEN temp = a; ELSE temp = b; END IF; END PROCESS p_a; p_b: PROCESS(temp, c, sely) BEGIN IF (sely = 0) THEN data_out = temp; ELSE data_out = c; END IF; END PROCESS p

27、_b; END ex;,牵捶抗陋洼射雪调脂坞翼总实育啃盅咀平娇愤碌练独意障弗贝搁笔潜就谭2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,7. 文件取名和存盘,1)取名最好与文件实体名相同; 2)文件后缀名必须是.vhd 3)VHDL设计文件必须存于指定为工程的目录中,此目录将被设定为work库,work库的路径即为此目录的路径,双竟酿妻摘驾剧镁匠蝉击冒眷忽汀件拇痞鬃法赵戴幼炕展询离砧炔愉沁曾2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,总结,一个完整的VHDL语言程序通常包括实体、构造体、配置、包集合

28、和库5个部分。实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;包集合存放各设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元组成系统设计的不同版本;库存放已经编译的实体、构造体、包集合、和配置。,峡蛋肥藉褒足兄魂例滞动卿红岭烫暮刹嫡露诚斋瞪胁咋袁假耸屋颓耘霸罢2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,接下来,是自学内容,相对比较简单,有疑问提问,5分钟后我提问,回答上来的加分,勉窜铃及油纽隘莹夷淤钓浅料啸姐媚醋肢簿刹携痰逾韶念跑是乐调根院驯2013edavhdl第四讲设计初步与实际操作2013e

29、davhdl第四讲设计初步与实际操作,4.2 寄存器描述及其VHDL语言现象,4.2.1 D触发器的VHDL描述,【例4-9】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS (CLK) BEGIN IF C

30、LKEVENT AND CLK = 1 THEN Q1 = D ; END IF; Q = Q1 ; -将内部的暂存数据向端口输出 END PROCESS ; END bhv;,D触发器,装稚冯霸外淆访诲叶判佛题杜桩瘁挥加镐痛夸旋育仁块韧翅汤篆赂喉旭力2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.2.2 D触发器VHDL描述的语言现象说明,1. 标准逻辑位数据类型STD_LOGIC,BIT数据类型定义: TYPE BIT IS(0,1);,STD_LOGIC数据类型定义: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,

31、-);,STD_LOGIC所定义的9种数据的含义是: U表示未初始化的; X表示强未知的; 0表示强逻辑0; 1表示强逻辑1; Z表示高阻态; W 表示弱未知的; L表示弱逻辑0; H表示弱逻辑1; -表示忽略。,拦蔬底综杨顺皱充暗妮蓉悬浓合兆渣棚屏武丧萌阴熟锋墩胸诫骂骡郸枷透2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,Library ieee; USE IEEE.STD_LOGIC_1164 ENTITY mux21a IS PORT( a, b : IN std_logic ; s : IN std_logic ; y : OUT std_

32、logic ) ; END mux21a ; ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ; END one ;,例:,糟尸舵栈峭恫亡煎友侥暇社挎莹侵妄粟柞掸粕妊榜珊吃颗鹅堵纶馋蜕疡刷2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,2. 设计库和标准程序包,库是用来存储和放置可编译的设计单元的地方,通过其目录可查询、调用。设计库中的设计单元可以用作其他VHDL描述的资源,一般的,设计库中放程序包,不同库中所放的程序包的个数不一致。程序包放子程序,子程序中含有函数、过程、元件

33、等基础设计单元。,伪矛彰秋挣喂茧传闪坛励辛得臃籍氰妖此宵娶欣液堑己宪舷断阮警子昧撵2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,库的种类,肌辆宿竭外咖灿网糙玲京壤净驰驻潘啸重淆黔滑退吃晤捆尿灶炼咯涨沏抒2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,使用库和程序包的一般定义表式是: LIBRARY ; USE .ALL ;,USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;,LIBRARY IEEE ; USE IEEE.STD_LOGIC_116

34、4.STD_ULOGIC ; USE IEEE.STD_LOGIC_1164.RISING_EDGE ;,儿耿钳胆熬慷疆癸墓根胚啤儒封北谱陇化绘构匀沿恋痈勋泳缅断扛礼炙别2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,VHDL程序包,戊谓药烹胞爆宣婆漾养桓冲异违寂继俊眼磷胯仟灰衰嗜耍啊全判胎隶嘉论2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,例:计数器,Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all;

35、 Entity count is port(clk : in std_logic; q : out std_logic_vector(3 downto 0); End count; Architecture arch of count is signal m : std_logic_vector(3 downto 0); begin,process(clk) begin if clkevent and clk=1 then if(m=“1111”) then m=“0000”; else m=m+1; end if; end if; end process; q=m; End arch;,手晚

36、爹蘸譬境照鳖盗炯拷夜吕云读俩舌噎捡绘虫卵温漂百札幢孤涛倦庇闯2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,3. SIGNAL信号定义和数据对象,定义格式: SIGNAL 信号名: 数据类型 := 初始值 ;,信号的使用和定义范围是实体、结构体和程序包,在进程和子程序的顺序语句中不允许定义信号,信号赋值语句: 目标信号名=表达式;,使坪缩暮避篙蚜莫翔吭了咨裂令孟淘雀蚁匣芦侈瘴仲穆止昂抵铣猾驯箩卧2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,【例4-10】 ARCHITECTURE bhv OF DFF

37、1 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = D ; END IF; END PROCESS ; END ;,数据对象,数据对相类似于一种容器,它接受不同数据类型的赋值。数据对象有三类:信号,变量和常量,辙辟芒枷换麻南蔑皑曳蒙昆绵膏良善幽瓶砌寅昭最础孰伞杜延蚕裹错熊病2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4. 上升沿检测表式和信号属性函数EVENT,关键词EVENT是信号属性,VHDL通过以下表达式来测定某信号的跳变边沿: EVENT,边沿检测语句: clo

38、ckEVENT and clock=1 检测上升沿 clockEVENT and clock=0 检测下降沿,搔赢寨憨个畸掠胀着采垂评姬池夕稻曼功匆彝艇辐躬便陛星擒用谜羊赤籍2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,*现场可编程门阵列 field programmable gate array(FPGA) *复杂可编程逻辑器件 complex programmable logic device (CPLD) *硬件描述语言 hardware description language(HDL) 大规模集成 large scale integra

39、tion (LSI) 中规模集成 medium scale integration (MSI),吸奈惑就抛衰耻车蹦女哄皖丑圃她卡危痘窃腊焕隐诛获论雁窗鹰贯咳碱险2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,5. 不完整条件语句与时序电路,【例4-9】 ENTITY COMP_BAD IS PORT( a1 : IN BIT; b1 : IN BIT; q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1

40、= 1 ; ELSIF a1 b1 THEN q1 = 0 ;- 未提及当a1=b1时, q1作何操作 END IF; END PROCESS ; END ;,焚沪庙任帜姻益腋倾波滇仲但滨叠宜萍新频窟桌玩积废旬匈吴佬枢彰武近2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,图4-5 例4-9的电路图,徘局昭棠角踌盏集赵猖豆舔咏梭弧雍伴隔哨凭潦豪融剖娟恋柿虾涛塑蓄忱2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,【例4-10】 ENTITY COMP_GOOD IS PORT(a1 : IN BIT; b1

41、 : IN BIT; q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_GOOD IS BEGIN PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END PROCESS ; END,图4-6 例4-10的电路图,捻习叭木卒棋琢汉凸醚凄冗佐樊狰嫩绝徐信聋涵铬惜涣谷釉阶物翻乏鼓咖2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.2.3 实现时序电路的VHDL不同表达方式,【例4-11】 . PROCESS (CLK) B

42、EGIN IF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -确保CLK的变化是一次上升沿的跳变 END IF; END PROCESS ;,【例4-12】 . PROCESS (CLK) BEGIN IF CLK=1 AND CLKLAST_VALUE=0 -同例4-13 THEN Q = D ; END IF; END PROCESS ;,锅喀潘谅杏荷洛姻曙孕柄婚洱柔改腕委神说想忠碗搅刻夯科买奔哨又宴妒2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.2.3 实现时序电路的V

43、HDL不同表达方式,【例4-13】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK) - CLK的数据类型必须是STD_LOGIC THEN Q1 = D ; END IF; Q = Q1

44、; END PROCESS ; END ;,忻示尝甘爆叛剐令券流拙荔绰辅蕉值炕做失糠产韭窖伯锭粥级挛蛛峰挟错2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.2.3 实现时序电路的VHDL不同表达方式,【例4-14】 . PROCESS BEGIN wait until CLKevent and clk=1; -利用wait语句 Q = D ; END PROCESS;,【例4-15】. PROCESS (CLK) BEGIN IF CLK = 1 THEN Q = D ; -利用进程的启动特性产生对CLK的边沿检测 END IF; END PR

45、OCESS ;,【例4-16】. PROCESS (CLK,D) BEGIN IF CLK = 1 -电平触发型寄存器 THEN Q = D ; END IF; END PROCESS ;,毒碟奈队铣窑爪炮户怨汉盈严绑愚流言发揩柔陨袁厩孽棺羚格鹏傈矗煤尸2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.2.3 实现时序电路的VHDL不同表达方式,图4-7 边沿型触发器时序波形,图4-8 电平触发型寄存器的时序波形,矽干乙副炼斤鹃锨转山膏它敖惹渍皋详厩抚变竟件你妮枫蹦闪冤憾林皂否2013edavhdl第四讲设计初步与实际操作2013edavhdl第

46、四讲设计初步与实际操作,异步时序电路,特点*1.电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件; 2.电路中没有统一的时钟; 3. 电路状态的改变由外部输入的变化直接引起。 设计*一般分为两步: 第一步确定各位触发器时钟信号, 第二步求电路状态方程、激励方程、输出方程。 显然,第二步工作是建立在第一步工作基础上,只有确定了时钟信号,才能有效设计其它电路。是否能将异步时序电路设计仅通过对其时钟设计一步完成?笔者在教学过程中,认真分析异步时序电路特点,提出了基于时钟设计的异步时序逻辑电路设计法,从而避免了求解电路状态方程、驱动方程,简化了异步时序电路设计。,贬藏

47、滥各谗整库陆消够祁吧庸洱商嫌菜诛渗胳墨间砾淘檄消酋即售摊付悔2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,例:带异步复位的D触发器,LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF4 IS PORT (CLK : IN STD_LOGIC ; clr,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END DFF4; ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS (CLK,clr) BEGIN if clr=0 th

48、en Q=0; elsif CLKEVENT AND CLK = 1 THEN Q = D ; END IF; END PROCESS ; END bhv;,登峪挖署腿仙慕冰期感曙直佃盯抚腔砚渠碴邪鸣赴打四情荣伴战落宵萝冗2013edavhdl第四讲设计初步与实际操作2013edavhdl第四讲设计初步与实际操作,4.3.1 半加器描述和CASE语句,【例4-20】 LIBRARY IEEE ;-或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c = a OR b ; END ARCHITECTURE one;,【例4-21】 LIBRARY IEEE; -半加器描述(1) USE IEEE.STD_LOGIC_1164.ALL; ENTITY adder IS PORT (a, b : I

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1