数字集成电路设计工具及使用_第1页
数字集成电路设计工具及使用_第2页
数字集成电路设计工具及使用_第3页
数字集成电路设计工具及使用_第4页
数字集成电路设计工具及使用_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

1、电子设计自动化电子设计自动化数字集成电路设计工具及使用 数字集成电路设计分为前端设计和后端设计两部分,前端设计指综合及综合之前的相关设计步骤,而后端设计指综合之后直到Tape out的相关步骤。 典型的前端设计流程如下图所示:电子设计自动化电子设计自动化前端设计前端设计 数字数字IC设计流程设计流程电子设计自动化电子设计自动化后端设计后端设计电子设计自动化电子设计自动化设计输入:设计输入:以电路图或以电路图或HDLHDL语言的形式形语言的形式形成电路文件;输入的文件经过编译后,可成电路文件;输入的文件经过编译后,可以形成对电路逻辑模型的标准描述;以形成对电路逻辑模型的标准描述;逻辑仿真(功能仿

2、真):逻辑仿真(功能仿真):对如上形成的逻对如上形成的逻辑描述加入输入测试信号,检查输出信号辑描述加入输入测试信号,检查输出信号是否满足设计要求;在此没有考虑任何时是否满足设计要求;在此没有考虑任何时间关系,只是检测逻辑是否有错;间关系,只是检测逻辑是否有错;数字集成电路的设计流程数字集成电路的设计流程电子设计自动化电子设计自动化系统分割(设计综合):系统分割(设计综合):采用特定的设计采用特定的设计方法分解实现电路模型,得到电路实际采方法分解实现电路模型,得到电路实际采用的逻辑单元及其相互连接形式;在用的逻辑单元及其相互连接形式;在GAGA设设计时,电路会分割为计时,电路会分割为2-32-3

3、输入的逻辑单元,输入的逻辑单元,在在FPGAFPGA设计中,分割为设计中,分割为4 4输入逻辑单元输入逻辑单元, ,而而采用采用CPLDCPLD设计时,则分割为更大的逻辑单设计时,则分割为更大的逻辑单元。元。数字集成电路的设计流程数字集成电路的设计流程电子设计自动化电子设计自动化前仿真:前仿真:采用综合出的电路结构,对每个采用综合出的电路结构,对每个逻辑单元添加上对应的时间延迟信息;在逻辑单元添加上对应的时间延迟信息;在此基础上进行仿真,检测电路是否存在逻此基础上进行仿真,检测电路是否存在逻辑或时序错误;辑或时序错误;电路的布局,定位与布线:电路的布局,定位与布线:对于通过前仿对于通过前仿真的

4、电路系统,从全局到局部,进行每个真的电路系统,从全局到局部,进行每个单元的定位以及相关的连线安排;单元的定位以及相关的连线安排;数字集成电路的设计流程数字集成电路的设计流程电子设计自动化电子设计自动化电路参数提取:电路参数提取:根据连线的具体长度和负根据连线的具体长度和负载程度,提取每一根连线的电阻载程度,提取每一根连线的电阻/ /电容参电容参数,得到相应的时间延迟信息;数,得到相应的时间延迟信息;后仿真:后仿真:将提取的连线参数代入到电路中,将提取的连线参数代入到电路中,在此基础上进行仿真,检测电路是否存在在此基础上进行仿真,检测电路是否存在逻辑或时序错误;逻辑或时序错误;数字集成电路的设计

5、流程数字集成电路的设计流程电子设计自动化电子设计自动化在逻辑设计阶段,针对设计的输入编辑、在逻辑设计阶段,针对设计的输入编辑、仿真和综合过程,需要使用必要的软件工仿真和综合过程,需要使用必要的软件工具进行支持;具进行支持;这种设计工具主要可以分为两类:这种设计工具主要可以分为两类: 一类是由一类是由PLDPLD的制造商推出的针对特定器的制造商推出的针对特定器件的设计工具;另一类是由专业软件公司件的设计工具;另一类是由专业软件公司推出的针对特定用途的设计工具。推出的针对特定用途的设计工具。数字集成电路的设计工具数字集成电路的设计工具电子设计自动化电子设计自动化由由PLDPLD的制造商推出,例如的

6、制造商推出,例如AlteraAltera公司的公司的Maxplus II,Quartus IIMaxplus II,Quartus II,XilinxXilinx公司的公司的ISEISE等。这类工具的优点是从设计输入直等。这类工具的优点是从设计输入直到器件下载,设计的全过程都能在一个工到器件下载,设计的全过程都能在一个工具中实现,使用非常简单方便;缺点是该具中实现,使用非常简单方便;缺点是该类工具以器件综合为目标,对于不能实现类工具以器件综合为目标,对于不能实现直接综合的电路的行为设计不能支持。直接综合的电路的行为设计不能支持。针对特定器件的设计工具针对特定器件的设计工具电子设计自动化电子设计

7、自动化由专业的工具设计者推出,例如由专业的工具设计者推出,例如SynplicitySynplicity公公司的综合工具司的综合工具Synplify,Synplify, Model TechnologyModel Technology公公司的仿真工具司的仿真工具ModelSimModelSim等。这类工具通常专业等。这类工具通常专业性比较强,包容性好,可以最大限度地兼容性比较强,包容性好,可以最大限度地兼容HDLHDL语言的各种描述,适应从抽象到具体的各语言的各种描述,适应从抽象到具体的各种设计方式。缺点是其专用性比较强,使用的种设计方式。缺点是其专用性比较强,使用的简便性不及第一类。简便性不及

