EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法

上传人:夏** 文档编号:568879508 上传时间:2024-07-27 格式:PPT 页数:72 大小:644KB
返回 下载 相关 举报
EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法_第1页
第1页 / 共72页
EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法_第2页
第2页 / 共72页
EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法_第3页
第3页 / 共72页
EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法_第4页
第4页 / 共72页
EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法》由会员分享,可在线阅读,更多相关《EDA技术与应用讲义第5章第1节VHDL基本语句(一)VHDL基本语句语法(72页珍藏版)》请在金锄头文库上搜索。

1、第第5章章 VHDL基本语句(一)基本语句(一) 课程讲义课程讲义合肥工业大学 彭良清下一章上一章本章内容 1.先看一个VHDL代码的例子2.简单代码结构:端口定义和电路逻辑表达3.代码文件命名4.进程(PROCESS)5.VHDL代码中的:Port,Siganl,Variable6.学会简单VHDL设计的三板斧7.VHDL与C 代码中的函数 的区别 ?8.操作符 & 数据类型 & 赋值语句9.逻辑分支语句:IF;CASE, 10.循环语句(LOOP)下一章内容7.VHDL代码中的时序逻辑和组合逻辑表达8.语句的执行时间问题(顺序语句 & 并行语句)9.基本单元电路的VHDL代码(三态门,双向

2、缓冲器,计数器,D触发器,译码器)11.复杂代码结构 (子程序; 元件; 块; 包)12.属性定义语句13.库的使用先看一个VHDL代码的例子1.VHDL code position: p77_ex4_7_DFF12.-3.LIBARY IEEE;4.USE IEEE.STD_LOGIC_1164.ALL;5.ENTITY DFF1 IS 6.PORT (CLK:INSTD_LOGIC;7.D:INSTD_LOGIC;8.Q:OUT STD_LOGIC9.);10.END ENTITY DFF1;11.ARCHITECTURE bhv OF DFF1 IS12.SIGNALQ1:STD_LOG

3、IC;13.BEGIN14.PROCESS ( CLK )15.BEGIN16.IF CLKEVENT AND CLK = 1 THEN17.Q1= D;- why dont use Q =D ?18.END IF;19.Q=Q1;20.END PROCESS;21.END ARCHITECTURE bhv;Page:77Example: 4-7D触发器简单代码结构:端口定义 & 电路逻辑表达INPUTPORTOUTPUTPORTHOW TO WORK ?ENTITY 和 ARCHITECTUREENTITY 名称 IS接口信号说明接口信号说明END 名称;ARCHITECTURE 构造名OF

4、 实体名 IS功能描述功能描述END 构造名;d0d1d2q&d0qd2d1简单代码结构:PORT 与 ENTITY1.LIBARY IEEE;2.USE IEEE.STD_LOGIC_1164.ALL;3.ENTITY DFF1 IS 4.PORT (CLK :INSTD_LOGIC;5.D:INSTD_LOGIC;6.Q:OUT STD_LOGIC7.);8.END entity DFF1;大大 小小 写写有区别吗?有区别吗?ENTITY的定义语法ENTITY Identifier IS BEGIN END ENTITY ; VHDL语法的BNF定义简单代码结构:LOGIC 与 ARCHI

5、TECTURE 11.ARCHITECTURE bhv OF DFF1 IS12.SIGNALQ1:STD_LOGIC;13.BEGIN14.PROCESS ( CLK )15.BEGIN16.IF CLKEVENT AND CLK = 1 THEN17.Q1= D;- why dont use Q =D ?18.END IF;19.Q=Q1;20.END PROCESS;21.END ARCHITECTURE bhv;ARCHITECTURE的语法ARCHITECTURE Identifier OF IS BEGIN END ARCHITECTURE ; 代码文件 的 名称 ? 1.VHDL

