资源描述:
《EDA技术与应用讲义 第6章 VHDL程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章VHDL程序设计课程讲义合肥工业大学彭良清下一章上一章上一章内容回顾先看一个VHDL代码的例子简单代码结构:端口定义和电路逻辑表达代码文件命名进程(PROCESS)VHDL代码中的:Port,Siganl,Variable学会简单VHDL设计的三板斧VHDL与C代码中的函数的区别?操作符&数据类型&赋值语句逻辑分支语句:IF;CASE,循环语句(LOOP)VHDL代码中的时序逻辑和组合逻辑表达语句的执行时间问题(顺序语句&并行语句)基本单元电路的VHDL代码(三态门,双向缓冲器,计数器,D触发器,译码器……)本章内容复杂代码设计要领层次化设计与元件语句(compon
2、ent)代码复制(generate定义语句)复杂电路的代码结构(function、procedure、block、package)库的使用复杂代码设计要领合理划分模块使用层次化结构来编码使用同步电路设计对基本单元电路的VHDL代码应熟练掌握使用FSM(有限状态机)来设计电路使用全局时钟&全局复位信号(如果需要时钟的话)层次化设计与元件语句(component)U1A&U2A的源代码ENTITYdemo1_01ISPORT(A:INSTD_LOGIC;B:OUTSTD_LOGIC);ENDENTITYdemo1_01;ARCHITECTUREbhvOFdemo1_01ISBEGINB<=not
3、A;ENDARCHITECTUREbhv;ENTITYdemo1_02ISPORT(X:INSTD_LOGIC;Y:INSTD_LOGIC;Z:OUTSTD_LOGIC);ENDENTITYdemo1_02;ARCHITECTUREbhvOFdemo1_02ISBEGINZ<=XANDY;ENDARCHITECTUREbhv;详细参见:hfut04_component_demo1_02详细参见:hfut04_component_demo1_01ENTITYdemo1ISPORT(IN1:INSTD_LOGIC;IN2:INSTD_LOGIC;OUT1:OUTSTD_LOGIC);ENDENT
4、ITYdemo1;ARCHITECTUREbhvOFdemo1ISCOMPONENTdemo1_01IS--invertercomponentPORT(A:INSTD_LOGIC;B:OUTSTD_LOGIC);ENDCOMPONENTdemo1_01;COMPONENTdemo1_02IS--twoandgatecomponentPORT(X:INSTD_LOGIC;Y:INSTD_LOGIC;Z:OUTSTD_LOGIC);ENDCOMPONENTdemo1_02;SIGNALsigIN3:STD_LOGIC;BEGINU1:demo1_01PORTMAP(A=>IN1,B=>sigIN
5、3);U2:demo1_02PORTMAP(X=>sigIN3,Y=>IN2,Z=>OUT1);ENDARCHITECTUREbhv;U1A+U2A的源代码详细参见:hfut04_component_demo1元件例化(componentinstance)sigIN3SIGNALsigIN3:STD_LOGIC;U1:demo1_01PORTMAP(A=>IN1,B=>sigIN3);U2:demo1_02PORTMAP(X=>sigIN3,Y=>IN2,Z=>OUT1);这就是一个层次化设计的例子demo1_01.vhddemo1.vhddemo1_02.vhd元件例化:语法元件定义语句C
6、OMPONENT元件名ISPROT(端口名表);ENDCOMPONENT元件名;元件连接信号申明语句SIGNAL信号名:类型;元件例化语句例化名:元件名PORTMAP([端口名=>]连接端口名……);取一个元件插在PCB的对应插座上制作PCB的布线元件例化&PCB元件例化:全加器的例子一位全加器由:2个1位半加器1个2输入或门组成1位全加器:Top-LevelVHDLENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISCOMP
7、ONENTh_adder--seeexample4_19,or4_20,4_21PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC)ENDCOMPONENT;COMPONENTor2a--seeexample4_18PORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC)ENDCOMPONENT;SIGNALd,e,f:STD_LOGIC;BEGINu1:h_add