8、第一类。针对特定用途的设计工具针对特定用途的设计工具电子设计自动化电子设计自动化仿真工具仿真工具ModelSimModelSim综合工具综合工具SynplifySynplify 设计工具设计工具Maxplus II,Quartus Maxplus II,Quartus 关于设计工具的简单介绍关于设计工具的简单介绍电子设计自动化电子设计自动化电路仿真的要点电路仿真的要点使用输入向量对电路模型进行测试;使用输入向量对电路模型进行测试;仿真失败表明该模型存在错误(不能工作);仿真失败表明该模型存在错误(不能工作);仿真成功不能证明该模型正确仿真成功不能证明该模型正确! !仿真可以从高级别到低级别分为

9、很多层次,高仿真可以从高级别到低级别分为很多层次,高级别比较抽象,低级别比较详细。级别比较抽象,低级别比较详细。电子设计自动化电子设计自动化行为仿真行为仿真( (功能仿真)功能仿真)对于行为模型进行仿真:对于行为模型进行仿真:根据输入的变化或指定的时间,开始一个仿真根据输入的变化或指定的时间,开始一个仿真循环,执行所有进程;循环,执行所有进程;每个进程启动执行到其中止为止;每个进程启动执行到其中止为止;模型中的有效信号更新时,会产生一个事件;模型中的有效信号更新时,会产生一个事件;如果在本仿真循环中有信号产生了事件,则仿如果在本仿真循环中有信号产生了事件,则仿真将重新执行一遍;真将重新执行一遍

10、;仿真循环的执行时间为仿真循环的执行时间为deltadelta时间。时间。电子设计自动化电子设计自动化结构仿真(前仿真)结构仿真(前仿真)对于电路逻辑结构模型进行仿真:对于电路逻辑结构模型进行仿真:结构仿真可以根据使用器件的情况,为不同的结构仿真可以根据使用器件的情况,为不同的元件添加不同的延迟时间,所以能够在一定程元件添加不同的延迟时间,所以能够在一定程度上反映出电路的时间性能,并分析影响电路度上反映出电路的时间性能,并分析影响电路速度的关键因素,便于对电路进行修改。速度的关键因素,便于对电路进行修改。电子设计自动化电子设计自动化电路仿真(后仿真)电路仿真(后仿真)对于布局布线后的电路模型进

11、行仿真:对于布局布线后的电路模型进行仿真:电路仿真可以根据器件的布局和连接情况,通电路仿真可以根据器件的布局和连接情况,通过从电路中提取连线物理参数,估算出连线延过从电路中提取连线物理参数,估算出连线延迟,从而为电路中信号的传递附加传输延迟,迟,从而为电路中信号的传递附加传输延迟,能够更准确地反映出电路的时间性能,便于进能够更准确地反映出电路的时间性能,便于进行电路的时序设计修改。行电路的时序设计修改。电子设计自动化电子设计自动化数字电路设计与Verilog 硬件描述HDL(Hardware Description Language)语言,是一种用形式化方法来描述数字电路和系统的语言。HDL语

12、言既包含一些高层程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体构件。 通过使用结构级或行为级描述可以在不同的抽象层次描述设计,主要包括三个领域五个抽象层次。 HDL语言是并发的,即具有在同一时刻执行多任务的能力。 HDL语言有时序的概念。电子设计自动化电子设计自动化什么是硬件描述语言什么是硬件描述语言HDL 具有特殊结构能够对硬件逻辑电路的功能进行描述的具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言一种高级编程语言 这种特殊结构能够:这种特殊结构能够: 描述电路的连接描述电路的连接 描述电路的功能描述电路的功能 在不同抽象级上描述电路在不同抽象级上描述电路 描述电路的

13、时序描述电路的时序 表达具有并行性表达具有并行性 HDL主要有两种:主要有两种:Verilog和和VHDL Verilog起源于起源于C语言,因此非常类似于语言,因此非常类似于C语言,容易掌握语言,容易掌握 VHDL起源于起源于ADA语言,格式严谨,不易学习。语言,格式严谨,不易学习。 VHDL出现较晚,但标准化早。出现较晚,但标准化早。IEEE 1706-1985标准。标准。电子设计自动化电子设计自动化为什么使用为什么使用HDL 使用使用HDL描述设计具有下列优点:描述设计具有下列优点: 设计在高层次进行,与具体实现无关设计在高层次进行,与具体实现无关 设计开发更加容易设计开发更加容易 早在

14、设计期间就能发现问题早在设计期间就能发现问题 能够自动的将高级描述映射到具体工艺实现能够自动的将高级描述映射到具体工艺实现 在具体实现时才做出某些决定在具体实现时才做出某些决定 HDL具有更大的灵活性具有更大的灵活性 可重用可重用 可以选择工具及生产厂可以选择工具及生产厂 HDL能够利用先进的软件能够利用先进的软件 更快的输入更快的输入 易于管理易于管理电子设计自动化电子设计自动化Verilog的历史的历史Verilog HDL是在是在1983年由年由GDA(GateWay Design Automation)公司的公司的Phil Moorby所创。所创。Phi MoorbyPhi Moorb