6、 code position: p77_ex4_7_DFF12.-3.LIBARY IEEE;4.USE IEEE.STD_LOGIC_1164.ALL;5.ENTITY DFF1 IS 6.PORT (CLK:INSTD_LOGIC;7.D:INSTD_LOGIC;8.Q:OUT STD_LOGIC9.);10.END ENTITY DFF1;11.ARCHITECTURE bhv OF DFF1 IS12.SIGNALQ1:STD_LOGIC;13.BEGIN14.PROCESS ( CLK )15.BEGIN16.IF CLKEVENT AND CLK = 1 THEN17.Q1= D;

7、- why dont use Q =D ?18.END IF;19.Q=Q1;20.END PROCESS;21.END ARCHITECTURE bhv;文件名称:DFF1.VHD标识符 命名要点1.大小写无区别大小写无区别VHDL语言认为是相同的,Verilog HDL认为是不同的。2.同类标识符的书写格式应一致同类标识符的书写格式应一致从代码的可读性考虑3.标识符的分类标识符的分类VHDL关键字 & 自定义标识符4.标识符的长度标识符的长度 325.标识符的字母集合标识符的字母集合英文字母(AZ);数字(09);下划线(_);反斜线(/);6.标识符的首个符号标识符的首个符号 英文字母不

8、不 能能 使用使用关键词关键词 来来 定义定义 自己的自己的 标识符号标识符号这段DFF代码中的 关键词关键词1.LIBARY IEEE;2.USE IEEE.STD_LOGIC_1164.ALL;3.ENTITY DFF1 IS 4.PORT (CLK:INSTD_LOGIC;5.D:INSTD_LOGIC;6.Q:OUT STD_LOGIC7.);8.END ENTITY DFF1;9.ARCHITECTURE bhv OF DFF1 IS10.SIGNALQ1:STD_LOGIC;11.BEGIN12.PROCESS ( CLK )13.BEGIN14.IF CLKEVENT AND C

9、LK = 1 THEN15.Q1= D;- why dont use Q =D ?16.END IF;17.Q=Q1;18.END PROCESS;19.END ARCHITECTURE bhv;红色的是 ?更多关键字 ?进程 ( PROCESS )1.PROCESS ( CLK )2.BEGIN3.IF CLKEVENT AND CLK = 1 THEN4.Q1= D;5. END IF;6.Q=Q1;7.END PROCESS; : POSTPONED PROCESS ( ) IS BEGIN END PROCESS POSTPONED ; 语法格式语法格式关于 进程 ( PROCESS

10、)的疑问?1.何时 PROCESS 被执行?2.何时 PROCESS 执行结束 ?3.可以有多个进程出现吗?4.多个进程之间如何通信?5.与C 代码中的函数 的区别 ?何时 PROCESS 被执行?进程敏感量1.PROCESS ( CLK )2.BEGIN3.IF CLKEVENT AND CLK = 1 THEN4.Q1= D;5. END IF;6.Q=Q1;7.END PROCESS;CLK 信号信号 发生变化时发生变化时 PROCESS 被执行被执行看看此PROCESS的电路?1.LIBARY IEEE;2.USE IEEE.STD_LOGIC_1164.ALL;3.ENTITY an

11、d2 IS 4.PORT (a:INSTD_LOGIC;5.b:INSTD_LOGIC;6.q:OUT STD_LOGIC7.);8.END ENTITY and2;9.ARCHITECTURE bhv OF and2 IS10.SIGNALQ1:STD_LOGIC;11.BEGIN12.P0: 13. process(a)14. begin15.q = a and b;16. end process p0;17.END ARCHITECTURE bhv;可以有多个进程出现吗?1.2.ARCHITECTURE BEHAV OFmulIS3.SIGNAL temp:BIT4.BEGIN5.p_a

