预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共112页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3VHDL语言HDL----HardwareDescriptionLanguage 一种用于描述数字电路的功能或行为的语言。目的是提为电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。VHDL是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC计划提出的描述语言; IEEE从1986年开始致力于VHDL标准化工作,融合了其它ASIC芯片制造商开发的硬件描述语言的优点,于93年形成了标准版本(IEEE.std_1164)。 1995年,我国国家技术监督局推荐VHDL做为电子设计自动化硬件描述语言的国家标准。覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言; VHDL语言具有良好的可读性,既可以被计算机接受,也容易被人们所理解; VHDL语言可以与工艺无关编程; VHDL语言已做为一种IEEE的工业标准,便于使用、交流和推广。 3.1.1标识符(Identifiers)例如:ABS,ACCESS,AFTER,ALL,AND,ARCHITECTURE,ARRAY,ATTRIBUTE,BEGIN,BODY,BUFFER,BUS,CASE,COMPONENT,CONSTANT,DISCONNECT,DOWNTO,ELSE,ELSIF,END,ENTITY,EXIT,FILE,FOR,FUNCTION,GENERIC,GROUP,IF,INPURE,IN,INOUT,IS,LABEL,LIBRARY,LINKAGE,LOOP,MAP,MOD,NAND,NEW,NEXT,NOR,NOT,NULL,OF,ON,OPEN,OR,OTHERS,OUT,PACKAGE,POUT,PROCEDURE,PROCESS,PURE,RANGE,RECODE,REM,REPORT,RETURN,ROL,ROR,SELECT,SHARED,SIGNAL,SLA,SLL,SRA,SUBTYPE,THEN,TRANSPORT,TO,TYPE,UNAFFECTED,UNITS,UNTIL,USE,VARIABLE,WAIT,WHEN,WHILE,WITH,XOR,XNOR3.1.2数据对象(DateObjects)Variable变量名:数据类型:=初始值;Signal信号名:数据类型:=初始值3.1.2数据类型整数:(Integer) 取值范围-(231-1)~(231-1),可用32位有符号的二进制数表示 variablea:integerrange-63to63 在实际应用中,VHDL仿真器将Integer做为有符号数处理,而VHDL综合器将Integer做为无符号数处理; 要求用RANGE子句为所定义的数限定范围,以便根据范围来决定表示此信号或变量的二进制数的位数。实数:(Real) 取值范围-1.0E38~+1.0E38,仅用于仿真不可综合 1.0--十进制浮点数 8#43.6#e+4--八进制浮点数 43.6E-4--十进制浮点数IEEE预定义标准逻辑位与矢量枚举:typestatesis(idle,decision,read,write); typebooleanis(false,true); typebitis(‘0’,‘1’);3.1.3数据类型转换在“STD_LOGIC_1164”、“STD_LOGIC_ARITH”和“STD_LOGIC_UNSIGNED”的程序包中提供的数据类型变换函数。属性运算符并置操作符运算符优先级别移位运算符的左边为一维数组,其类型必须是BIT或BOOLEAN,右边必须是整数移位次数为整数的绝对值。取余运算(aREMb)的符号与a相同,其绝对值小于b的绝对值。 例如:(-5)REM2=(-1)5REM2=(1) 3.2VHDL基本结构LIBRARYIEEE;--库、程序包的说明调用 USEIEEE.Std_Logic_1164.ALL; ENTITYFreDeviderIS--实体声明 PORT (Clock:INStd_logic; Clkout:OUTStd_logic ); END; ARCHITECTUREBehaviorOFFreDeviderIS--结构体定义 SIGNALClk:Std_Logic; BEGIN PROCESS(Clock) BEGIN IFrising_edge(Clock)THEN Clk<=NOTClk; ENDIF; ENDPROCESS; Clkout<=Clk; END;3.2.1实体(Entity)ENTITYFreDeviderIS PORT (Clock:INStd_logic; Clokout:OUTStd_logic ); END;例如:GENERIC(wide:integer:=32);--说明宽度为32 GEN