15、y后来成为后来成为Verilog-XLVerilog-XL的主要设计者和的主要设计者和CadenceCadence公司的第一个合伙人。公司的第一个合伙人。在在1984198519841985年间,年间,MoorbyMoorby设计出了第一个设计出了第一个Verilog-XLVerilog-XL的仿真器。的仿真器。19861986年,年,MoorbyMoorby提出了用于快速门级仿真的提出了用于快速门级仿真的XLXL算法。算法。19901990年,年,CadenceCadence公司收购了公司收购了GDAGDA公司公司19911991年,年,CadenceCadence公司公开发表公司公开发表V

16、erilogVerilog语言,成立了语言,成立了OVI(Open OVI(Open Verilog International)Verilog International)组织来负责组织来负责Verilog HDLVerilog HDL语言的发展。语言的发展。19951995年制定了年制定了Verilog HDLVerilog HDL的的IEEEIEEE标准,即标准,即IEEE1364IEEE1364。电子设计自动化电子设计自动化Verilog的用途的用途 Verilog的主要应用包括:的主要应用包括: ASICASIC和和FPGAFPGA工程师编写可综合的工程师编写可综合的RTLRTL代码

17、代码 高抽象级系统仿真进行系统结构开发高抽象级系统仿真进行系统结构开发 测试工程师用于编写各种层次的测试程序测试工程师用于编写各种层次的测试程序 用于用于ASICASIC和和FPGAFPGA单元或更高层次的模块的模型开发单元或更高层次的模块的模型开发电子设计自动化电子设计自动化抽象级抽象级(Levels of Abstraction) VerilogVerilog既是一种行为描述的语言也是一种结构描述语既是一种行为描述的语言也是一种结构描述语言。言。VerilogVerilog模型可以是实际电路的不同级别的抽象。模型可以是实际电路的不同级别的抽象。这些抽象的级别包括:这些抽象的级别包括:系统说

18、明系统说明-设计文档设计文档/算法描述算法描述RTL/功能级功能级-Verilog门级门级/结构级结构级-Verilog版图版图/物理级物理级-几何图形几何图形行为综合行为综合综合前仿真综合前仿真逻辑综合逻辑综合综合后仿真综合后仿真版图版图电子设计自动化电子设计自动化抽象级抽象级(Levels of Abstraction) 在抽象级上需要进行折衷在抽象级上需要进行折衷系统说明系统说明-设计文档设计文档/算术描述算术描述RTL/功能级功能级-Verilog门级门级/结构级结构级-Verilog版图版图/物理级物理级-几何图形几何图形详细程度详细程度 低低 高高输入输入/仿真速度仿真速度 高高

19、低低电子设计自动化电子设计自动化抽象级抽象级(Levels of Abstraction)VerilogVerilog可以在三种抽象级上进行描述可以在三种抽象级上进行描述行为级行为级 用功能块之间的数据流对系统进行描述用功能块之间的数据流对系统进行描述 在需要时在函数块之间进行调度赋值。在需要时在函数块之间进行调度赋值。RTL级级/功能级功能级用功能块内部或功能块之间的数据流和控制信号描述系统用功能块内部或功能块之间的数据流和控制信号描述系统基于一个已定义的时钟的周期来定义系统模型基于一个已定义的时钟的周期来定义系统模型结构级结构级/门级门级用基本单元用基本单元(primitive)或低层元件

20、或低层元件(component)的连接来描述系的连接来描述系统以得到更高的精确性,特别是时序方面。统以得到更高的精确性,特别是时序方面。在综合时用特定工艺和低层元件将在综合时用特定工艺和低层元件将RTL描述映射到门级网表描述映射到门级网表电子设计自动化电子设计自动化抽象级抽象级(Levels of Abstraction) 设计工程师在不同的设计阶段采用不同的抽象级设计工程师在不同的设计阶段采用不同的抽象级 首先在行为级描述各功能块,以降低描述难度,提高仿真速度。首先在行为级描述各功能块,以降低描述难度,提高仿真速度。 在综合前将各功能模块进行在综合前将各功能模块进行RTL级描述。级描述。 用

21、于综合的库中的大多数单元采用结构级描述。在本教程中的结用于综合的库中的大多数单元采用结构级描述。在本教程中的结构级描述部分将对结构级构级描述部分将对结构级(门级门级)描述进行更详细的说明。描述进行更详细的说明。 Verilog还有一定的晶体管级描述能力及算法级描述能力还有一定的晶体管级描述能力及算法级描述能力电子设计自动化电子设计自动化行为级和行为级和RTL级级MUX的行为可以描述为:只要信号的行为可以描述为:只要信号a或或b或或sel发生变化,如果发生变化,如果sel为为0则选择则选择a输出;否则选择输出;否则选择b输出。输出。module muxtwo (out, a, b, sel);

22、input a, b, sel; output out; reg out;always ( sel or a or b) if (! sel) out = a; else out = b;endmodule这个行为级这个行为级RTL描述不处理描述不处理X和和Z状态输入,并且没有延时。状态输入,并且没有延时。在行为级模型中,逻辑功能描述采用高级语言结构,如在行为级模型中,逻辑功能描述采用高级语言结构,如, while,wait,if, case。Testbench(test fixture)通常采用行为级描述。所有行为级结构在通常采用行为级描述。所有行为级结构在testbench描描述中都可以采