12、:6.PROCESS ( a, b, selx )7.BEGIN8.IF ( selx=0 ) THEN9.temp=a;10.ELSE11.temp=b;12.END IF;13.END PROCESS p_a;14.p_b:15.PROCESS ( temp, c, sely )16.BEGIN17.IF ( sely=0 ) THEN18.data_out=temp;19.ELSE20.data_out=c;21.END IF;22.END PROCESS p_b;23.END ARCHITECTURE BEHAV; 参见:p138_ex5_20_mul多个进程之间如何通信?端口: Po

13、rtPORT在电路上的含义?在电路上的含义?ENTITY DFF1 IS PORT (CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUT STD_LOGIC);END entity DFF1;ENTITY DFF1 IS PORT (CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUT STD_LOGIC);END entity DFF1;Port:语法IN 输入OUT输出INOUT双向(输入/输出)BUFFER双向LINKAGEVHDL代码中的变量:Port,Siganl,VariableSignal在电路上的含义?在电路上的含义?Signal 的一个例

14、子1.ARCHITECTURE bhv OF p119 IS2.SIGNALa, b, c, y, z :INTEGER;3.BEGIN4.PROCESS ( a, b, c )5.BEGIN6. y = a + b;7. z = c - a; 8. y = b;9.END PROCESS;10.END ARCHITECTURE bhv;如果如果 a, b, c 分别为分别为 1,2,3Y的值的值等于多少等于多少?PROCESS 外,Signal的多重赋值 ?1.ARCHITECTURE bhv OF p119 IS2.SIGNALa, b, c, y, z : INTEGER;3.BEGIN

15、4. z = c - a; 5. y = a + b;6. y = b;7.END ARCHITECTURE bhv;非非 法法 ?合合 法法 ?信号(SIGNAL):总结总结1.定义格式:定义格式: SIGNAL 信号名:信号名: 数据类型数据类型 := 初始值初始值 ;2.定义位置?定义位置?在一个在一个 ARCHITECTURE 中中3.谁可以使用?谁可以使用?ARCHITECTURE 所有所有 PROCESSSignal: 定义错误吗?1.ARCHITECTURE bhv OF p119 IS2.SIGNALa, b, c : IN INTEGER; 3.SIGNALy, z :OUT

16、 INTEGER;4.BEGIN5.PROCESS ( a, b, c )6.BEGIN7. y = a + b;8. z = c - a; 9. y = b;10.END PROCESS;11.END ARCHITECTURE bhv;?变量:Variable1.ARCHITECTURE behav OF DFF3 IS2.BEGIN3.PROCESS ( CLK )4. 5.VARIABLE QQ: STD_LOGIC;6.BEGIN7.IF CLKEVENT AMD CLK = 1 THEN8.QQ := D1;9.END IF;10.11.Q1 = QQ;12.END PROCESS

