设计初步原理图输入和文本输入设计区别_第1页
设计初步原理图输入和文本输入设计区别_第2页
设计初步原理图输入和文本输入设计区别_第3页
设计初步原理图输入和文本输入设计区别_第4页
设计初步原理图输入和文本输入设计区别_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计初步原理图输入和文本输入设计区别原理图输入与

VHDL文本输入设计的区别Graphiciswhatyoudrawiswhatyouget“tellmewhathardwareyouwantandIwillgiveittoyou”VHDLiswhatyouwriteiswhatfunctionalyouget“tellmehowyourcircuitshouldbehaveandtheVHDLcompilerwillgiveyouthehardwarethatdoesthejob”butthedesignercannotcontrolhowthecircuitimplement设计初步原理图输入和文本输入设计区别什么是VHDL?

VeryhighspeedintegratedHardwareDescription

Language(VHDL)是IEEE、工业标准硬件描述语言用语言的方式而非图形等方式描述硬件电路容易修改容易保存特别适合于设计的电路有:复杂组合逻辑电路,如:译码器、编码器、加减法器、多路选择器、地址译码器…...状态机等等……..设计初步原理图输入和文本输入设计区别VHDL的功能和标准

VHDL描述输入端口输出端口电路的行为和功能VHDL有过两个标准:IEEEStd1076-1987(calledVHDL1987)IEEEStd1076-1993(calledVHDL1993)设计初步原理图输入和文本输入设计区别【例5-1】ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINy<=aWHENs='0'ELSEb;ENDARCHITECTUREone;实体结构体5.1多路选择器VHDL描述5.1.12选1多路选择器的VHDL描述设计初步原理图输入和文本输入设计区别5.1.12选1多路选择器的VHDL描述【例5-2】

ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISSIGNALd,e:BIT;BEGINd<=aAND(NOTS);e<=bANDs;y<=dORe;ENDARCHITECTUREone;【例5-3】...

ARCHITECTUREoneOFmux21aISBEGINy<=(aAND(NOTs))OR(bANDs);ENDARCHITECTUREone;设计初步原理图输入和文本输入设计区别5.1.12选1多路选择器的VHDL描述【例5-4】

ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy<=a;ELSEy<=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;设计初步原理图输入和文本输入设计区别5.1.12选1多路选择器的VHDL描述图5-3mux21a功能时序波形设计初步原理图输入和文本输入设计区别5.1.2VHDL相关语句说明1.实体表达ENTITYe_nameISPORT(p_name:port_mdata_type;...p_namei:port_midata_type);ENDENTITYe_name;或:ENTITYe_nameISPORT(p_name:port_mdata_type;...p_namei:port_midata_type);ENDe_name;设计初步原理图输入和文本输入设计区别5.1.2VHDL相关语句说明2.实体名3.PORT语句和端口信号名4.端口模式5.数据类型BITINOUTINOUTBUFFER设计初步原理图输入和文本输入设计区别5.1.2VHDL相关语句说明6.结构体表达ARCHITECTUREarch_nameOFe_nameIS(说明语句)BEGIN(功能描述语句)ENDARCHITECTUREarch_name;或:ARCHITECTUREarch_nameOFe_nameIS(说明语句)BEGIN(功能描述语句)ENDarch_name;7.信号传输(赋值)符号和数据比较符号设计初步原理图输入和文本输入设计区别8.逻辑操作符AND、OR、NOT9.IF_THEN条件语句10.WHEN_ELSE条件信号赋值语句赋值目标<=表达式WHEN赋值条件ELSE

表达式WHEN赋值条件ELSE...

表达式;11.PROCESS进程语句和顺序语句12.文件取名和存盘设计初步原理图输入和文本输入设计区别5.1.3VHDL设计的基本概念和语句小节数据类型信号赋值符条件比较符延时实体结构体端口定义端口模式逻辑操作符IF条件语句并行条件语句进程语句顺序语句并行语句文件取名文件存盘设计初步原理图输入和文本输入设计区别5.2寄存器描述及其VHDL语言现象5.2.1D触发器的VHDL描述【例5-9】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF1IS