23、用。述中都可以采用。RTL模型中数据流都是基于时钟的。任何时钟元件在时钟沿处的行为都要精模型中数据流都是基于时钟的。任何时钟元件在时钟沿处的行为都要精确描述。确描述。RTL级描述是行为级级描述是行为级Verilog的子集。的子集。电子设计自动化电子设计自动化仅需一种语言仅需一种语言Verilog的一个主要特点是可应用于各种抽象级。建模时可采用门的一个主要特点是可应用于各种抽象级。建模时可采用门级和级和RTL级混合描述,在开发级混合描述,在开发testfixture时可以采用行为级描述。时可以采用行为级描述。电子设计自动化电子设计自动化结构级描述结构级描述结构级结构级Verilog适合开发小规模

24、元件,如适合开发小规模元件,如ASIC和和FPGA的单元的单元 Verilog内部带有描述基本逻辑功能的基本单元内部带有描述基本逻辑功能的基本单元(primitive),如,如and门门。 用户可以定义自己的基本单元用户可以定义自己的基本单元UDP(User Defined Privitives) 综合产生的结果网表通常是结构级的。用户可以用结构级描述粘接综合产生的结果网表通常是结构级的。用户可以用结构级描述粘接(glue)逻辑。逻辑。下面是下面是MUX的结构级描述,采用的结构级描述,采用Verilog基本单元基本单元(门门)描述。描述描述。描述中含有传输延时。中含有传输延时。module t

25、womux (out, a, b, sl); input a, b, sl; output out; not u1 (nsl, sl ); and #1 u2 (sela, a, nsl); and #1 u3 (selb, b, sl); or #2 u4 (out, sela, selb);endmodule综合不综合不支持支持!电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 数数字字电电路路= =线线+ +器器件件 线:线:器器件件管管教教之之间间的的物物理理连连接接 器器件:件:组组合合逻逻辑辑(如如与与或或非非门门等)等)和和时时序序逻逻辑辑器器件件(如如寄寄存存

26、器、器、锁锁存存器、器、R RA AM M等)等) V Ve er ri il lo og g H HD DL L建建模:模:使使用用H HD DL L语语言言对对数数字字电电路路的的两两种种基基本本要要素素的的特特性性及及相相互互之之间间的的关关系系进进行行描描述。述。2.1 建模建模电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 是是V Ve er ri il lo og g的的基基本本描描述述单单元,元,用用于于描描述述某某个个设设计计的的功功能能或或结结构构及及其其与与其其他他模模块块通通信信的的外外部部端端口口 概概念念上上可可等等同同一一个个器器件,件,如如通通