17、;13.END ARCHITECTURE behav; 详细参见:p120_ex5_5_DFF3:=的区别 ?变量(变量( VARIABLE ):总结:总结1.定义格式:VARIABLE 变量名变量名 : 数据类型数据类型 := 初始值初始值 ;2.在何处定义(位置)进程内部进程内部3.谁使用(作用范围)本进程使用本进程使用Signal & Variable 比较SIGNALVARIABLE基本用法基本用法用于作为电路中用于作为电路中的信号连线的信号连线用于作为进程中用于作为进程中局部数据存储单元局部数据存储单元适用范围适用范围在整个结构体内的在整个结构体内的任何地方都能适用任何地方都能适用只

18、能在所定义的只能在所定义的进程中使用进程中使用行为特性行为特性在进程的最后在进程的最后才对信号赋值才对信号赋值立即立即赋值赋值学会简单VHDL设计的三板斧1.了解SIGANL,VARIABLE,PORT的使用2.了解ENTITY, ARCHITECTUR,PROCESS的用法和关系3.简单代码由1个文件组成,其中ENTITY定义一个, ARCHITECTUR定义一个,PROCESS定义一个或者多个与C 代码中的函数 的区别 ?v相同点:1.何时调用?2.参数和敏感量3.变量(局部)的定义v差异点:1.VHDL 本质上的并行执行 ? 硬件设计2.软件总是顺序执行。任意2句代码不可能同时执行VHD

19、L & C 调试过程 的区别 ?vC语言,任何软件语言可以单步,断点对代码进行跟踪调试vVHDL不能跟踪调试,只能全速运行或者全速仿真。操作符:分类1.算术:Arithmetic2.比较:Comparison3.逻辑: logicalv疑问:1.操作符号的优先级别?操作符号的优先级别?2.使用那种操作数?使用那种操作数?操作符(一):ArithmeticOperatorExamplesDescription+a + b, +aaddition-a - b, -asubtraction*a * bmultiplicationArithmetic operator: 举例1.PACKAGE exa

20、mple_arithmetic IS2.TYPEsmall_INT IS RANGE 0 TO 7;3.END example_arithmetic;4.USE WORK.exmple_arithmetic.ALL;5.ENTITY arithmetic IS 6.PORT (a, b:IN SMALL_INT ;7.m:OUT SMALL_INT8.);9.END ENTITY arithmetic;10.ARCHITECTURE bhv OF arithmetic IS11.BEGIN12.c=a + b ;13.END ARCHITECTURE bhv;加减法加减法 代码代码所消耗的所消

21、耗的 资源资源很很 大!大!操作符(二):ComparisonOperatorExamplesDescriptiona bless than=a a bgreater than=a = bgreater than or equal to=a = bequal to/=a /= bnot equal toComparison operator: 举例1.ENTITY relational_ops_1 IS 2.PORT (a, b:IN BIT_VECTOR ( 0 TO 3 );3. m:OUT BOOLEAN4.);5.END ENTITY relational_ops_1;6.ARCHIT

22、ECTURE bhv OF relational_ops_1 IS7.BEGIN8.output = ( a=b );9.END ARCHITECTURE bhv;1.ENTITY relational_ops_2 IS 2.PORT ( a, b:ININTEGER RANGE 0 TO 3 ;3.m:OUT BOOLEAN4.);5.END ENTITY relational_ops_2;6.ARCHITECTURE bhv OF relational_ops_2 IS7.BEGIN8.output= b );9.END ARCHITECTURE bhv;那个代码所用逻辑门多?操作符(三)

23、: logical .OperatorExamplesDescriptionAND a AND b与与NANDa NAND b与非与非ORa OR b或或NORa NOR b或非或非XORa XOR b异或异或NOTNOT a非非 logical operator: 举例1.SIGNAL a, b, c:STD_LOGIC_VECTOR ( 3 DOWNTO 0 );2.SIGNAL d, f, f, g:STD_LOGIC_VECTOR ( 1 DOWNTO 0 );3.SIGNAL h, i, j, k:STD_LOGIC;4.SIGNAL l, m, n, o, p :BOOLEAN;5

24、.6.a=b AND c;7.d=e OR f OR g;8.h=( i NAND j ) NAND k;9.I=(m XOR n ) AND k;10.h= i AND j AND k;11.h=i AND j OR k;12.a=b AND e;13.h=i OR l;v.详细参见:详细参见:p239_ex8_16那些语句那些语句是是错误的?错误的?数据类型1.一个数据对象可以表达为不同的类型:Port; Siganl; Variable;CONSTANT; 2.数据类型:BIT; BIT_VECTOR; BOOLEAN; INTEGER; (STD_LOGIC; STD_LOGIC_VE

25、CTOR)CHARACTER;REAL;STRING; TIME;3.数据对象的使用时应描述的特性F方向F数据类型F数组类型的位数F取值范围(可选)一位信号的类型表达类型在那个库中取 值用法举例BIT STANDARD包0, 1STD_LOGIC IEEE库的TD_LOGIC_1164包U, X, 0, 1, Z, W, L, H, - BOOLEANSTANDARD包FALSE, TRUEN位信号的类型:数组类 型在那个库中取值用法举例BIT_VECTORSTANDARD包由位数决定STD_LOGIC_VECTORIEEE库的TD_LOGIC_1164包INTEGERSTANDARD包数据类

