EDA整理Word文档格式.docx

上传人:b****1 文档编号:5250987 上传时间:2023-05-04 格式:DOCX 页数:35 大小:292.36KB
下载 相关 举报
EDA整理Word文档格式.docx_第1页
第1页 / 共35页
EDA整理Word文档格式.docx_第2页
第2页 / 共35页
EDA整理Word文档格式.docx_第3页
第3页 / 共35页
EDA整理Word文档格式.docx_第4页
第4页 / 共35页
EDA整理Word文档格式.docx_第5页
第5页 / 共35页
EDA整理Word文档格式.docx_第6页
第6页 / 共35页
EDA整理Word文档格式.docx_第7页
第7页 / 共35页
EDA整理Word文档格式.docx_第8页
第8页 / 共35页
EDA整理Word文档格式.docx_第9页
第9页 / 共35页
EDA整理Word文档格式.docx_第10页
第10页 / 共35页
EDA整理Word文档格式.docx_第11页
第11页 / 共35页
EDA整理Word文档格式.docx_第12页
第12页 / 共35页
EDA整理Word文档格式.docx_第13页
第13页 / 共35页
EDA整理Word文档格式.docx_第14页
第14页 / 共35页
EDA整理Word文档格式.docx_第15页
第15页 / 共35页
EDA整理Word文档格式.docx_第16页
第16页 / 共35页
EDA整理Word文档格式.docx_第17页
第17页 / 共35页
EDA整理Word文档格式.docx_第18页
第18页 / 共35页
EDA整理Word文档格式.docx_第19页
第19页 / 共35页
EDA整理Word文档格式.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EDA整理Word文档格式.docx

《EDA整理Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA整理Word文档格式.docx(35页珍藏版)》请在冰点文库上搜索。

EDA整理Word文档格式.docx

在半成品基础上的设计方式。

半成品含有加工好的大量的晶体管和IO焊盘,但没有布线。

布线由用户设计,实现特定的功能。

◆标准单元(standardcell):

利用厂家的标准单元进行设计的方式。

◆PLD方式:

器件已经制造好,用户自己编程便可实现各种功能。

5、硬件描述语言的不足

电路采用高级的简明结构HDL描述,它意味着放弃了对电路门级实现定义的控制;

由综合工具生成的逻辑实现效果不好;

工具的不同导致综合质量的不同。

第二部分 可编程逻辑器件(PLD)

1、ASIC:

ApplicationSpecificIntegratedCircuits,即专用集成电路,是面向特定用户、具有专门用途的芯片,并依此区别于通用芯片.

2、PLD,ProgrammableLogicDevices,是20世纪70s发展起来的一种新型器件,它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性,且给数字系统的设计带来了革命性变化。

(二)PLD的分类(p18)

(四)CPLD的结构与特点(EMP7032内部结构图)

CPLD是在PAL、GAL的基础上发展起来的阵列型PLD,具有高密度高速度的优点。

从结构上看,CPLD一般包括3种结构:

◆ 宏单元:

主要包括与或阵列、触发器和多路选择器

等电路,可独立配置为组合逻辑或时序逻辑;

◆ 可编程IO单元:

可独立配置为输入、输出和双向

IO;

◆ 可编程内部连线(PIA):

其作用是在各逻辑宏单

元之间以及宏单元和IO之间提供互连网络。

(五)FPGA的结构与特点(FLEX10K10内部结构图)

与CPLD相比,FPGA具有更高的集成度、更强的逻辑功能和更大的灵活性。

一般由3部分组成:

⏹ 可配置逻辑块(CLB,ConfigurableLogicBlock)

⏹ 输入输出模块(IOB)

⏹ 可编程互连线(PI)

⏹片内RAM

(五)FPGA的结构与特点

1、可配置逻辑块(CLB,ConfigurableLogicBlock):

是FPGA的基本结构单元,不仅能实现逻辑函数,还可以配置成RAM等形式。

其显著特点是内部有查找表(LUT);

2、输入输出模块(IOB):

作用同CPLD;

3、可编程互连线(PI):

作用同CPLD,不同点是其布线延时不固定,与路径有关,而CPLD的固定。

4、片内RAM:

其读的速度(3-4ns)和写的速度(5ns)非常快,比任何片外解决方案快很多倍,可配置成各种形式。

六)在系统可编程(ISP)与边界扫描(BST)技术

1、在系统可编程:

ISP,InSystemProgrammable,指的是对器件、电路板或整个电子系统的逻辑功能可随时进行修改或重构的能力。

2、边界扫描测试(BST)技术:

由于器件越来越复杂,表面封装技术和电路板制造技术的进步,使得电路板的变小变密,传统的测试方法很难实现。

(七)PLD产品概述:

PLD的发展趋势