27、用用器器件件(与与门、门、三三态态门门等)等)或或通通用用宏宏单单元元(计计数数器、器、A AL LU U、C CP PU U)等。等。 模模块块可可被被另另一一个个模模块块调调用用 一一个个电电路路设设计计可可由由多多个个模模块块组组合合而而成。成。2.2 模块(模块(module)电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 例例1.加法器加法器2.2 模块(模块(module)简单实例简单实例电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 例例2.比较器比较器2.2 模块(模块(module)简单实例简单实例电子设计自动化电子设计自动化Veril

28、og HDL建模概述建模概述 例例3.三态门驱动器三态门驱动器2.2 模块(模块(module)简单实例简单实例电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 模块内容位于模块内容位于module和和endmodule两个语句两个语句之间之间 模块包括模块包括接口描述接口描述部分和部分和逻辑功能描述逻辑功能描述部分。部分。可与实际器件相类比可与实际器件相类比 每个模块要进行端口定义,并说明输入、输每个模块要进行端口定义,并说明输入、输出口,然后对模块的功能进行逻辑描述(测出口,然后对模块的功能进行逻辑描述(测试模块例外)试模块例外) 书写格式自由,一行可以写几个语句,一个书

29、写格式自由,一行可以写几个语句,一个语句可以分几行写。语句可以分几行写。 除除endmodule与局外,每个语句后面需要有与局外,每个语句后面需要有分号表示该语句结束分号表示该语句结束2.3 模块的结构模块的结构电子设计自动化电子设计自动化Verilog HDL建模概述建模概述2.4 模块语法模块语法电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 一个模块用一个文件一个模块用一个文件 模块名与文件名要同名模块名与文件名要同名 一行一句语句一行一句语句 信号方向按输入、输出、双向顺序描述信号方向按输入、输出、双向顺序描述 尽量采用参数化,提高设计的重用尽量采用参数化,提高设计

30、的重用2.5 书写语法建议书写语法建议电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 信号在电路中传输会有传播延时,如线延时、信号在电路中传输会有传播延时,如线延时、器件延时等器件延时等 时延就是对延时特性的时延就是对延时特性的HDL描述描述 所有时延都必须根据时间单位进行定义,定所有时延都必须根据时间单位进行定义,定义方式为在文件头添加如下语句:义方式为在文件头添加如下语句: 是是Verilog HDL提供的预编译处理命提供的预编译处理命令,令,1ns表示时间单位是表示时间单位是1ns,100ps表示时间表示时间精度是精度是100ps。2.6 时延时延电子设计自动化电子设

31、计自动化Verilog HDL建模概述建模概述 表示表示B信号在信号在2个时间单位后得到个时间单位后得到A信号的值。信号的值。2.6 时延时延时延举例时延举例电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 结构化描述方式结构化描述方式 数据流描述方式数据流描述方式 行为描述方式行为描述方式2.7 三种建模方式三种建模方式电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 通过对电路结构的描述来建模,即通过对器件通过对电路结构的描述来建模,即通过对器件的调用(的调用(HDL概念称为概念称为“例化例化”),并使用线),并使用线来连接各器件的描述方式来连接各器件的

32、描述方式 器件包括:器件包括:Verilog的内置门(如与门的内置门(如与门and,异,异或门或门xor等),也可以是用户的一个设计等),也可以是用户的一个设计 反映了一个设计的层次结构反映了一个设计的层次结构2.7 三种建模方式三种建模方式结构化描述方式结构化描述方式电子设计自动化电子设计自动化Verilog HDL建模概述建模概述2.7 三种建模方式三种建模方式结构化描述方式例结构化描述方式例1:一位全加器:一位全加器电子设计自动化电子设计自动化Verilog HDL建模概述建模概述1.两个异或门、两个与门、一个两个异或门、两个与门、一个或门或门2.S1、T1、T2是门与门之间的连是门与门

33、之间的连线线3.纯结构的建模方式纯结构的建模方式4.Xor、and、or为为Verilog内置内置的门器件的门器件Xor表明调用一个内置的异或表明调用一个内置的异或门,器件名称门,器件名称xor,代码实例,代码实例化名化名X1;括号内的;括号内的S1,A,B表明该器件管脚的实际表明该器件管脚的实际连接线的名称,其中连接线的名称,其中A、B是是输入,输入,S1是输出。其他相同是输出。其他相同一一位位全全加加器器代代码码电子设计自动化电子设计自动化Verilog HDL建模概述建模概述结构化描述方式例结构化描述方式例2:两位全加器:两位全加器两位全加器结构示意框图两位全加器结构示意框图电子设计自动

34、化电子设计自动化Verilog HDL建模概述建模概述两两位位全全加加器器代代码码电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 通过对数据流在设计中的具体行为的描述来建模通过对数据流在设计中的具体行为的描述来建模 使用使用连续赋值语句连续赋值语句。 借助于借助于Verilog提供的一些运算符,如按位逻辑运提供的一些运算符,如按位逻辑运算,逻辑与(算,逻辑与(&),逻辑或(),逻辑或(|)等)等2.7 三种建模方式三种建模方式数据流描述方式数据流描述方式电子设计自动化电子设计自动化Verilog HDL建模概述2.7 三种建模方式三种建模方式数据流描述方式例数据流描

35、述方式例1:一位全加器:一位全加器电子设计自动化电子设计自动化Verilog HDL建模概述一一位位全全加加器器代代码码 注意:各注意:各assign语语句之间是并行执行的,句之间是并行执行的,即各语句的执行与语即各语句的执行与语句之间的顺序无关。句之间的顺序无关。 如上,当如上,当A有变化时,有变化时,S1、T2将同时变化,将同时变化,S1的变化又会造成的变化又会造成Sum和和T1的同时变化。的同时变化。电子设计自动化电子设计自动化Verilog HDL建模概述 采用对信号行为级的描述(不是结构级的描述)采用对信号行为级的描述(不是结构级的描述)的方法来建模的方法来建模 一般采用一般采用in

36、itial块语句或块语句或always块语句块语句 通常采用行为级的运算符如加法(通常采用行为级的运算符如加法(+),减法),减法(-)运算符等)运算符等2.7 三种建模方式三种建模方式行为描述方式行为描述方式电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 一位全加器行为建模一位全加器行为建模 注意:注意: 只有寄存器类型的信号才只有寄存器类型的信号才可以在可以在always和和initial语语句中进行赋值,类型定义句中进行赋值,类型定义通过通过reg语句实现语句实现 Always语句一直重复执行,语句一直重复执行,由敏感表中的变量触发由敏感表中的变量触发 在在begin

37、和和end之间的语句之间的语句顺序执行,属于串行语句顺序执行,属于串行语句行为描述方式例行为描述方式例1电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 一位全加器行为建模一位全加器行为建模 采用更高级(更趋于采用更高级(更趋于行为级)的描述方式,行为级)的描述方式,即直接采用即直接采用“+”来描来描述加法述加法 Cout , Sun表述将两表述将两个信号拼接成一个宽个信号拼接成一个宽度更长的信号。度更长的信号。行为描述方式例行为描述方式例2电子设计自动化电子设计自动化Verilog HDL建模概述建模概述 实际设计中往往是多种设计模式的混合。实际设计中往往是多种设计模式的混

38、合。 一般,对顶层设计采用结构描述方式;对底层一般,对顶层设计采用结构描述方式;对底层模块,可采用数据流、行为级或两者的结合模块,可采用数据流、行为级或两者的结合 如上面的两位全加器,对顶层模块如上面的两位全加器,对顶层模块(Four_bit_FA)采用结构描述方式进行)采用结构描述方式进行“例例化化”,对底层模块,对底层模块(FA)可采用结构描述、数据可采用结构描述、数据流描述或行为描述。流描述或行为描述。2.7 三种建模方式三种建模方式混合设计描述混合设计描述电子设计自动化电子设计自动化Verilog HDL基本语法基本语法 标识符标识符 注释注释 格式格式 数字值集合数字值集合 数据类型

39、数据类型 运算符和表达式运算符和表达式 条件语句条件语句 Case语句语句电子设计自动化电子设计自动化1、标识符、标识符 定义:标识符(定义:标识符(identifier)用于定义模块名、)用于定义模块名、端口名、信号等。端口名、信号等。 可以是一组可以是一组字母、数字、字母、数字、$符号和符号和_(下划线下划线)符符号号的组合,但标识符的的组合,但标识符的第一个字符必须是字母第一个字符必须是字母或者下划线或者下划线。另外,。另外,标识符区分大小写标识符区分大小写。 例:例:Count COUNT /与与Count不同不同 R56_68 FIVE$ 关键字,关键字,Verilog中的保留字。注

40、意:只有小写中的保留字。注意:只有小写的关键字才是保留字的关键字才是保留字电子设计自动化电子设计自动化书写规范建议书写规范建议 用有意义的有效的名字,如用有意义的有效的名字,如Sum、CPU_addr等等 用下划线区分词用下划线区分词 采用一些前缀或后缀,采用一些前缀或后缀, 时钟采用时钟采用Clk前缀:前缀:Clk_50,Clk_CPU 低电平采用低电平采用_n后缀:后缀:Enable_n 统一一定的缩写,如全局复位信号统一一定的缩写,如全局复位信号Rst 同一信号在不同层次保持一致性,如同一时钟同一信号在不同层次保持一致性,如同一时钟信号必须在各模块中保持一致信号必须在各模块中保持一致 自

41、定义的标识符不能与保留字同名自定义的标识符不能与保留字同名 参数采用大写,如参数采用大写,如SIZE电子设计自动化电子设计自动化2、注释、注释 Verilog中有两种注释的方式,一种是一中有两种注释的方式,一种是一“/*”符号开始,以符号开始,以“*/”符号结束,在两个符号之符号结束,在两个符号之间的语句都是注释语句,因此可以扩展到多行。间的语句都是注释语句,因此可以扩展到多行。如如: 以上以上n各语句都是注释语句各语句都是注释语句 另一种是以另一种是以“/”开头的语句,它表示以开头的语句,它表示以/开始开始到本行的结束都属于注释语句到本行的结束都属于注释语句电子设计自动化电子设计自动化3、格

42、式、格式 Verilog HDL是区分大小写的,即大小写不同是区分大小写的,即大小写不同的标识符是不同的的标识符是不同的 Verilog书写格式自由,一条语句可多行书写;书写格式自由,一条语句可多行书写;一行可写多个语句一行可写多个语句 空白(新行、制表符、空格)没有特殊意义空白(新行、制表符、空格)没有特殊意义 如如 与与 是一样的是一样的 一个语句一行一个语句一行 采用空四格的采用空四格的TAB键进行缩进键进行缩进电子设计自动化电子设计自动化4、数字值集合、数字值集合 值的集合值的集合 常量(整型、实型、字符型)常量(整型、实型、字符型) 变量变量电子设计自动化电子设计自动化4.1值集合值

43、集合 四种基本的值类型四种基本的值类型0:逻辑:逻辑0或或“假假”1:逻辑:逻辑1或或“真真”X:未知值:未知值Z:高阻:高阻 四种值得解释内置于语言中四种值得解释内置于语言中 与门的输入或表达式中的与门的输入或表达式中的“z”的值通常解释的值通常解释为为“x” X值与值与z值不区分大小写,及值不区分大小写,及0 x1z和和0X1Z相同相同电子设计自动化电子设计自动化4.2常量常量 整型、实型、字符串型整型、实型、字符串型 下划线符号下划线符号“_”可随意用在整数或实数中,可随意用在整数或实数中,用来提高易读性。注:用来提高易读性。注:下划线不能作为首字符下划线不能作为首字符。 整型书写格式:

44、简单的十进制数格式;基数格整型书写格式:简单的十进制数格式;基数格式式 字符串型:双引号内的字符系列。字符串型:双引号内的字符系列。电子设计自动化电子设计自动化4.2.1整型整型-简单的十进制格式简单的十进制格式 带有一个可选的带有一个可选的“+”或或“-”操作符的数字序操作符的数字序列列 例如:例如: 32 十进制数十进制数32 -15 十进制数十进制数-15电子设计自动化电子设计自动化4.2.1整型整型-基数表示法(一)基数表示法(一) 格式:格式:sizebase valueSize定义以位计的常量的位长;定义以位计的常量的位长;base为为o或或O(表(表示八进制),示八进制),b或或

45、B(表示二进制),(表示二进制),d或或D(表(表示十进制),示十进制),h或或H(表示十六进制)之一;(表示十六进制)之一;value是基于是基于base的值的数字序列。值的值的数字序列。值x和和z以及以及十六进制中的十六进制中的a到到f不区分大小写不区分大小写电子设计自动化电子设计自动化4.2.1整型整型-基数表示法(二)基数表示法(二) 合法例子:合法例子: 非法例子:非法例子:电子设计自动化电子设计自动化4.2.1整型整型-基数表示法(三)基数表示法(三) 注意:注意:x(或(或z)在十六进制中代表)在十六进制中代表4位位x(或(或z),在八进制),在八进制中代表中代表3位位x(或(或

46、z),在二进制中代表),在二进制中代表1位位x(或(或z)。)。 整型数的长度定义是可选的,如没有定义长度,数的长度整型数的长度定义是可选的,如没有定义长度,数的长度为相应值中定义的位数为相应值中定义的位数,如:,如: 如果定义的长度比常量制定的长度长,通常在左边填如果定义的长度比常量制定的长度长,通常在左边填0补位。补位。但是如果数最左边一位为但是如果数最左边一位为“x”或或“z”,就相应地用,就相应地用x或或z在在左边补位。如:左边补位。如: 如果长度定义的要小,最左边的位相应地被截断。如:如果长度定义的要小,最左边的位相应地被截断。如:电子设计自动化电子设计自动化4.2.2字符串型字符串

47、型 双引号内的字符序列。字符串不能分成多行书写。双引号内的字符序列。字符串不能分成多行书写。 例:例: 整数型常量是可以综合的,而实数型和字符串型整数型常量是可以综合的,而实数型和字符串型常量都是不可综合的常量都是不可综合的电子设计自动化电子设计自动化5、数据类型、数据类型 线网类型(线网类型(net type) 寄存器类型(寄存器类型(reg type)电子设计自动化电子设计自动化5.1数据类型数据类型-线网类型(线网类型(net type) 常用常用wire定义定义 用于对结构化器件之间的物理连线建模用于对结构化器件之间的物理连线建模 代表物理连接线,不存储逻辑值,必须由器件驱代表物理连接

48、线,不存储逻辑值,必须由器件驱动,通常由动,通常由Assign进行赋值,如:进行赋值,如: 当一个当一个wire类型的信号没有被驱动时,缺省值为类型的信号没有被驱动时,缺省值为z(高阻)(高阻) 信号非有定义数据类型时,缺省为信号非有定义数据类型时,缺省为wire类型类型 语法:语法:电子设计自动化电子设计自动化5.2数据类型数据类型-寄存器类型(寄存器类型(reg type) Reg是最常用的寄存器类型,用于对存储单元的描是最常用的寄存器类型,用于对存储单元的描述,如述,如D触发器,触发器,ROM。 在某种触发机制下分配一个值,在分配下一个值在某种触发机制下分配一个值,在分配下一个值之前保留

49、原值之前保留原值 Reg类型的变量,不一定是存储单元,如在类型的变量,不一定是存储单元,如在always语句中进行描述的必须用语句中进行描述的必须用reg类型的变量。类型的变量。 语法:语法: 例:例:电子设计自动化电子设计自动化5.2数据类型数据类型-寄存器类型(寄存器类型(reg type) 建模举例:建模举例:用寄存器类型构建两位的用寄存器类型构建两位的D触发器:触发器:用寄存器数组类型来建立存储器的模型,如对用寄存器数组类型来建立存储器的模型,如对2个个8位的位的RAM建模如下:建模如下:存储单元必须一个一个地赋值存储单元必须一个一个地赋值电子设计自动化电子设计自动化6、运算符、运算符

50、 关系运算符关系运算符 算术运算符算术运算符 逻辑运算符逻辑运算符 按位逻辑运算符按位逻辑运算符 条件运算符条件运算符 连接运算符连接运算符 移位运算符移位运算符电子设计自动化电子设计自动化6.1运算符运算符-算术运算符算术运算符 常用算术运算符:常用算术运算符:加法(二元运算符):加法(二元运算符):“+”减法(二元运算符):减法(二元运算符):“-”乘法(二元运算符):乘法(二元运算符):“*”除法(二元运算符):除法(二元运算符):“/”求余(二元运算符):求余(二元运算符):“%”电子设计自动化电子设计自动化6.2运算符运算符-关系运算符(一)关系运算符(一) 包括:包括:大于大于=不

51、小于不小于=不大于不大于=等于等于=全等全等!=不等不等!=不全等不全等 结果为结果为True(1)或)或False(0)。如果操作数中有)。如果操作数中有一位为一位为x或或z,那么结果为,那么结果为x电子设计自动化电子设计自动化6.2运算符运算符-关系运算符(二)关系运算符(二) 例:例: 如果操作数长度不同,长度较短的操作数在左方如果操作数长度不同,长度较短的操作数在左方填填0补齐。例:补齐。例: 逻辑相等与不等的比较中,只要一个操作数含有逻辑相等与不等的比较中,只要一个操作数含有x或或z,比较结果为未知(,比较结果为未知(x)。如:)。如:电子设计自动化电子设计自动化6.3运算符运算符-

52、逻辑运算符(一)逻辑运算符(一) 包括:包括:&逻辑与逻辑与|逻辑或逻辑或!逻辑非逻辑非 语法:(表达式语法:(表达式1) 逻辑运算符逻辑运算符 (表达式(表达式2) 运算结果为运算结果为0或或1,例:,例:电子设计自动化电子设计自动化6.3运算符运算符-逻辑运算符(二)逻辑运算符(二) 逻辑与(逻辑与(&)的真值表:)的真值表: 逻辑或(逻辑或(|)的真值表:)的真值表:电子设计自动化电子设计自动化6.4运算符运算符-按位逻辑运算符(一)按位逻辑运算符(一) 包括:包括:一元非,相当于非门运算一元非,相当于非门运算&二元与,相当于与门运算二元与,相当于与门运算|二元或

53、,相当于或门运算二元或,相当于或门运算二元异或,相当于异或门运算二元异或,相当于异或门运算, 二元异或非,即同或,相当于同或门运二元异或非,即同或,相当于同或门运算算 在输入操作数的对应位上按位操作,产生向量结在输入操作数的对应位上按位操作,产生向量结果。果。电子设计自动化电子设计自动化6.4运算符运算符-按位逻辑运算符(二)按位逻辑运算符(二) 按位逻辑运算符真值表:按位逻辑运算符真值表:电子设计自动化电子设计自动化6.2运算符运算符-按位逻辑运算符(三)按位逻辑运算符(三) 例:例: 如果操作数长度不相等,长度较小的操作数在最如果操作数长度不相等,长度较小的操作数在最左端填左端填0补位。例

54、如:补位。例如:电子设计自动化电子设计自动化6.5运算符运算符-条件运算符条件运算符 根据条件表达式的值选择表达式根据条件表达式的值选择表达式 语法:语法:cond_expr ? expr1 : expr2; 如果如果cond_expr为真(为真(1),选项),选项expr1,如果,如果cond_expr为假(为假(0),选择),选择expr2.如果如果cond_expr为为x或或z,结果是按以下逻辑,结果是按以下逻辑expr1和和expr2按位操按位操作的值:作的值:0与与0得得1,1与与1得得1,其余情况为,其余情况为x 例:例:电子设计自动化电子设计自动化6.6运算符运算符-连接运算符连

55、接运算符 将小表达式合并形成大表达式将小表达式合并形成大表达式 语法:语法:expr1, expr2, , exprN 例:例:电子设计自动化电子设计自动化6.7运算符:移位运算符运算符:移位运算符 右移位运算符右移位运算符 语法:语法:an 或或 a2的值为的值为5b00110 A2的值为的值为5b00100电子设计自动化电子设计自动化7、If_else(条件)语句(条件)语句 用来判定所给定的条件是否满足,根据判定的用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。结果(真或假)决定执行给出的两种操作之一。 三种形式:三种形式:电子设计自动化电子设计自动化I

56、f_else语句的三种形式语句的三种形式电子设计自动化电子设计自动化说明:说明:1.if语句后面都有表达式,一般为逻辑表达式或关系语句后面都有表达式,一般为逻辑表达式或关系表达式。表达式。0、x、z按按“假假”处理,处理,1按按“真真”处理。处理。2.注意分号的使用,注意分号的使用,if、else合起来是一条语句,合起来是一条语句,else不能单独使用不能单独使用3.if、else后面如果有多个操作语句,必须用后面如果有多个操作语句,必须用begin和和end关键字包含起来组成为一个复合语句,例关键字包含起来组成为一个复合语句,例电子设计自动化电子设计自动化说明:说明:4.允许一定形式的表达式

57、简写,例如:允许一定形式的表达式简写,例如:5.if语句的嵌套语句的嵌套注意注意if和和else的配对关系,的配对关系,else总是与它上面最近的总是与它上面最近的if配配对。可以用对。可以用begin、end块语句来确定配对关系。例:块语句来确定配对关系。例:电子设计自动化电子设计自动化例:使用例:使用begin和和end块语句来确定块语句来确定if和和else的配对关系的配对关系电子设计自动化电子设计自动化8、case语句语句 多分支选择语句多分支选择语句 三种形式:三种形式:1.case(表达式)(表达式) endcase2.casez(表达式)(表达式) endcase3. casex

58、(表达式)(表达式) endcase 语法:语法:电子设计自动化电子设计自动化说明:说明:1.case括号中的表达式称为括号中的表达式称为控制表达式控制表达式,分支项中的表达式,分支项中的表达式称为称为分支表达式分支表达式。2.当控制表达式的值与分支表达式的值项相等时,就执行分当控制表达式的值与分支表达式的值项相等时,就执行分支表达式后面的语句;如果所有的分支表达式的值都没有支表达式后面的语句;如果所有的分支表达式的值都没有与控制表达式的值相匹配,就执行与控制表达式的值相匹配,就执行default后面的语句后面的语句3.default项可有可无,一个项可有可无,一个case语句只能有一个语句只

59、能有一个default项项4.每个分支表达式的值必须互不相同,否则会出现矛盾。每个分支表达式的值必须互不相同,否则会出现矛盾。5.所有表达式值的位宽必须相等。所有表达式值的位宽必须相等。6.case、casez、casex的区别,的区别,case为全等比较,为全等比较,casez对表达对表达式中出现式中出现z的相应位不予比较,的相应位不予比较,casex对表达式中出现对表达式中出现x、z的相应位均不予比较,见真值表的相应位均不予比较,见真值表电子设计自动化电子设计自动化三种建模方式详解三种建模方式详解 结构建模结构建模 数据流建模数据流建模 行为建模行为建模电子设计自动化电子设计自动化1、结构

60、建模(一)、结构建模(一) 描述语句主要是实例化语句描述语句主要是实例化语句 实例化的对象主要是实例化的对象主要是PLD厂家提供的宏单元和厂家提供的宏单元和设计者已有的设计设计者已有的设计电子设计自动化电子设计自动化结构建模(二)结构建模(二)实例化语句实例化语句 语法:语法:module_name instance_name ( port_associations); 端口关联可通过位置或名称关联,但两者不能混用端口关联可通过位置或名称关联,但两者不能混用通过位置关联通过位置关联 (port_expr1, port_expr2, , port_exprn);通过名称关联通过名称关联 (.PortName(portexpr

温馨提示

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

评论

0/150

提交评论