1、18.逻辑综合的概念与主要步骤819.运用VHDL语言和FPGA进行电路设计的主要步骤8VHDL的全称以及利用VHDL设计硬件电路所具有的特点Very High Speed Integrated Circuit Hardware Description Language (超高速集成电路硬件描述语言) (1) 设计文件齐全、方法灵活、支持广泛(2)系统硬件描述能力强(3)VHDL语言可以与工艺无关编程(4) VHDL语言标准、规范、易于共享和复用1. VHDL语言的基本设计实体和完整的VHDL语言程序的结构一个VHDL语言的基本设计实体由实体说明和构造体两个部分构成;一个完整的VHDL语言程序
2、包含5个部分:实体、构造体、配置、包集合(程序包)和库。2. 进程(PROCESS)语句的结构 主要特点:并发语句,由敏感信号量启动;内部的语句顺序执行,进程不能嵌套。3. VHDL语言子程序的结构 VHDL语言子程序有两种类型:过程、函数(1). 过程(Procedure)在程序包中定义的格式(用户自定义过程的设计方法): PACKAGE 包集合名 ISPROCEDURE 过程名(参数1,参数2,) END 包集合名; PACKAGE BODY 包集合名 IS 过程名(参数1,参数2,)IS定义语句 BEGIN 顺序处理语句; END 过程名;END 包集合名;过程调用的方法:过程名(参数1
3、,参数2,);过程调用语句属于并发语句。(2). 函数(Function) 在程序包中定义的格式(用户自定义函数的设计方法):PACKAGE 包集合名 ISFUNCTION 函数名(参数1,参数2,) RETURN 数据类型名 END 包集合名; RETURN 数据类型名 IS(变量)定义语句 RETURN 变量名; END 函数名;函数调用的方法:出现于语句的表达式中。4. 过程与函数的主要区别函数只包含有输入参数,只有一个返回值;过程即包含有输入参数,也包含输出参数或输入输出参数,可以有多个返回值,这些返回值通过过程中定义的输出参数带回。5. 进程和子程序中使用的语句进程中和子程序的所有语
4、句按顺序执行, 只能使用顺序描述语句。6. VHDL语言中客体的概念及使用范围VHDL语言中可以赋予一个值的对象称为客体;客体主要包括三种:信号、常数、变量;信号和常数为全局量,变量为局部量。7. 信号和变量的区别及作用范围信号和变量值的代入不仅形式不同,而且操作过程也不相同。变量的赋值使用赋值符“:=”,信号的代入使用代入符“:=”。变量的赋值在赋值语句执行时立即生效,信号的代入在代入语句执行时并不立即发生,代入语句的处理和实际的代入过程是分开进行的。实际的代入过程在进程(PROCESS)或子程序(SUBPROGRAM)语句执行完毕时发生,与代入语句的处理存在延时。变量是局部量,作用范围是进
5、程和子程序;信号是全局量,作用范围是构造体、实体和程序包。例:ARCHITECTURE behave OF xinhao ISP1:PROCESS(A,B,C,D) BEGIN D=A; X = B+D;=C; Y END PROCESS ;-ARCHITECTURE behave OF xinhao_bianliang ISP2:PROCESS(A,B,C) VARIABLE D : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN D: X Y = A+D; END PROCESS;P1的运行结果: X = B+C , Y = B+C P2的运行结果:= B+A ,
6、Y 8. VHDL语言的数据类型和运算操作1)VHDL语言具有十种标准的数据类型2)用户定义的数据类型 包括枚举类型、 数组类型 、记录类型等枚举数据类型的定义方法: TYPE 数据类型名 IS (元素,元素,)3)VHDL语言共有4类运算操作:逻辑运算(Logical)关系运算(Relational)算术运算(Arithmetic)并置运算(Concatenation)9. VHDL语言构造体的三种描述方式 行为描述方式寄存器传输(数据流)描述方式结构化描述方式10. COMPONENT(元件)语句和COMPONENTINSTANT(元件例示)语句的功能和书写格式元件语句是最基本的描述语句,
7、在构造体中用来(说明)调用已设计好的逻辑描述模块 即元件(COMPONENT);COMPONENT 元件名 GENERIC 说明; PORT 说明; END COMPONENT;元件例示语句是在构造体的结构描述中不可缺少的一个基本语句,该语句将现成元件的端口信号映射成高层次设计电路中的信号,用来在构造体中产生一个现成元件的实例。标号名:元件名 GENERIC MAP(参数,参数,)PORT MAP(信号,信号,); 11. VHDL语言的主要描述语句的功能、使用场合和语法格式 (1)主要的并发语句 进程 信号代入语句 过程调用语句 块语句 元件例示语句(Component Instant) 生
8、成语句(Generate)(2)主要的顺序语句 WAIT语句 信号代入语句 变量赋值语句 IF语句 CASE语句 循环语句(FOR 循环,WHILE循环)注意:GENERATE(生成)语句和COMPONENTINSTANT(元件例示)语句是并发语句八位行波计数器的设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dffr IS PORT ( clk,clr,d: IN STD_LOGIC; q,qb : OUT STD_LOGIC); END dffr; ARCHITECTURE one OF dffr IS SIGNAL qin: STD
9、_LOGIC; BEGIN q = qin; qb = NOT qin; PROCESS( clk,clr) IF clr=1THEN qin = 0; ELSIF clkEVENT AND clk= d; END IF; END PROCESS; END one;ENTITY rplcont IS PORT ( clk,clr: count : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END rplcont; ARCHITECTURE one OF rplcont IS SIGNAL cntints: STD_LOGIC_VECTOR(8 DOWNTO 0); C
10、OMPONENT dffr IS PORT ( clk,clr,d: q,qb : END COMPONENT; BEGIN cntints(0)cntints(i),clr=clr, d=cntints(i+1),q=count(i),qb=cntints(i+1); END GENERATE; END one;12. VHDL语言的命名规则 注意:名字的最前面应该是英文字母,不能连续使用下划线_,名字的最后也不能使用_。13. VHDL语言的数值类属性描述 数值类属性用来得到数组、一般数据或程序块的有关值。 T LEFT 得到数值类或子类区间的最左端的值 RIGHT 得到数值类或子类区间的最右端的值 H
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1