EDA基础总结.docx
- 文档编号:25524167
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:16
- 大小:19KB
EDA基础总结.docx
《EDA基础总结.docx》由会员分享,可在线阅读,更多相关《EDA基础总结.docx(16页珍藏版)》请在冰豆网上搜索。
EDA基础总结
EDA基础总结
综述部分
1.EDA的中文全称为电子设计自动化,英文全名为ElectronicDesignAutomation。
2.EDA平台常用的两种输入电路的方法是:
电路原理图输入法、HDL输入法。
3.EDA平台工作流程:
电路输入、综合优化、功能仿真、布局布线、门级仿真。
数字电路部分
1.EDA中常用的仿真语言为Verilog和VHDL。
2.VHDL其英文全名为VHSICHardwareDescriptionLanguage,而VHSIC则是VeryHighSpeedIntergeraterdCircuit的缩写词,意为甚高速集成电路,故VHDL其准确的中文译名为甚高速集成电路的硬件描述语言。
3.VerilogHDL其英文全名为VerilogHardwareDecriptionLanguage,HDL中文译名为硬件描述语言。
4.Verilog和VHDL的比较
共同点:
能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。
不同点:
Verilog在系统级抽象方面略差,VHDL在门级开关电路方面略差。
5.软核、固核和硬核
软核:
功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog模型。
固核:
在某一种现场可编程门列器件上实现的经验证是正确的,且总门数在5000门以上的电路结构编码文件。
硬核:
在某一种专用集成电路工艺的器件上实现的,经验证是正确的,且总门数在5000门以上的电路结构版图掩膜。
6.自顶向下(TopDown)设计
7.自底向上(DownTop)设计
8.名词解释:
ASIC:
ApplicationSpecificIntegratedCircuit,专用集成电路。
FPGA:
FieldProgrammableGateArray,现场可编程门阵列。
PLD:
ProgrammableLogicDevice,可编程逻辑器件。
Verilog编程题:
数据比较器(2位)
//数据比较器
modulecompare(equal,a,b);
inputa,b;
outputequal;
regequal;
always@(aorb)
if(a==b)
equal=1;
else
equal=0;
endmodule
//数据比较器测试代码
`timescale1ns/1ns
`include"./1-1.v"
modulet;
rega,b;
wireequal;
initial
begin
a=0;
b=0;
#100a=0;b=1;
#100a=1;b=1;
#100a=1;b=0;
#100a=0;b=0;
#100$stop;
end
comparem(.equal(equal),.a(a),.b(b));
endmodule
数据比较器(8位)
modulecompare8(equal,a,b);
input[7:
0]a,b;
outputequal;
regequal;
always@(aorb)
if(a>b)
begin
equal=1;
end
else
begin
equal=0;
end
endmodule
分频器
modulehalf_clk(reset,clk_in,clk_out);
inputclk_in,reset;
outputclk_out;
regclk_out;
always@(posedgeclk_in)
begin
if(!
reset)clk_out=0;
elseclk_out=~clk_out;
end
endmodule
10M时钟分频为500K
modulefdivision(RESET,MB,KB);
inputMB,RESET;
outputKB;
regKB;
reg[7:
0]j;
always@(posedgeMB)
if(!
RESET)
begin
KB<=0;
j<=0;
end
else
begin
if(j==19)
beginj<=0;
KB<=~KB;
end
else
j<=j+1;
end
endmodule
译码电路
`defineplus3'd0
`defineminus3'd1
`defineband3'd2
`definebor3'd3
`defineunegate3'd4
modulealu(out,opcode,a,b);
output[7:
0]out;
reg[7:
0]out;
input[2:
0]opcode;
input[7:
0]a,b;
always@(opcodeoraorb)
begin
case(opcode)
`plus:
out=a+b;
`minus:
out=a-b;
`band:
out=a&b;
`bor:
out=a|b;
`unegate:
out=~a;
default:
out=8'hx;
endcase
end
endmodule
八路数据选择器
moduleselecting8(addr,in1,in2,in3,in4,in5,in6,in7,in8,dataout,reset);
input[2:
0]addr;
input[3:
0]in1,in2,in3,in4,in5,in6,in7,in8;
inputreset;
output[3:
0]dataout;
reg[3:
0]dataout;
always@(addrorin1orin2orin3orin4orin5orin6orin7orin8orreset)
begin
if(!
reset)
case(addr)
3'b000:
dataout=in1;
3'b001:
dataout=in2;
3'b010:
dataout=in3;
3'b011:
dataout=in4;
3'b100:
dataout=in5;
3'b101:
dataout=in6;
3'b110:
dataout=in7;
3'b111:
dataout=in8;
endcase
else
dataout=0;
end
endmodule
逻辑运算电路
moduletryfunct(clk,n,result,reset);
output[31:
0]result;
input[3:
0]n;
inputreset,clk;
reg[31:
0]result;
always@(posedgeclk)
begin
if(!
reset)
result<=0;
else
begin
result<=n*factorial(n)/((n*2)+1);
end
end
function[31:
0]factorial;
input[3:
0]operand;
reg[3:
0]index;
begin
factorial=operand?
1:
0;
for(index=2;index<=operand;index=index+1)
factorial=index*factorial;
end
endfunction
endmodule
moduletryfunct(clk,n,result,reset);
output[31:
0]result;
input[3:
0]n;
inputreset,clk;
reg[31:
0]result;
always@(posedgeclk)
begin
if(!
reset)
result<=0;
else
begin
result<=n*factorial(n)/((n*2)+1);
end
end
function[31:
0]factorial;
input[3:
0]operand;
reg[3:
0]index;
begin
factorial=operand?
1:
0;
for(index=2;index<=operand;index=index+1)
factorial=index*factorial;
end
endfunction
endmodule
高速排序组合逻辑
modulesort4(ra,rb,rc,rd,a,b,c,d);
output[3:
0]ra,rb,rc,rd;
input[3:
0]a,b,c,d;
reg[3:
0]ra,rb,rc,rd;
reg[3:
0]va,vb,vc,vd;
always@(aorborcord)
begin
{va,vb,vc,vd}={a,b,c,d};
sort2(va,vc);
sort2(vb,vd);
sort2(va,vb);
sort2(vc,vd);
sort2(vb,vc);
{ra,rb,rc,rd}={va,vb,vc,vd};
end
tasksort2;
input[3:
0]x,y;
reg[3:
0]tmp;
if(x>y)
begin
tmp=x;
x=y;
y=tmp;
end
endtask
endmodule
检测5位二进制序列10010
moduleseqdet(x,z,clk,rst,state);
inputx,clk,rst;
outputz;
output[2:
0]state;
reg[2:
0]state;
wirez;
parameterIDLE='d0,A='d1,B='d2,C='d3,D='d4,E='d5,F='d6,G='d7;
assignz=(state==E&&x==0)?
1:
0;
always@(posedgeclk)
if(!
rst)
begin
state<=IDLE;
end
else
case(state)
IDLE:
if(x==1)
begin
state<=A;
end
A:
if(x==0)
begin
state<=B;
end
B:
if(x==0)
begin
state<=C;
end
else
begin
state<=F;
end
C:
if(x==1)
begin
state<=D;
end
else
begin
state<=G;
end
D:
if(x==0)
begin
state<=E;
end
else
begin
state<=A;
end
E:
if(x==0)
begin
state<=C;
end
else
begin
state=A;
end
F:
if(x==1)
begin
state<=A;
end
else
begin
state<=B;
end
G:
if(x==1)
begin
state<=F;
end
default:
state=IDLE;
endcase
endmodule
模拟电路部分
1.目前,集成电路最常用的材料是单晶硅。
2.集成电路的生产由设计、制造、封装三部分组成。
3.集成电路中基片主要制作工艺为:
光刻、扩散、注入、刻蚀、键合。
4.集成电路中基片的制造步骤为:
光刻、扩散、注入、刻蚀。
5.衡量集成电路产业水平的两个主要参数为:
硅晶圆片直径和光刻精度(特征尺寸)。
这两个参数在业界达到的水平为:
硅晶圆片直径12英寸(300mm),光刻精度0.13um。
主流水平为:
硅晶圆片直径200mm,光刻精度0.18um。
6.模拟电路中常用的仿真算法是SPICE,英文全名为SimulationProgramwithIntegratedCircuitEmphasis。
7.世界上设计EDA软件实力最强的两个公司为Cadence和Synopsys。
其中,Cadence的优势为电路布局布线,Synopsys的优势为逻辑综合仿真。
8.WorkBench是加拿大IIT公司推出的电子线路仿真软件。
它可以对模拟、数字和模拟/数字混合电路进行仿真,克服了传统电子产品的设计受实验室客观条件限制的局限性,用虚拟的元件搭接各种电路,用虚拟的仪表进行各种参数和性能指标的测试。
特点如下:
(1)系统集成度高,界面直观,操作方便。
(2)具备模拟、数字及模拟/数字混合电路仿真。
(3)提供较为丰富的元器件库。
(4)电路分析手段完备。
(5)输出方式灵活。
(6)兼容性好。
9.SPICE语言举例:
EXAMPLE ****文件名任意名都可以但必须要有****
VCC8012 ****电源正极接于节点8负极接于0电压为12V****
VEE0912 ****电源正极接于节点0,负接接于节点9,电压为12V;****
VIN10AC1SIN(00.15MEG) ****信号源VIN接于1和接点0;交流1V进行交流分析
同时加一个正弦信号直流偏置为0,振幅为0.1V频率为5M的交流信号源,进行瞬态分析;****
RC18410K ****电阻RC1分别接于节点8节点4;阻值为10K;****
RC28510K ****电阻RC2分别接于节点8节点5;阻值为10K;****
RS211K ****电阻RS分别接于节点1节点0;阻值为1K;****
RS18720K ****电阻RS1分别接于节点8节点7阻值为20K;****
RS2301K ****电阻RS2分别接于节点3节点0阻值为1K;****
Q1426MOD1 ****三极管Q1CBE分别接于节点426模型为MOD1****
Q2536MOD1 ****三极管Q2CBE分别接于节点536模型为MOD1****
Q3679MOD1 ****三极管Q3CBE分别接于节点679模型为MOD1****
Q4779MOD1 ****三极管Q4CBE分别接于节点779模型为MOD1****
.OP ****求出直流工作点.本电路共有9个节点;温度值为27度;****
.DCVIN-.15.15.01 ****DC为直流分析语句,分析输入电压从-0.15V到0.15V扫描特性,每0.1V作一次分析;****
.PRINTDCV(4)V(5) ****.PRINT为打印语句,其中DC是打印直流内容,这里规定打印节点4和5上的电位,既相对地参考点的电压随输入的变化关系;****
.PLOTDCV(4)V(5) ****.PLOT为绘图语句,其中DC表示绘制直流分析的传输特性,说明是绘制V(4)V(5)的输出电压和VIN关系曲线;****
.TFV(5)VIN ****.TF是转移函数分析语句,该句表示计算直流分析时,小信号输出电压V(5)和输入电压VIN的转移函数值,输入电阻和输出电阻;****
.ACDEC1025K250MEG ****.AC是交流分析语句,是在规定的频率范围内从25K到250M进行频域分析DEC表示按数量级变化,10表示每一数量级中取的分析点数目;****
.PRINTACVM(5)VP(5) ****打印AC分析VM(5)VP(5)的取点数;****
.PLOTACVM(5)VP(5) ****绘制AC分析VM(5)VP(5)的取点数;****
.TRAN4N100N1N ****.TRAN是瞬态分析语句,并规定了打印或绘图时间增量为4N秒,计算终止时间为100N秒,打印或绘图开始时间1NS*;****
.PRINTTRANV(5)V(4) ****.打印出4.5点的电压随时间变化;****
.PLOTTRANV(5)V(4) ****.绘图出节点4.5的电压随时间变化;****
.END ****结束语句...一定要有;****
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 基础 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)