26、型用法 举例1.LIBARY IEEE;2.USE IEEE.STD_LOGIC_1164.ALL;3.USE IEEE.STD_LOGIC_UNSIGNED.ALL;4.ENTITY amp IS 5.PORT (a1, a2:INBIT_VECTOR ( 3 DOWNTO 0 );6.c1, c2, c3:INSTD_LOGIC_VECTOR ( 3 DOWNTO 0 );7.b1, b2, b3:INTEGER RANGE 0 TO 15;8.d1,d2, d3, d4:OUTSTD_LOGIC_VECTOR ( 3 DOWNTO 0 )9.);10.END ENTITY amp ;11

27、.ARCHITECTURE behav OF amp IS12.BEGIN13.d1=TO_STDLOGICVECTOR ( a1 AND a2 );14.d2=CONV_STD_LOGIC_VECTOR ( b3, 4 );15.d3=c1 WHEN conv_integer ( C2 ) = 8 else c3;16.d4=c1 WHEN c2 = 8 else c3;17.END ARCHITECTURE behav;18.-19.- fellowing function is defined in IEEE.STD_LOGIC_UNSIGNED20.-21.- FUNCTION TO_

28、SDLOGICVECTOR ( arg: BIT_VECTOR )22.-RETURN STD_LOGIC_VECTOR;23.-24.- FUNCTION CONV_INTEGER ( arg: STD_LOGIC_VECTOR )25.-RETURN INTEGER;26.-27.- FUNCTION CONV_STD_LOGIC_VECTOR ( arg: INTEGER ; size INTEGER )28.-RETURN STD_LOGIC_VECTOR;29.-v-详细参见:详细参见:p235_ex8_13p236_ex8_14p237_ex8_15赋值语句:描述1.赋值语句的作用

29、v将一个值或者一个表达式的运算结果传递给某个数据对象2.语法,有2种赋值算符:vSignal.Port 对象 使用 “ =”vVariable 对象 使用 “:=”3.应用举例 赋值语句:举例1.LIBARY IEEE;2.USE IEEE.STD_LOGIC_1164.ALL;3.- USE IEEE.STD_LOGIC_UNSIGNED.ALL;4.ENTITY DFF3 IS 5.PORT (CLK, D1:INSTD_LOGIC;6.QQ:OUTSTD_LOGIC7.);8.END ENTITY DFF3;9.ARCHITECTURE behav OF DFF3 IS10.BEGIN1

30、1.PROCESS ( CLK )12. 13.VARIABLE QQ: STD_LOGIC;14.BEGIN15.IF CLKEVENT AMD CLK = 1 THEN16.QQ := D1;17.END IF;18.19.Q1 = QQ;20.END PROCESS ;21.END ARCHITECTURE behav;详细参见:详细参见:p120_ex5_5不同宽度信号之间的赋值 和 转换v信号抽取1.Signal a: STD_LOGIC_VECTOR(3 DOWNTO 0);2.Signal b: STD_LOGIC_VECTOR(7 DOWNTO 0);3.Signal c: S

