电子设计自动化.ppt

上传人:s****8 文档编号:67243451 上传时间:2022-12-24 格式:PPT 页数:299 大小:442KB
返回 下载 相关 举报
电子设计自动化.ppt_第1页
第1页 / 共299页
电子设计自动化.ppt_第2页
第2页 / 共299页
点击查看更多>>
资源描述

《电子设计自动化.ppt》由会员分享,可在线阅读,更多相关《电子设计自动化.ppt(299页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、电子设计自动化电子设计自动化授课教师:何 旭第一章 电子设计自动化简介一、历史与现状二、EDA技术的基本特征三、EDA工具简介四、ASIC设计EDA的重要应用五、课程主要内容 一 历史与现状 传统的设计方法:上 上 设计分解 构造系统 下 下 设计分解:1 确定设计目标 2 功能分解 3 进一步细分,直至可用市面上买到 的元器件构建此模块为止构造系统:1 用市面上可买到的元器件构建 最底层模块 2 用较低一层模块构造较高一层模块 3 构造顶层模块传统设计方法的每一个设计步骤都要借助于经验和手工来完成,一个较为复杂的电子系统需要经过多次设计 测试 修改 再设计的反复迭代过程,才能完成。弊端:效率

2、低下、消耗量大弊端:效率低下、消耗量大电子设计自动化技术(Electronics Design Automation 简称EDA)是一种以计算机为基本工作平台,应用计算机图形学、拓扑逻辑学、计算数学、以及人工智能等多种计算机应用科学的最新成果开发出来的一整套软件工具,帮助电子设计工程师从事电子元件、产品和系统设计的综合技术。EDA的发展第一代:70年代 手工绘制PCB和IC版图 在计算机上完成第二代:80年代 仿真和自动布局布线第三代:90年代 高级语言描述、系统级仿真和综合,开始实 现“概念驱动工程”(Concept Driver Engineering,CED)的梦想。二、EDA技术的基本

3、特征第三代EDA技术的基本特征有三个方面:1.高级语言描述 2.自顶而下的分层设计 3.并行设计环境1.高级语言描述迫于Time-to-Market 的压力和设计大规模集成电路的需要,产生了硬件描述语言。HDL特点:(1)是一种计算机语言。(2)可以对电子系统进行分层设计 与描述。(3)描述即可抽象(高层的行为描述),也可具体(底层的结构描述)。(4)支持延迟仿真,可模拟硬件行为。(5)数据类型丰富,可自定义类型。2.自上而下的分层设计传统设计方法是自下而上缺点:即使每一个子系统分别满足设计要求 但整个系统的要求不一定得到满足现代设计方法是自上而下设计:特点:逐层描述、逐层模拟 保证满足系统指

4、标3.并行设计环境 将众多的软件工具集成在一起,对电子系统设计进行项目管理、流程控制、数据管理等工作,使原来各个独立的软件工具成为一个统一的设计软件包,便于使用和管理。新趋势:抛弃各公司专有设计环境,开发符合工业标准的公共设计平台和接口标准。三、EDA工具简介 1.设计输入工具 2.仿真工具 3.综合工具 4.PCB设计工具 5.IC/ASIC设计工具 6.库与库开发工具 7.机电一体化设计 8.软件设计工具四、ASIC设计EDA的重要应用 ASIC-Application Specific Integrated Circuit是根据某种整机或电子系统的要求而专门设计的IC。优点:集成度高、速

5、度快、可靠性好、保密性好、体积小、重量轻。1、ASIC分类 IC 通用IC 专用IC-ASIC 专用定制ASCP 面向多用户、特定领域ASSP 全定制ASIC 半定制ASIC常用的半定制ASIC:门阵列 (Gate Array)标准单元 (Standard Cell)可编程器件 (PLD)现场可编程门阵列 (FPGA)2.ASIC的设计方法(1)分离元器件(中小规模IC)的电路集成需要解决:电路结构调整,以适应实现电路优化测试码生成可借助工具实现(2)由功能到电路的设计实现根据系统或整机要求提指标,然后设计 较优化.的设计步骤()概念形成阶段()系统描述或电路设计阶段()功能仿真阶段()时序验

6、证仿真阶段()测试码生成,测试码仿真阶段()得到如下文件:全部电路图、自制库、时序仿真波形与输入激励、测试码仿真波形与相应的测试码,外引脚清单、交、直流特性。()布局布线()后仿真阶段()工艺测试码生成阶段()样片初测()样片终测 五、课程内容 HDL语言是当今EDA技术发展的突出代表 HDL分为 VHDL (侧重高层设计)Verilog (侧重结构设计)VHDL更适合一般电子设计工程师的需要,本课程主 要介绍VHDL语言。推荐参考书VHDL硬件描述语言与数字逻辑电路设计西安电子科技大学出版社 第二章 VHDL语言入门第一节 VHDL概念第二节 VHDL语言优缺点第三节 VHDL建模方法 第一

7、节 VHDL概念VHSIC-Very High Speed Integrated CircuitVHDL-VHSIC Hardware Description Language 传统设计方法:传统设计方法:原理图、真值表、原理图、真值表、卡诺图、状态方程卡诺图、状态方程 缺点:(1)费时费力,易于出错。(2)自己设计控制逻辑。(3)难于理解和维护。(4)需建立相应文档以说明功能。(5)原理图输入工具专用,难于移植。(6)不适合于系统仿真。在实行VHSIC计划(美国国防部于70年代末至80年代初实行的研制高速、大规模集成电路的开发计划)中,发现传统的设计方法无法满足开发这类非常复杂集成电路的要求

8、。81年 提出标准 87年 成为IEEE1076标准 93年 更新为IEEE1164标准 96年 IEEE1076.3成为综合标准VHDL是用于描述硬件系统、电路板和元件结构与功能的设计与建模语言。第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换强大而灵活l语言结构丰富l多层次描述l支持库和设计复用

9、l支持模块化设计l既可设计也可仿真第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换工艺独立lVHDL描述与器件和工艺无关l支持多种描述风格 支持多种描述风格网表:U1:xor2 port map a(0),b(0),x(0);U2:xor2 port map a(1),b(1),x(1);U3:nor2 port map x(0),x(1),aeqb;布尔方程:aeqb=(a(0)XOR b(0)NOR (a(1)XOR b(1);并行描述:aeqb =1 When a=b else 0;串行描述:IF a=b THEN ae

10、qb=1 ELSE aeqb =0 END IF;第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换第二节 VHDL语言优缺点一、优点:1.快速 2.强大而灵活 3.工艺独立 4.可移植性 5.测试能力 6.工艺转换二、缺点:(1)放弃对电路级实现的控制,代之抽象、高层描述。(2)综合器综合出的电路效率不高。(3)综合的效果随工具的不同而不同。第三节 VHDL建模方法 易于理解 VHDL应具备 易于修改VHDL构造

11、复杂设计的方法 (1)自顶向下设计 (2)模块化 (3)抽象 (4)信息隐藏 (5)一致性 第三章 VHDL基础 本章介绍基本的VHDL概念及与语言相关的术语 第一节 VHDL构件 第二节 基本语言结构 第三节 设计描述层次 第一节 VHDL构件VHDL由语言构件组成:75 个保留字200个描述字或字的组合保留字是对VHDL编译器有特殊意义的字。要求:严格按照VHDL定义使用。描述字组合并不出现在实际的VHDL程序中,仅在VHDL语法定义中使用,提供在构造VHDL描述时的构件名。例:port_clause 构件图 port_clause port (port_list );保留字 可表示为:p

12、ort_clause.port(port_list);第二节 基础语言结构 VHDL硬件模型的主要构成是 设计实体(Design Entity)。它可以表示一个电路单元(cell)、芯片(chip)电路板(board)或电子系统(subsystem)。设计实体由两部分构成:设计实体由两部分构成:实体声明(实体声明(Entity Declaration)Entity Declaration)结构体结构体 (Architecture Body)Architecture Body)Design Entity Entity Declaration Architecture Body库单元:可独立存在于

13、一个设计文件中,并被编译的硬件描述(模型)的部分。四种库单元:实体声明 结构体 封装声明(Package Declaration)封装体 (Package Body)允许声明(Declaration)和体(Body)的部分分别被编译。实体声明定义了设计实体与外部的接口 结构:ENTITY identifier IS entity_header -(generic and/or port clauses)entity_declarative_part -(declarations for subprograms,-types,signals,)BEGIN entity_statement_par

14、t END identifier;generic语句和port语句格式:generic_clause.generic(generic_list);port_clause .port (port_list);实体声明最简单的例子:ENTITY and2 IS a q PORT (a,b :IN bit;b q:OUT bit);END and2;结构体描述设计实体的输入与输出的关系 (设计实体的行为与结构)结构:ARCHITECTURE identifier OF entity_name IS architecture_declarative_part BEGIN architecture_st

15、atement_part END identifier;例如:ARCHITECTURE example OF and2 IS -declaration here BEGIN -statements here END example;每一个设计实体只能有一个实体声明,可有一个或多个结构体。(不同的抽象级别或算法)例:Entity Declaration Architecture Body behave trfc_lc rtl structure硬件描述似金字塔形,最顶层为实体声明(最基本单元)Entity Generic Port In Port OutArchitecture Architec

16、ture Architecture CS Block CS CS CS CS Block CS Block Process CS CP SS CS SS Block Process Process CS SS SS CS SS SS 第三节 设计描述层次 VHDL硬件描述的抽象层次为:行为级描述 (Behavioral Level Description)寄存器传输级描述 (Register Transfer Level(RTL)Description)结构级描述 (Structural Level Description)一、结构级描述 结构级描述用相互连接的元件来表达一个设计。这种方法比较

17、类似原理图。例:两输入多路器原理图表示,上层:下层:DoD1 QselD0Sel U3 aa U4 Q u1D1 U4 abnselVHDL描述:ENTITY mux IS -实体声明 PORT(d0,d1,sel:IN bit;q:OUT bit);-端口语句 END mux;-结构体 ARCHITECTURE struct OF mux IS COMPONENT and2 -结构声明部分 PORT(a,b:IN bit;c:OUT bit);END COMPONENT;COMPONENT or2 PORT(a,b:IN bit;c:OUT bit);END COMPONENT;COMPON

18、ENT inv PORT (a:IN bit c:OUT bit);END COMPONENT;SIGNAL aa,ab,nsel:bit -信号声明 FOR U1 :inv USE ENTITY WORK.Invrt(behav);-配置说明 FOR U2,U3:and2 USE ENTITY WORK.And_gt(dflw);-FOR U4 :or 2 USE ENTITY WORK.Or_gt(arch1);-BEGIN u1:inv PORT MAP(sel,nsel);-结构体描述部分 u2:and2 PORT MAP(nsel,d1,ab);u3:and2 PORT MAP(d0

19、,sel,aa);u4:or2 PORT MAP(aa,ab,q);END struct;二、行为级描述 行为级描述是用电路和信号对于各种激励的响应的方式来表达一个设计的功能。行为级描述着重用于描述硬件的算法,而不涉及其结构如何实现。它可用于快速建立与仿真整个电路功能,以及作为其它模块激励。例:多路器:ENTITY mux IS PORT(d0,d1,sel:IN bit;q:OUT bit);END mux;ARCHITECTURE behav OF mux IS BEGIN f1:PROCESS(d0,d1,sel)BEGIN IF (sel=0)THEN q=d1;ELSE q=d0;E

20、ND IF;END PROCESS f1;END behav;与结构级描述的主要区别是process 语句。Process语句格式为:process statement label:PROCESS (sensitivity_list)process_declarative_part BEGIN process_statement_part END PROCESS label;Process语句的核心内容是 IF语句,其格式为:if statement IF condition THEN sequence_of_statements ELSIF condition THEN sequence_o

21、f_statements ELSE sequence_of_statements END IF;if 语句用法与C、BASIC语言中用法相近。信号赋值语句:信号赋值语句:target=TRANSPORT waveform;上式中,上式中,=为组合分隔符,表示其右边的值为组合分隔符,表示其右边的值赋给左边的赋给左边的target。在在VHDL语言中,语言中,shifted :=shftin;WHEN “01”=shifted :=shftin(1 TO 3)&0;WHEN“10”=shifted :=0&shftin(0 TO 2);WHEN“11”=shifted :=shftin(0)&sh

22、ftin(0 TO 2);END CASE;shftout -case stmnt alternative sequence_of_statements END CASE;结构级描述与行为级描述的差异:结构级描述与行为级描述的差异:结构级描述确定了各种元件的连接,结构级描述确定了各种元件的连接,行为级描述确定了电路和信号对各种激励的算法。行为级描述确定了电路和信号对各种激励的算法。有信号赋值语句有信号赋值语句 -非结构级描述非结构级描述 有元件实例化语句有元件实例化语句-非行为级描述非行为级描述 三、三、RTL描述描述 RTL描述用从一个输入或寄存器到另一个寄存器或描述用从一个输入或寄存器到另

23、一个寄存器或 输出的信息流来确定一个设计的功能。输出的信息流来确定一个设计的功能。RTL描述和行为级描述都用描述和行为级描述都用process 来描述电路的功能。来描述电路的功能。行为级描述用少量行为级描述用少量process,每个每个process完成许多串行信号完成许多串行信号赋值。赋值。RTL描述用大量的并行信号赋值语句描述用大量的并行信号赋值语句。RTL描述使用下列并行语句(描述使用下列并行语句(concurrent):Block语句语句 并行程序调用(并行程序调用(procedure)并行断言语句(并行断言语句(assertion)并行信号赋值语句并行信号赋值语句以多路器(以多路器(

24、MUX)为例:为例:ENTITY mux IS -实体声明实体声明 PORT(d0,d1,sel:IN bit;q:OUT bit);-端口端口语句语句 END mux;-结构体结构体 ARCHITEDTURE rtl OF mux IS BEGIN csl:-并行信号并行信号赋值描述赋值描述 q =d1 WHEN sel=0 ELSE -条件条件信号描述信号描述 d0;END rtl;并行信号赋值语句的格式为:并行信号赋值语句的格式为:concurrent signal assignment statement label:conditional_signal_assignment .Or

25、label:selected_signal_assignmentconditional signal assignment target shifted:=shftin;WHEN“01”=shifted:=shftin(1 TO 3)&0;WHEN“10”=shifted:=0&shftin(0 TO 2);WHEN“11”=shifted:=shftin(0)&shftin(0 TO 2);END CASE;shftout=shifted AFTER 10 ns;END PROCESS f2;END behav;RTL级描述:ENTITY shifter IS PORT (shftin :I

26、N bit_vector(0 TO 3);shftout :OUT bit_vector(0 TO 3);shftctl :IN bit_vector(0 TO 1);END shifter;ARCHITECIURE rtl OF shifter ISBEGIN shftout(3)=0 AFTER 10 ns WHEN shftctl=“01”ELSE shftin(3)AFTER 10 ns WHEN shftctl=“00”ELSE shftin(2)AFTER 10 ns;shftout(2)=shftin(3)AFTER 10 ns WHEN shftctl=“01”ELSE shf

27、tin(2)AFTER 10 ns WHEN shftctl=“00”ELSE shftin(1)AFTER 10 ns;shftout(1)=shftin(2)AFTER 10 ns WHEN shftctl=“01”ELSE shftin(1)AFTER 10 ns WHEN shftctl=“00”ELSE shftin(0)AFTER 10 ns;shftout(0)=shftin(1)AFTER 10 ns WHEN shftctl=“01”ELSE 0 AFTER 10 ns WHEN shftctl=“10”ELSE shftin(0)AFTER 10 ns;END rtl;第四

28、章第四章 数据类型数据类型第一节第一节 数据类型定义数据类型定义第二节第二节 提取对象的信息提取对象的信息 第一节第一节 数据类型定义数据类型定义VHDL 数据类型分为:数量类型(Scalar Types)组合类型 (Composite Types)文件类型 (File Types)寻址类型 (Access Types)对象(Objects)是指装载指定类型值的容器。对象可以是信号、变量或常量。算子或子程序可对对象值进行处理。例:PORT(d0,d1,sel :IN bit;q :OUT bit);在预定义的package“standard”中,定义 bit类型是值为0或1的集合。TYPE b

29、it IS (0,1);一旦一个对象被声明为某一类型,那么在类型声明所界定的范围内可以对对象进行运算(或操作)。例:bit类型对象,可以定其值为0或1,但不能定其值为10(越界)类型声明的格式为:类型声明的格式为:type declaration TYPE identifier IS type_definition;*注意:identifier不能为预定义类型。子类型声明的格式为:子类型声明的格式为:subtype declaration SUBTYPE identifier IS subtype_indication;子类型并不是一个新类型,它是基类型的子集的一个新名字。例:TYPE con

30、trol_valves IS(on,off,standby,shutdown);SUBTYPE off_controls IS control_valves RANGE off TO shutdown;一、数量类型数量类型用相应的比例来说明。包括:物理类型(physical types)浮点类型 (floating types)枚举类型(enumeration types)整数类型(integer types)1.物理类型物理类型 可测量的量,用可测量基本单位的整数倍表达。可测量的量,用可测量基本单位的整数倍表达。格式为:格式为:physical type definition RANGE r

31、ange UNITS identifiers;-基准单位声名基准单位声名 identifier=abstract_literal name;END UNITSRange的结构为:的结构为:range attribute_name 或或simple_expression TO simple_expression 或或simple_expression DOWNTO simple_expression 预定义类型预定义类型:“time”。例:例:TYPE measure IS RANGE 0 TO 1,000,000,000 UNITS mm;cm=10 mm;dm=10 cm;m=1000 mm

32、;END UNITS;用用measure类型的例子:类型的例子:process_size:PROCESS(sig1)VARIABLE w,h:measure;BEGIN w:=(100cm+1 m)-10 mm;h:=20 cm+w;sig2 =z;-其它地方声明。其它地方声明。END PROCESS process_size;2.浮点类型浮点类型 定义了一个近于实数的数集合。定义了一个近于实数的数集合。由于精度有限,由于精度有限,如如 7/3=2.3333可取为可取为2.333格式:格式:floating type definition RANGE range预定义浮点类型预定义浮点类型:“

33、real”。例:例:定义定义half_hour 类型为:类型为:TYPE half_hour IS RANGE 0.0 TO 29.99;执行下列运算:执行下列运算:test_time:PROCESS VARIABLE test_t1:half_hour;BEGIN test_t1:=15.0+15.00;END PROCESS test_time;例:例:定义定义half_hour 类型为:类型为:TYPE half_hour IS RANGE 0.0 TO 29.99;执行下列运算:执行下列运算:test_time:PROCESS VARIABLE test_t1:half_hour;BE

34、GIN test_t1:=15.0+15.00;END PROCESS test_time;Error!3.枚举类型枚举类型定义一个用户化的数值集合。定义一个用户化的数值集合。格式格式:enumeration type definition (enumeration_literal1,enumeration_literaln)enumeration literal 可为标识符(字母、下划线、数字)可为标识符(字母、下划线、数字)或符号字(单引号括起的图形符号)或符号字(单引号括起的图形符号)例:例:TYPE wire_color IS (red,black,green)TYPE traffic

35、_light IS(red,yellow,green,flashing)预定义枚举类型:预定义枚举类型:bit,boolean,character,severity_level.4.整数类型整数类型格式:格式:integer type definition RANGE range 指定指定range时,编译器必须知道其值。时,编译器必须知道其值。预定义整数类型:integer例:例:TYPE test_int IS RANGE 0 TO black;例:例:TYPE test_int IS RANGE 0 TO black;Error!例:例:TYPE test_int IS RANGE 0

36、TO black;TYPE test_integer IS RANGE 0 TO ext_val;假定ext_val为外部输入参数Error!例:例:TYPE test_int IS RANGE 0 TO black;TYPE test_integer IS RANGE 0 TO ext_val;假定ext_val为外部输入参数Error!Error!二、组合类型二、组合类型用一个标识符代表一组值。用一个标识符代表一组值。分为:分为:数组类型数组类型(Array Types)记录类型记录类型(Record Types)1.数组类型 相同类型的元素的集合。可以为一或多维数组。可用指针(index

37、)指向元素。数组定义:数组定义:无约束数组定义无约束数组定义(unconstrained)(大小不定)大小不定)受约束数组定义受约束数组定义(constrained)(大小指定)大小指定)格式:受约束数组:格式:受约束数组:constrained array definition ARRY index_constraint OF subtype_indication 无约束数组:无约束数组:unconstrained array definition ARRY(type_mark RANGE)OF subtype_indication例:例:受约束的:受约束的:TYPE arr1 IS ARR

38、Y (0 TO 4)OF integer;无约束的:无约束的:TYPE mem_arr IS ARRY(0 TO 1023)OF integer;TYPE arr2 IS ARRY(integer RANGE)OF mem_arr;2.记录类型记录类型 元素可为各种类型。元素可为各种类型。格式:格式:record type definition RECORD identifier_list:element_subtype_definition END RECORD例:例:TYPE half_day IS(am,pm);TYPE clock_time IS RECORD hour:integer

39、 RANGE 1 TO 12;minute,second:integer RANGE 1 TO 60;ampm:half_day;END RECORD;用法:用法:VARIABLE time_of_day:clock_time;.time_of_day.minute:=35;start_hour:=time_of_day.hour;三、文件类型定义外部文件所存数据类型格式:file type definition FILE OF type_mark四、寻址类型其值指向其它对象格式:Access_type_definition ACCESS subtype_indication第二节第二节 提取

40、对象的信息提取对象的信息利用属性(attribute)提取对象信息用于运算和测试可供提取信息的对象类型有:数组(Arrays)块 (Blocks)信号 (Signals)类型 (Types)属性定义格式:attribute name prefix attribute_simple_name对象或函数调用例:属性 eventLIBRARY my_lib;USE my_lib.my_qsim_logic.ALL;ENTITY incomplete_counter ISPORT(clock,data:IN my_qsim_state;q_out:INOUT my_qsim_state);END in

41、complete_counter;ARCHITECTURE behav OF incomplete_counter ISBEGIN q_out=data WHEN clockevent AND clock=1 ELSE q_out;END behav;01例:属性 left和 rightTYPE high_byte IS RANGE 28 TO 31;FOR i IN high_byte left TO high_byteright LOOP END LOOP;例:属性 pos(x)返回x的位置值TYPE opcode IS(mov,lda,sta,jmp,ret,add,sub,nop,hl

42、t);CONSTANT stop:integer:=opcode pos(hlt);例:属性 pos(x)返回x的位置值TYPE opcode IS(mov,lda,sta,jmp,ret,add,sub,nop,hlt);CONSTANT stop:integer:=opcode pos(hlt);0 1 2 3 4 5 6 7 8 Stop=8第五章 分解设计功能的结构第一节 并行分解第二节 串行分解第三节 并行与串行建模比较第四节 信号与变量赋值第五节 多值驱动的决断第六节 产生共享模块Delta延迟 Block1 Block2 Process1CS1 CS2 CS3 CS1 CS2 C

43、S3 SS1 SS2 SS3递归1时间第一节 并行分解构造硬件并行执行的功能VHDL语言中并行语句有l并行信号赋值语句lProcess语句l并行程序(procedure)调用l并行断言(assertion)语句lBlock语句l元件实例化语句lGenerate语句VHDL语言中并行语句有l并行信号赋值语句lProcess语句l并行程序(procedure)调用l并行断言(assertion)语句lBlock语句l元件实例化语句lGenerate语句一、Block语句 Block语句是分解硬件功能的主要的并行语句。它将多个并行语句归入一个设计单元。格式:block statement label

44、:BLOCK(expression)block_declarative_item BEGINconcurrent_statement END BLOCK label;例:ENTITY bistable_latch ISPORT(enable,data:IN bit;q,q_not :OUT bit);END bistable_latch;ARCHITECTURE example OF bistable_latch ISBEGINlatch1:BLOCK(enable=1)SIGNAL d_in:bit;BEGINd_in=GUARDED data;q=d_in;q_not 12 ns;gene

45、ric map:prop_delay=10 ns;generic map:prop_delay=8 ns;第二节 串行分解硬件功能串行执行的结构在VHDL语言中可用作串行执行的语句有:l控制语句(Control Statements)If语句、Case语句、Wait语句 在VHDL语言中可用作串行执行的语句有:l控制语句(Control Statements)l循环语句(Looping Statements)在VHDL语言中可用作串行执行的语句有:l控制语句(Control Statements)l循环语句(Looping Statements)Loop语句、Next语句、Exit语句在VHD

46、L语言中可用作串行执行的语句有:l控制语句(Control Statements)l循环语句(Looping Statements)l赋值语句(Assignments)在VHDL语言中可用作串行执行的语句有:l控制语句(Control Statements)l循环语句(Looping Statements)l赋值语句(Assignments)信号赋值、变量赋值在VHDL语言中可用作串行执行的语句有:l控制语句(Control Statements)l循环语句(Looping Statements)l赋值语句(Assignments)l断言语句(Assertion Statement)l返回语句

47、(Return Statement)l空语句 (Null Statement)l子程序 (Subprograms)在VHDL语言中可用作串行执行的语句有:l控制语句(Control Statements)l循环语句(Looping Statements)l赋值语句(Assignments)l断言语句(Assertion Statement)l返回语句(Return Statement)l空语句 (Null Statement)l子程序 (Subprograms)子程序(Subprograms)用算法计算值,然后返回分为:procedurefunction子程序结构:子程序声明(subprogr

48、am declaration)子程序体 (subprogram body)subprogram subprogram declaration subprogram body子程序声明定义子程序与外部环境接口子程序体为算法或行为描述通过调用子程序使主程序阅读更为方便主程序关心的是发生了什么事(What happened)子程序描述怎么发生的(How happeded)Procedure 与function的区别:function只返回一个值(用return),且不改变其它值。procedure可返回多个值(无return),或不返回值,可改变其它值。主程序Procedure Call RAM L

49、oad Procedure RAM FileProcedure Call RAM Read ProcedureProcedure Call Concat RAM Data Procedure Function Call Check Parity FunctionOp_Code(256)Op_Code(256)RAM_Code(4)AddressRAM_Data(4)RAM_Data(4)RAM_Data_ConcRAM_Data_ConcOp_Code_ConcBoolean ValueRAM_Package子程序在package中定义。主程序在调用前需要用Library语句和Use语句使之可

50、见。说明:子程序声明的格式:PROCEDURE designator(formal_parameter_list);-或者FUNCTION designator(formal_parameter_list)RETURN type_mark;子程序体的格式:PROCEDURE designator(formal_parameter_list)IS-或者FUNCTION designator(formal_parameter_list)RETURN type_mark ISsubprogram_declarative_partBEGINsubprogram_statement_partEND de

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com