☐向大规模、高集成度方向发展;

☐向低电压、低功耗、低价格的方向发展;

☐向高速可预测延时方向发展;

☐在PLD内嵌入多种功能模块;

☐向模数混合可编程的方向发展。

二、ALTERA可编程逻辑器件

(二)MAX7000系列器件

MAX7000系列内部结构:

组成模块:

(1)LAB:

LogicArrayBlock,逻辑阵列块,内含16个宏单元,是器件的主要组成部分;

(2)MC:

Macrocell,宏单元,由逻辑阵列、乘积项选择矩阵和可编程触发器组成,用于实现各种逻辑;

(宏单元结构图)

(3)EPT:

ExpanderProductTerm,扩展乘积项,用于辅助逻辑阵列实现复杂的逻辑;

(4)PIA:

ProgrammableInterconnectArray,可编程连线阵列,把LAB相互连接构成所需的逻辑。

这个全局总线是可编程通道,它把器件中任何信号源连到其目的地;

MAX系列的PIA有固定的布线延时,而FLEX系列的布线延时与路径有关;

(5)I/OControlBlock:

I/O控制块,它允许每个I/O单独地配置为输入、输出和双向输入输出中的一种方式。

(图)

(三)FLEX10K系列内部结构:

小结

1)FLEX系列器件的特点:

1.容量大,用于实现复杂的电路和系统

2.内部含有ROM/RAM;

3.内部含LUT,尽量采用查表法实现逻辑函数;

4.FLEX器件内部布局布线的延时与路径有关。

2)器件的特性设定

1.电压摆率(Slew-Rate)设定:

设置低噪声/高速度方式;

2.漏极开路(Open-Drain)设定:

3.多电压(MultiVolt)I/O接口:

FLEX10K的核和外围IO可以工作于不同的电压,其中Vccin引脚为内核和输入缓冲器提供工作电压,Vccio为I/O引脚提供工作电压。

第三部分 可编程逻辑器件开发软件

第四部分:

基于原理图输入的数字电路(系统)设计

2参数化计数器的使用(lpm_counter)

1)输入信号选择

⏹ data[]:

数据输入,用于预置数;

⏹ clock:

输入时钟;

⏹ clk_en:

输入时钟使能;

⏹ cnt_en:

计数器使能;

⏹ updown:

加(1)减(0)法选择;

⏹ aclr:

异步清零;

⏹ aset:

异步置数(AVALUE);

 

⏹ aload:

异步置数(data[]);

⏹sclr:

同步清零;

⏹sload:

同步置数(data[]);

⏹sset:

同步置数(SVALUE)。

2)输出信号选择

◆ q[]:

计数值输出;

◆ eq[15..0]:

计数值译码输出:

 q[]=0eq[0]=1;

q[]=1eq[1]=1;

……q[]=15eq[15]=1;

3参数化RAM/ROM的使用(lpm_rom)

设计要点1:

存储器输入输出的选择:

INPUTS       OUTPUTS

address[]:

输入地址  q[]:

存储器输出

Inclock:

输入锁存时钟

Outclock:

输出锁存时钟

memenab:

使能

(六)小结

(一)基于PLD的数字系统设计的优点

1、系统开发周期短

●设计输入方法灵活多样;

●软件仿真,错误自动定位

●修改方便;

2、系统体积小

3、系统可靠性好

4、系统保密性好

5、价格?

可进一步降低价格。

(二)系统的设计思想

1、TOP-DOWN:

用于设计性能级:

概念-〉产品说明书(性能指标)-〉系统输入输出图(黑匣子);

功能级:

系统输入输出图-〉系统框图(功能划分)-〉功能实现-〉仿真-〉网表;

结构级:

原理图网表-〉版图布局-〉版图布线-〉后仿真-〉网表

物理级:

基本逻辑单元的设计。

重要概念:

●fromconcepttonetlist;

●fromconcepttolayout;

●fromconcepttoproduct;

2、bottom-up:

用于实现基本逻辑单元-〉子功能模块-〉子系统-〉系统

(三)基于MAXPLUSII的系统设计流程

3.1概念-〉功能模块

3.2设计输入

1、原理图输入方法

●最基本的方法;

●充分利用已有基本单元,74XX等;

●缺点:

不够灵活(虽然编译时可自动消除冗余电路),如32位加法器等。

例1:

多路选择器

输入信号:

in1[3..0],in2[3..0],in3[3..0],d[2..0];

输出信号:

q[3..0];

要求:

d[]=110时,q[]=in1[];

d[]=101时q[]=in2[];

d[]=011时q[]=in3[];

点评:

该多路选择器不属于常规电路,没有现成的电路(74XX),用原理图输入非常麻烦,但用文本输入则方便快捷。

SUBDESIGNtrymux