SIGNALQ1:STD_LOGIC;--类似于在芯片内部定义一个数据的暂存节点

BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=D;ENDIF;Q<=Q1;--将内部的暂存数据向端口输出

ENDPROCESS;ENDbhv;D触发器设计初步原理图输入和文本输入设计区别比较用4种不同语句的D触发器VHDL程序Entitytest1isport(clk,d:inbit;q:outbit);endtest1;architecturebodyoftest1issignalq1:bit;beginprocess(clk)beginifclk='1'ANDclk’last_value='0'thenq1<=d;endif;q<=q1;endprocess;endtest1_body;LIBRARYIEEE;USEIEEE.std_logic_1164.all;Entitytest1isport(clk,d:inbit;q:outbit);endtest1;architecturebodyoftest1isbeginprocess(clk,d)beginifrising_edge(clk)thenq<=d;endif;endprocess;endtest1_body;Entitytest1isport(clk:inbit;d:inbit;q:outbit);endtest1;architecturebodyoftest1issignalq1:bit;beginprocess(clk,d)beginif(clk=‘1’)thenq1<=d;endif;q<=q1;endprocess;endbody;Entitytest1isport(clk:inbit;d:inbit;q:outbit);endtest1;architecturebodyoftest1issignalq1:bit;beginprocess(clk)beginif(clk=‘1’)thenq1<=d;endif;q<=q1;endprocess;endbody;设计初步原理图输入和文本输入设计区别用VHDL设计4位计数器AB01010101取整数数据类型,为什么?整数取值范围端口信号模式取BUFFER,为什么?注意整数和位的不同表达方式!设计初步原理图输入和文本输入设计区别修改后的程序注意,信号端口模式和数据类型的改变!注意,引进内部信号矢量!设计初步原理图输入和文本输入设计区别4位锁存器锁存信号综合后的计数器电路RTL图设计初步原理图输入和文本输入设计区别用VHDL设计7段16进制译码器用CASE语句完成真值表的功能向7段数码管输出信号,最高位控制小数点设计初步原理图输入和文本输入设计区别注意,此语句必须加入4位加法计数器7段译码器8位总线输出信号输出设计初步原理图输入和文本输入设计区别数据对象:信号Signal和变量VariableSignalAssignmentreceivetheassignvalueafteraperiodoftimeVariableAssignmenthappensimmediatelywhenthestatementisexecuted,nodelayRepresentCircuit RepresentlocalstorageInterconnect GlobalScope(anywhere) LocalScope (insideprocess)UpdatedatendofPROCESS UpdatedImmediately(newvaluenotavailable) (newvalueavailable)

SIGNALS VARIABLES

UTILITY:

SCOPE:BEHAVIOR:设计初步原理图输入和文本输入设计区别例1四选一多路选择器设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux4;ARCHITECTUREbody_mux4OFmux4ISsignalmuxval:integer;BEGINprocess(i0,i1,i2,i3,a,b)beginmuxval<=0;if(a='1')thenmuxval<=muxval+1;endif;if(b='1')thenmuxval<=muxval+2;endif;casemuxvaliswhen0=>q<=i0;when1=>q<=i1;when2=>q<=i2;when3=>q<=i3;whenothers=>null;endcase;endprocess;ENDbody_mux4;Why????设计初步原理图输入和文本输入设计区别LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux4;ARCHITECTUREbody_mux4OFmux4ISBEGINprocess(i0,i1,i2,i3,a,b)variablemuxval:integerrange0to3;beginmuxval:=0;if(a='1')thenmuxval:=muxval+1;endif;if(b='1')thenmuxval:=muxval+2;endif;casemuxvaliswhen0=>q<=i0;when1=>q<=i1;when2=>q<=i2;when3=>q<=i3;whenothers=>null;endcase;endprocess;ENDbody_mux4;设计初步原理图输入和文本输入设计区别LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderIS PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderIBEGIN so<=(aORb)AND(aNANDb); co<=NOT(aNANDb);ENDARCHITECTUREfh1;例2一位全加器设计1位二进制半加器设计初步原理图输入和文本输入设计区别1位二进制全加器外部端口设计初步原理图输入和文本输入设计区别设计初步原理图输入和文本输入设计区别5.2.2D触发器VHDL描述的语言现象说明1.标准逻辑位数据类型STD_LOGICBIT数据类型定义:

