目录
微电子设计主要平台和实现方式
目前而言对于集成数字电路的设计来说主要的技术有两种一种是ASIC另一种是FPGA。 这两者虽然说表达的逻辑一样而且也是芯片设计,但是这两种方式在物理层面上实现的方式不同。
组成ASIC的单元是MOS晶体管,目前来说主要的工艺有CMOS和FINFET。而FPGA设计则是大批量生产ASIC之前的工作。一般而言会先使用FPGA进行prototype的设计,如果测试通过,再将设计送入工厂进行大批量生产。市面上有很多FPGA芯片和开发板,目前来说主要的生产厂家有XILINX,Altera等等,这两家是体量最大的了。FPGA芯片的大概构造如Fig1所示,其中包括了Logic blocks, Interconnect 和IO blocks。
Fig1 FPGA芯片结构
FPGA的logic block的主要结构是一个look-up-table,一般来说为了能表示时序逻辑,会在look-up-table后再加上一个flip-flop。这也是为什么FPGA设计能作为ASIC的prototype的原因之一。通过编辑look-up-table内容和flip-flop的链接可以在这个芯片上实现所有的逻辑。但是由于物理结构设计原理与ASIC不同所以其一般来说需要仿真的话还是得在软件上建模然后仿真。
微电子设计流程简介
在芯片设计的过程中主要分为三个阶段:
- Modeling
- Synthesis
- Validation
modeling 即为逻辑表达的过程,通过客户的需求使用HDL来进行逻辑表达,目前主要的HDL有Verilog和VHDL。这两者表达的东西都是一样的,最大的不同之处在于Verilog的底层表达没有VHDL那么好,相对的VHDL在表达上不如Verilog那么简介明了。当然了用哪个看自己喜好,对于一个工程师来说当然是两个都懂是最好了。Synthesis 过程就是将工程师用HDL设计建模出来的电路的behavior翻译为电路structure的过程。比如说y=a+b这个逻辑写在HDL中经过synthesis就变成了一个或门电路,但是仅仅变成这个电路还是不够的。在逻辑更为复杂的情况下,翻译出来的电路结构很大程度上会影响到整个电路的性能,因此在这个过程中还包括了optimization。这就是EDA工具所需要做到的事情。最后的Validation就是对已经设计的电路进行检查,一般来说会通过输入某些特定的向量组检查输出或者是说各种参数来实现。
模型抽象(modeling abstraction)
要表达一个电路主要可以从三个不同的角度来进行理解,如Fig2中所示,即behavior, structure 和physical。根据抽象程度的不同又可以分为4个不同的level,即Algorithm level, RT level, Logic level, Circuit level。
Fig2 Y chart
Synthesis的过程也就是由Behavior view 向Structure view转变的过程。EDA tools 的Optimization的过程则只是在Structural这一个view下进行。当然了完全可以在不同的抽象等级下做同样的事情。VHDL和Verilog中不同level的编程就很好地反映了这一点。目前市场上做这个事情的工具即EDA工具80%以上都用的Synopsys,或者是在某些IDE中集成了Synopsys例如Vivado。