31、TD_LOGIC_VECTOR(15 DOWNTO 0);4.a(3 DOWNTO 0) = b(7 DOWNTO 4)v信号合并1.Signal a: STD_LOGIC_VECTOR(7 DOWNTO 0);2.Signal b: STD_LOGIC_VECTOR(7 DOWNTO 0);3.Signal c: STD_LOGIC_VECTOR(15 DOWNTO 0);4.c = b & b; 相同数值 赋给多位数据的 的方法请看请看SIGNAL d1 : STD_LOGIC_VECTOR ( 4 DWONTO 0 ) ;VARIABLE a1 : STD_LOGIC_VECTOR( 1

32、5 DWONTO 0 ) ;SIGNAL e : STD_LOGIC_VECTOR ( 4 DWONTO 0 ) ;d1 0 );a1:= ( OTHERS = 0 ); d1 1, 4 = 1 , OTHERS = 0 ); a1 e(1) , 4 = e(2) , OTHERS = e(3) );注意注意= 和和 OTHERS的使用的使用逻辑分支语句:IF1.最重要的VHDL语句2.不同表达 导致 生成 时序时序 或者 组合电路,组合电路, 请看:请看:代码代码3.不完整IF语句与时序电路: 代码4.IF语句:总结看 2段代码 中 IF的用法的用法1.ENTITY mux21a IS 2.

33、PORT ( a, b: INBIT;3. S : INBIT;4. y : OUTBIT5.);6.END ENTITY mux21a;7.ARCHITECTURE one OF mux21a IS8.BEGIN9.PROCESS(a,b,s)10.BEGIN11.IF s=0 THEN12.y=a;13.ELSE;14.y=b;15.END IF;16.END PROCESS;17.END ARCHITECTURE one;1.LIBARY IEEE;2.USE IEEE.STD_LOGIC_1164.ALL;3.ENTITY DFF1 IS 4.PORT ( CLK : INSTD_LO

34、GIC;5. D: INSTD_LOGIC;6. Q: OUT STD_LOGIC7.);8.END ENTITY DFF1;9.ARCHITECTURE bhv OF DFF1 IS10.SIGNALQ1 :STD_LOGIC;11.BEGIN12.PROCESS ( CLK )13.BEGIN14.IF CLKEVENT AND CLK = 1 THEN15.Q1 = D;- why dont use Q =D ?16.END IF;17.Q b1 THEN12.q1 = 1;13.ELSIF a1 b1 THEN 14.q1 b1 THEN- comparing it with exam

35、ple 4_9,p8212.q1 = 1;13.ELSE14.q1 = 0;15.END IF;16.END PROCESS;17.END ARCHITECTURE one;详细参见:详细参见:p71_ex4_4详细参见:详细参见:p82_ex4_10IF a1=b1:q1= ?IF语句:总结1.完整的IF语句(IF-ELSE) 生成组合组合 逻辑电路 (举例)2.不完整的不完整的IF语句(IF-ELSE) 生成时序时序 逻辑电路 (举例)3.4种 IF 语句4.语法表达?4种 IF 语句1.第第1种种IF 条件句 THEN 顺序语句END IF;2.第第2种种IF 条件句 THEN 顺序语句

36、ELSE 顺序语句END IF;1.第第3种种IF 条件句 THEN IF 条件句 THEN END IF;END IF;2.第第4种种IF 条件句 THEN 顺序语句ELSIF 条件句 THEN 顺序语句 ELSE 顺序语句END IF;IF语句: 语法(BNF表达) IF THEN ELSIF THEN ELSE END IF ; IF语句:用途1.简单组合逻辑实现(选择器,比较器,总线缓冲器)1.时序逻辑实现D触发器,寄存器,2.只能在 PROCESS 中出现是顺序语句 CASE:例子(逻辑分支语句)147 48.CASE sel IS49.WHEN 0=z1z2z3z4= 1;53.E

37、ND CASE;54.END PROCESS;55.end architecture activ ;详细参见:详细参见:p263_ex9_1比较:比较:C代码代码: switch-caseCASE:语法 : CASE IS WHEN = WHEN = END CASE ; CASE语句:用途1.复杂组合逻辑实现(译码器),替代IF语句2.用于FSM( 有限状态机 )编程3.不能 产生时序逻辑4.是顺序语句,只能在PROCESS中出现CASE语句:一些错误表达1.2.SIGNAL valus:INTEGER RANGE 0 TO 15;3.SIGNAL out:STD_LOGIC;4.5.- e