TYPEBITIS('0','1');STD_LOGIC数据类型定义:TYPESTD_LOGICIS('U','X','0','1','Z','W','L','H','-');STD_LOGIC所定义的9种数据的含义是:‘U’表示未初始化的;‘X’表示强未知的;‘0’表示强逻辑0;‘1’表示强逻辑1;‘Z’表示高阻态;‘W’表示弱未知的;‘L’表示弱逻辑0;‘H’表示弱逻辑1;‘-’表示忽略。设计初步原理图输入和文本输入设计区别2.设计库和标准程序包3.SIGNAL信号定义和数据对象【例5-10】ARCHITECTUREbhvOFDFF1ISBEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ<=D;ENDIF;ENDPROCESS;END;使用库和程序包的一般定义表式是:

LIBRARY<设计库名>;

USE<设计库名>.<程序包名>.ALL;设计初步原理图输入和文本输入设计区别5.2.2D触发器VHDL描述的语言现象说明4.上升沿检测表式和信号属性函数EVENT关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿:

<信号名>'EVENT5.不完整条件语句与时序电路【例5-11】ENTITYCOMP_BADISPORT(a1:INBIT;b1:INBIT;q1:OUTBIT);END;ARCHITECTUREoneOFCOMP_BADISBEGINPROCESS(a1,b1)BEGINIFa1>b1THENq1<='1';ELSIFa1<b1THENq1<='0';--未提及当a1=b1时,q1作何操作ENDIF;ENDPROCESS;END;设计初步原理图输入和文本输入设计区别RTL级电路结构图5-6例5-12的电路图设计初步原理图输入和文本输入设计区别【例5-12】ENTITYCOMP_GOODISPORT(a1:INBIT;b1:INBIT;q1:OUTBIT);END;ARCHITECTUREoneOFCOMP_GOODISBEGINPROCESS(a1,b1)BEGINIFa1>b1THENq1<='1';ELSEq1<='0';ENDIF;ENDPROCESS;END设计初步原理图输入和文本输入设计区别5.2.3实现时序电路的VHDL不同表达方式【例5-13】...PROCESS(CLK)BEGINIFCLK'EVENTAND(CLK='1')AND(CLK'LAST_VALUE='0')THENQ<=D;--确保CLK的变化是一次上升沿的跳变

ENDIF;ENDPROCESS;【例5-14】...PROCESS(CLK)BEGINIFCLK='1'ANDCLK'LAST_VALUE='0'--同例5-13

THENQ<=D;ENDIF;ENDPROCESS;设计初步原理图输入和文本输入设计区别【例5-15】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFrising_edge(CLK)--CLK的数据类型必须是STD_LOGICTHENQ1<=D;ENDIF;Q<=Q1;ENDPROCESS;END;设计初步原理图输入和文本输入设计区别【例5-16】...

PROCESSBEGINwaituntilCLK='1';--利用wait语句

Q<=D;ENDPROCESS;【例5-17】...

PROCESS(CLK)BEGINIFCLK='1'THENQ<=D;--利用进程的启动特性产生对CLK的边沿检测

ENDIF;ENDPROCESS;【例5-18】...

PROCESS(CLK,D)BEGINIFCLK='1'--电平触发型寄存器

THENQ<=D;ENDIF;ENDPROCESS;设计初步原理图输入和文本输入设计区别图5-7边沿型触发器时序波形图5-8电平触发型寄存器的时序波形设计初步原理图输入和文本输入设计区别5.2.4异步时序电路设计【例5-19】...ARCHITECTUREbhvOFMULTI_DFFISSIGNALQ1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=NOT(Q2ORA);ENDIF;ENDPROCESS;PRO2:PROCESS(Q1)BEGINIFQ1'EVENTANDQ1='1'THENQ2<=D;ENDIF;<=Q2;ENDPROCESS;图5-9例5-19综合的电路设计初步原理图输入和文本输入设计区别5.2.5VHDL设计基本概念和语言现象小节数据类型数据对象信号属性时钟检测VHDL库程序包时序电路异步时序设计初步原理图输入和文本输入设计区别5.31位二进制全加器的VHDL设计图5-10半加器h_adder电路图图5-11全加器f_adder电路图设计初步原理图输入和文本输入设计区别5.3.1半加器描述和CASE语句a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1表5-1半加器h_adder逻辑功能真值表1.CASE语句CASE语句的一般表式是:CASE<表达式>ISWhen<选择值或标识符>=><顺序语句>;...;<顺序语句>;When<选择值或标识符>=><顺序语句>;...;<顺序语句>;...ENDCASE;设计初步原理图输入和文本输入设计区别2.标准逻辑矢量数据类型STD_LOGIC_VECTOR3.并置操作符以下是一些并置操作示例:SIGNALa:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALd:STD_LOGIC_VECTOR(1DOWNTO0);...a<='1''0'd(1)'1';--元素与元素并置,并置后的数组长度为4...IFad="101011"THEN...–-在IF条件句中可以使用并置符在使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如:

B:OUTSTD_LOGIC_VECTOR(7DOWNTO0);或

SIGNALA:STD_LOGIC_VECTOR(1TO4)设计初步原理图输入和文本输入设计区别【例5-20】

LIBRARYIEEE;--或门逻辑描述

USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDENTITYor2a;ARCHITECTUREoneOFor2aISBEGINc<=aORb;ENDARCHITECTUREfu1;【例5-21】LIBRARYIEEE;--半加器描述(1)USEIEEE.STD_LOGIC_1164.ALL;ENTITYadderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYadder;ARCHITECTUREfh1OFadderisBEGINso<=NOT(aXOR(NOTb));co<=aANDb;ENDARCHITECTUREfh1;设计初步原理图输入和文本输入设计区别【例5-22】LIBRARYIEEE;--半加器描述(2)USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderisSIGNALabc:STD_LOGIC_VECTOR(1DOWNTO0);BEGINabc<=a&b;PROCESS(abc)BEGINCASEabcISWHEN"00"=>so<='0';co<='0';WHEN"01"=>so<='1';co<='0';WHEN"10"=>so<='1';co<='0';WHEN"11"=>so<='0';co<='1';WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREfh1;设计初步原理图输入和文本输入设计区别【例5-22】...--半加器描述(3)

SIGNALabc,cso:STD_LOGIC_VECTOR(1DOWNTO0);BEGINabc<=a&b;co<=cso(1);so<=cso(0);PROCESS(abc)BEGINCASEabcISWHEN"00"=>cso<="00";WHEN"01"=>cso<="01";WHEN"10"=>cso<="01";WHEN"11"=>cso<="10";ENDCASE;ENDPROCESS;ENDARCHITECTUREfh1;设计初步原理图输入和文本输入设计区别【例5-23】

LIBRARYIEEE;--1位二进制全加器顶层设计描述

USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISCOMPONENTh_adderPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTor2aPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALd,e,f:STD_LOGIC;BEGINu1:h_adderPORTMAP(a=>ain,b=>bin,co=>d,so=>e);u2:h_adderPORTMAP(a=>e,b=>cin,co=>f,so=>sum);u3:or2aPORTMAP(a=>d,b=>f,c=>cout);ENDARCHITECTUREfd1;设计初步原理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论