in1[3..0],in2[3..0],in3[3..0],d[2..0]:

INPUT;

q[3..0]:

OUTPUT;

begin

defaults

q[]=GND;

enddefaults;

cased[]is

whenB"

110"

=>

q[]=in1[];

101"

q[]=in2[];

011"

q[]=in3[];

endcase;

end;

例2:

地址发生器

clk;

111->

110->

101->

011->

110…;

每来一个时钟脉冲,产生循环地址110、101、011;

初始值为111。

1)本地址发生器也不是规范电路,用原理图输入方法非常麻烦,但用AHDL非常方便;

2)在AHDL中,状态机是非常好用的工具,可方便地实现各种时间序列,如计数器、序列发生器、地址发生器、波形发生器等。

3.3设计编译

编译的功能为:

逻辑综合、逻辑试配

1、选择一个器件系列,不知具体选用哪个型号时选AUTO;

2、打开DesignDoctor,进行错误检测和错误定位;

3、打开保护位:

●选择是否设置保护位;

●选择保留资源(reservedsources)的比例;

I/O和逻辑单元一般留10%,使器件留有修改的余地。

4、选择全局的项目逻辑综合方式:

选择是否自动选全局clock、clear、preset、outputenable(缺省);

5、打开FLOORPLANEDITOR观察试配结果

●可以为某些型号指定引脚号;

●一般不能全部指定,否则影响试配的成功;

3.4设计仿真

1、编辑输入波形,注意要覆盖设计电路的所有功能;

2、输入/输出信号可以从SNF选择,把有用的、关键的信号选出,不重要的中间波形可不选;

3、信号可选group形式或单个形式;

4、选择前仿真还是后仿真;

5、结果不对时,重新设计电路。

3.5设计的下载

1、用编程卡+主编程器+适配器下载;

2、用BYTEBLASTER/BITBLASTER下载(ISP器件);

3.5通电试验

1、每个VCC与GND之间要加0.1μF的电容;

2、通电后器件微微发热,是正常现象;

3、学会一些调试手段和方法;

(三)系统设计的要点

1、概念-〉功能模块的能力训练;

2、熟练运用三种设计输入方法,特别是综合运用原理图输入和文本输入方法;

文本输入方法中必须掌握组合逻辑电路和状态机的设计方法;

3、熟练掌握以上数字系统设计的各个环节。

第五部分 VerilogHDL

(一)硬件描述语言的概念

⏹硬件描述语言(HardwareDescriptionLanguage),是电子系统硬件行为描述、结构描述、数据流描述的语言。

⏹硬件描述语言诞生原因:

在计算机辅助电子设计的过程中,逻辑图、分立元件作为整个越来越复杂的电子系统的设计已经不适应,需要一种硬件描述语言来作为EDA工具的工作语言。

二、VerilogHDL语言介绍

1、VerilogHDL实例

moduleadder1(cout,sum,a,b,cin,enable);

 //模块声明

output[7:

0]sum;

 //输出声明

outputcout;

input[7:

0]a,b;

 //输入声明

inputcin,enable;

regcout;

 //变量类型声明

reg[7:

always@(posedgeenable) //always语句

{cout,sum}=a[7:

0]+b[7:

0]+cin;

end

endmodule

2、VerilogHDL程序基本结构

module<

顶层模块名>

(输入输出端口列表)

output 端口名1,。

,端口名N;

input 端口名1,。

,端口名M;

wire//结果信号名

assign

always@(敏感信号表达式)

元件例化:

andmyand(a,b,c);

Endmodule

3、VerilogHDL中逻辑功能的定义

1)用assign语句

AssignF=~((A&

B)|(C&

D));

2)用元件例化

Andmyand3(f,a,b,c);

3)用always@语句描述各种逻辑功能

(二)数据类型及常量、变量

1、常量的表示

8’b11000101

8’hc5

197

6’b1001xx-------------不定值

8’b1010zzzz----------高阻态

ParameterSEL=8,CODE=8’ha3;

2、变量的表示

Wire数据名1,。

,数据名n;

VerilogHDL的缺省输入输出信号类型,只能用assign赋值,取值为0,1,x,z。

Reg数据名1,。

Reg[7:

0]data;

0]mymem[1023:

0]

变量小结:

s型变量:

其输出始终根据输入的变化而更新其值的变量,它一般指硬件电路中的各种物理连接。

如wire变量。

2.register变量:

它对应的是具有状态保持作用的电路元件,如触发器、寄存器等。

如reg,integer变量。

3.register与nets变量的根本区别:

前者有记忆性,后者无。

(三)运算符及表达式

6、缩减运算符

&

与;

~&

与非;

|:

或;

~|:

或非;

^:

异或;

^~,~^:

同或

缩减运算符是单目运算符,对单个操作数进行运算。