38、rror case code 16.CASE value IS7.END CASE;8.9.- error case code 210.CASE value IS11.WHEN 0 =out1out2out1out2result result 37.IF ( a = b ) THEN38.result = x01;39.ELSE40.result43.IF ( a /= b ) THEN44.result = x01;45.ELSE46.result 10;LOOP语句的例子(二)1.SIGNAL a, b, c: STD_LOGIC_VECTOR ( 1 TO 3 );2.3.FOR n I

39、N 1 TO 3 LOOP4.a = b(n) AND c(n);5.END LOOP;6.7.- above loop statement can be replaced fellowing8.a( 1 )=b( 1 ) AND c( 1 );9.a( 2 )=b( 2 ) AND c( 2 );10.a( 3 )=b( 3 ) AND c( 3 );“n” 是是Signal 吗?吗?LOOP语句的例子(三)1.ENTITY add is2. PORT ( a ,b : IN BIT_VECTOR ( 1 TO 4 ) ; 3. s: OUT BIT_VECTOR ( 1 TO 4 );4.

40、 carry : OUT BIT 5. )6.END add ;7.ARCHITECTURE add_struc OF add IS8.COMPONENT fa - -全加器元件声明 9. PORT ( ai , bi , ci : IN BIT ; 10. so , co : OUT BIT );11. END COMPONENT ; 12. SIGNAL cc : BIT_VECTOR (1 TO 4 ); cin: BIT; - 信号说明13. BEGIN 14. cc0ci, a (n)= ai, b (n)= bi, s(n)= so, cc(n)=co) ; 17. END GEN

41、ERATE ; 18. carry= cc4; - 位信号赋值19.END add_struc ;LOOP语句的例子(四)1.entity p_check is2.port (a: instd_logic_vector( 7 downto 0 );3.y: outstd_logic4.);5.end p_check ;6.architecture behav of p_check is7.SIGNAL tmp:STD_LOGIC;8.BEGIN9.PROCESS ( a )10.BEGIN11.12.tmp = 0;13.FOR n IN 0 TO 7 LOOP14.tmp = tmp XOR

42、 a (n)15.END LOOP;16.y=tmp;17.END PROCESS;18.end architecture behav ;8位奇偶校验代码位奇偶校验代码详细参见:详细参见:p266_ex9_4The end.以下内容以下内容为为正文的引用,正文的引用,可不阅读。可不阅读。硬件描述语言:起源v是电子电路的文本描述。v最早的发明者:美国国防部,美国国防部,VHDL,1983v大浪淘沙,为大者二:VHDL 和 Verilog HDLv其他的小兄弟:ABEL、AHDL、System Verilog、System C。如何使用VHDL来设计电路?vVHDL设计电路的的5步曲1.语言编码2

43、.逻辑综合3.功能和时序仿真4.器件适配5.器件编程返回MAX+PLUS II BNFvMAX+PLUS II Help uses the Backus-Naur Form (BNF) to define the syntax of the text file formats and message variables. BNF uses the following notation: vCharacters: Meaning:1.:= “Is defined as” 定义为2. Identifiers (i.e., variables) 标识符(如变量标识符)3.Optional items

44、 可选项4. . Repeated items (zero or more times) 重复条目5.|. Indicates a choice between items 在2个条目间选择一个(或)6.:n:n Suffix indicates a range (e.g., :1:8 means from 1 to 8 name characters) 7.italicsVariables in syntax descriptions 可变量8.Courier fontLiteral text in syntax descriptions. Bold Courier font is also

45、 sometimes used to help distinguish literal text from italic variables in syntax descriptions. 返回STD_LOGIC的取值1. TYPE std_ulogic IS ( U, - Uninitialized2. X, - Forcing Unknown3. 0, - Forcing 04. 1, - Forcing 15. Z, - High Impedance 6. W, - Weak Unknown7. L, - Weak 0 8. H, - Weak 1 9. - - Dont care10. );返回详细参见STD1164.VHD

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号