例若定义reg[3:

0]a;

则:

b=&

a等效为

  b=a[0]&

a[1]&

a[2]&

a[3];

又如,若A=5’b11001,则

A=0;

|A=1;

7、移位运算符

>

右移<

<

左移;

例:

若A=5’b11001,则A>

2的值为:

5‘b00110

8、条件运算符----?

是一种三目运算符,对三个操作数进行运算。

其用法如下:

Signal=condition?

true_expression:

false_expression

Condition=1时执行true_expression,condition=0时执行false_expression.

9、位拼接运算符:

{ }

作用:

把两个或多个信号的某些位拼接起来。

例如:

全加器的描述

input[3:

0]ina,inb;

ina+inb+cin的进位自动放入

inputcin;

output[3:

assign{cout,sum}=ina+inb+cin;

(三)运算符及表达式:

运算符的优先级

不清楚优先级时,用扩号()来控制运算的优先级。

(四)赋值语句

1、连续赋值语句(continueassignments)assign为连续赋值语句,它对wire型变量进行赋值。

assignc=a&

b;

这里abc为wire型变量,a和b信号的任何变化都随时反映到c上来,因此称为连续赋值方式;

2、过程赋值语句(proceduralassignments)对寄存器型(reg)变量进行赋值。

分为非阻塞赋值语句和阻塞赋值语句。

(1)非阻塞赋值(non-blocking):

b<

=a;

特点:

非阻塞赋值必需在块结束时才完成赋值操作,即b的值不是立刻就变的。

(2)阻塞赋值(blocking):

b=a;

赋值语句结束时就完成赋值操作,即b的值在赋值语句结束后立刻就变。

(五)条件语句

1、if–else语句(p144)

语句若为多句,用begin-end括起来。

2、case语句(p145)

要点:

敏感表达式一般为一个变量或表达式;

一般要列出敏感表达式的所有可能取值,不能穷举时,剩余其它情况执行default语句;

2)casez与casex语句

当case的分支取值每些位为高阻z,那末对这些位不予比较,只比关注别的位的比较结果,这时用casez语句;

当case的分支取值每些位为高阻z或不定值x,那末对这些位不予比较,只比关注别的位的比较结果,这时用casex语句;

可以用“?

”标识x或z,表示无关值.如:

Casez(select)

4’b?

?

1:

out=a;

10:

out=b;

//优先编码器

100:

out=c;

4’b1000:

out=d;

endcase

3、条件语句小结:

1)使用条件语句时,应注意列出所有条件分支,否则编译器认为条件不满足时,会引进一个触发器保持原值;

2)不可能列出所有分支时,if语句后加else,case语句最后加default语句;

例6.9:

Moduleburried_ff(c,b,a);

Outputc;

Inputb,a;

Regc;

Always@(aorb)

if((a==1)&

(b==1))c=1;

实现的功能为实现的电路为

例6.10

Moduletryand2(c,b,a);

if(a==1)&

(b==1)c=1;

elsec=0;

(六)循环语句:

for语句

For(表达式1;

表达式2;

表达式3)

表达式1:

循环变量初值;

表达式2:

循环结束条件;

表达式3:

循环变量增值。

Modulevoter7(pass,vote);

Outputpass;

Input[6:

0]vote;

Reg[2:

Integeri;

Regpass;

Always@(vote)

Begin

 sum=0;

 for(i=0;

i<

=6;

i=i+1)

 if(vote[i])sum=sum+1;

 if(sum[2])pass=1;

//4人以上为1。

 elsepass=0;

(七)结构说明语句:

always@语句

格式:

always@(<

敏感信号表达式>

敏感信号表达式:

又称敏感表,当该表达式的值改变时,就会执行一遍块内的语句。

always@(in0orin1orin2orin3);

always@(posedgeclkornegedgeclear);

上升沿posedge;

下降沿negedge

(八)语句的顺序执行与并行执行

always@块内的语句按照指定的顺序执行;

always@块语句、assign语句、元件例化语句之间并行执行。

moduleserial1(q,a,clk);

inputclk;

outputq,a;

regq,a;

always@(posedgeclk)

q=~q;

a=~q;

moduleserial2(q,a,clk);

再如:

moduleparal1(q,a,clk);

moduleparal2(q,a,clk);

注:

两个模块的功能是一样的!

(九)不同抽象级别的VerilogHDL模型

VerilogHDL的门级描述(p179):

调用门原语(primitive)进行电路描述。

VerilogHDL行为级描述(p180):

用各种语句进行电路描述。

对于设计者而言,采用的描述级别越高,设计越容易。

但对综合器而言,有可能无法将某些抽象级别高的描述转化为电路。

因此设计者应了解综合器的性能。

第六部分:

用VerilogHDL语言

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2