IC design flow & relevant desing tools(集成电路设计流程与EDA工具经典总结)

合集下载

详细阐述ic工业设计流程

详细阐述ic工业设计流程

详细阐述ic工业设计流程英文回答:IC Industrial Design Process.The IC industrial design process is a complex andmulti-disciplinary effort that involves the creation of a new integrated circuit (IC) product. The process typically begins with a market analysis to identify the need for a new IC product. Once the market need has been identified, the design team begins to develop the IC architecture. The architecture defines the basic building blocks of the IC, including the logic gates, memory blocks, and input/output interfaces.Once the architecture has been developed, the design team begins to create the physical layout of the IC. The layout defines the placement of the logic gates, memory blocks, and input/output interfaces on the IC die. The layout must be carefully designed to ensure that the ICmeets its performance requirements and is manufacturable.After the layout has been completed, the design team begins to develop the IC fabrication process. The fabrication process defines the steps that are used to create the IC die. The fabrication process must be carefully controlled to ensure that the IC meets its performance requirements and is manufacturable.Once the fabrication process has been developed, the design team begins to test the IC. The testing process ensures that the IC meets its performance requirements and is free of defects.The IC industrial design process is a complex and time-consuming effort. However, it is essential to the development of new IC products. By following a structured design process, the design team can ensure that the IC meets its performance requirements and is manufacturable.中文回答:IC工业设计流程。

IC设计流程之实现篇 全定制设计

IC设计流程之实现篇 全定制设计

IC设计流程之实现篇——全定制设计要谈IC设计的流程,首先得搞清楚IC和IC设计的分类。

集成电路芯片从用途上可以分为两大类:通用IC(如CPU、DRAM/SRAM、接口芯片等)和专用IC(ASIC)(Application Specific Integrated Circuit),ASIC是特定用途的IC。

从结构上可以分为数字IC、模拟IC和数模混合IC三种,而SOC (System On Chip,从属于数模混合IC)则会成为IC设计的主流。

从实现方法上IC设计又可以分为三种,全定制(full custom)、半定制(Semi-custom)和基于可编程器件的IC设计。

全定制设计方法是指基于晶体管级,所有器件和互连版图都用手工生成的设计方法,这种方法比较适合大批量生产、要求集成度高、速度快、面积小、功耗低的通用IC或ASIC。

基于门阵列(gate-array)和标准单元(standard-cell)的半定制设计由于其成本低、周期短、芯片利用率低而适合于小批量、速度快的芯片。

最后一种IC设计方向,则是基于PLD或FPGA器件的IC 设计模式,是一种“快速原型设计”,因其易用性和可编程性受到对IC制造工艺不甚熟悉的系统集成用户的欢迎,最大的特点就是只需懂得硬件描述语言就可以使用EDA工具写入芯片功能。

从采用的工艺可以分成双极型(bipolar),MOS和其他的特殊工艺。

硅(Si)基半导体工艺中的双极型器件由于功耗大、集成度相对低,在近年随亚微米深亚微米工艺的的迅速发展,在速度上对MOS管已不具优势,因而很快被集成度高,功耗低、抗干扰能力强的MOS管所替代。

MOSFET工艺又可分为NMOS、PMOS和CMOS三种;其中CMOS工艺发展已经十分成熟,占据IC市场的绝大部分份额。

GaAs器件因为其在高频领域(可以在0.35um下很轻松作到10GHz)如微波IC中的广泛应用,其特殊的工艺也得到了深入研究。

IC设计流程及各阶段典型软件

IC设计流程及各阶段典型软件

IC设计流程及各阶段典型软件IC设计流程是指整个集成电路设计的整体过程,包括需求分析、系统设计、电路设计、物理设计、验证与测试等阶段。

每个阶段都有其典型的软件工具用于支持设计与开发工作。

本文将详细介绍IC设计流程的各个阶段及其典型软件。

1.需求分析阶段需求分析阶段是集成电路设计的起点,主要目的是明确设计目标和规格。

在这个阶段,设计团队与客户进行沟通和讨论,确定设计的功能、性能、功耗、面积等要求。

常用软件工具有:- Microsoft Office:包括Word、Excel、PowerPoint等办公软件,用于编写设计需求文档、文档整理和汇报。

2.系统设计阶段系统设计阶段主要是将需求分析阶段得到的设计目标和规格转化为可实现的电路结构和算法设计。

常用软件工具有:- MATLAB/Simulink:用于算法设计和系统级模拟,包括信号处理、通信系统等。

- SystemVerilog:一种硬件描述语言,用于描述电路结构和行为。

- Xilinx ISE/Vivado:用于FPGA设计,进行电路逻辑设计和Verilog/VHDL代码的仿真和综合。

3.电路设计阶段电路设计阶段是将系统级设计转化为电路级设计。

常用软件工具有:- Cadence Virtuoso:用于模拟和布局设计,包括原理图设计、电路模拟和布局与布线。

- Mentor Graphics Calibre:用于DRC(Design Rule Checking)和LVS(Layout vs. Schematic)设计规则检查和布局与原理图的对比。

4.物理设计阶段物理设计阶段主要是将电路级设计转化为版图设计,并进行布局布线。

常用软件工具有:- Cadence Encounter:用于逻辑综合、布局和布线。

- Cadence Innovus:用于布局布线和时钟树设计。

- Mentor Graphics Calibre:用于DRC和LVS设计规则检查和验证。

IC Design(IC 设计)

IC Design(IC 设计)

WELL + Diffusion Poly
WELL + Diffusion + Poly Metal + CONT
About Frontend Design & Backend Design

Frontend Design


Chip architecture design Module design Digital design - write RTL code, logic simulation and synthesis Analog design - draw schematics, analog simulation Chip level design Pre-layout and post-layout simulations

Design methodology is “stable” Experience is very important
Digital Circuit Design Flow

Digital design : RTL to GDSII

RTL Coding verification
Fully supported by EDA tools
Example: RTL code in Verilog module inverter (Y, A); output Y; input A; assign Y = ~A; endmodule
What is Layout?

A set of overlapped geometric drawing Represent physical design (corresponding to mask layers) Database format for Layout: GDSII Example: Inverter (cell INVX1)

简述进行ic设计的方法和设计流程

简述进行ic设计的方法和设计流程

简述进行ic设计的方法和设计流程英文回答:IC Design Methodology.The design of an integrated circuit (IC) is a complex process that requires a team of engineers to work togetherto create a functional product. The design process begins with the specification of the IC, which defines the functionality, performance, and other requirements of the chip.Once the specification is complete, the design team can begin to create the circuit schematic. The schematic is a graphical representation of the circuit, showing the connections between the different components. The schematic is then used to create the circuit layout, which is a physical representation of the circuit on the silicon wafer.The circuit layout is then sent to the fabricationfacility, where the chip is manufactured. Once the chip is fabricated, it is tested to ensure that it meets the specifications. If the chip meets the specifications, it is then packaged and shipped to the customer.IC Design Flow.The IC design flow is a set of steps that are followed to create an IC. The flow typically includes the following steps:1. Specification: The IC design process begins with the specification of the IC. The specification defines the functionality, performance, and other requirements of the chip.2. Schematic capture: The circuit schematic is created using a schematic capture tool. The schematic is a graphical representation of the circuit, showing the connections between the different components.3. Simulation: The circuit schematic is simulated toverify that it meets the specifications. Simulation is a process of running the circuit through a series of tests to check its functionality.4. Layout: The circuit layout is created using a layout tool. The layout is a physical representation of thecircuit on the silicon wafer.5. Verification: The circuit layout is verified to ensure that it meets the specifications. Verification is a process of checking the layout for errors and ensuring that it will function properly.6. Fabrication: The circuit layout is sent to the fabrication facility, where the chip is manufactured.7. Test: The chip is tested to ensure that it meets the specifications. If the chip meets the specifications, it is then packaged and shipped to the customer.中文回答:IC设计方法。

IC设计flow简介

IC设计flow简介

1. Architectural and electrical specification.2. RTL(Register Transfer Level) coding in HDL(Hardware Description Language).3. DFT(Design For Test) memory BIST(Built In Self Test) insertion, for designs containing memory elements.4. Exhaustive dynamic simulation of the design, in order to verify the functionality of the design.5. Design environment setting. This includes the technology library to be used, along with other environmental attributes.6. Constraining and synthesizing the design with scan insertion (and optional JTAG) using Design Compiler.7. Block level static timing analysis, using Design Compiler’s built-in static timing analysis engine.8. Formal verification of the design. RTL compared against the synthesized netlist, using Formality.9. Pre-layout static timing analysis on the full design through PrimeTime.10. Forward annotation of timing constraints to the layout tool.11. Initial floorplanning with timing driven placement of cells, clock tree insertion and global routing12. Transfer of clock tree to the original design (netlist) residing in Design Compiler.13. In-place optimization of the design in Design Compiler.14. Formal verification between the synthesized netlist and clock tree inserted netlist, using Formality.15. Extraction of estimated timing delays from the layout after the global routing step (step 11).16. Back annotation of estimated timing data from the global routed design, to PrimeTime.17. Static timing analysis in PrimeTime, using the estimated delays extracted after performing global route.18. Detailed routing of the design.19. Extraction of real timing delays from the detailed routed design.20. Back annotation of the real extracted timing data to PrimeTime.21. Post-layout static timing analysis using PrimeTime.22. Functional gate-level simulation of the design with post-layout timing (if desired).23. Tape out after LVS(Layout Versus Schematic) and DRC(Design Rule Checking) verification.。

ic设计流程

ic设计流程

ic设计流程
IC设计(Integrated Circuit Design)是指将电子元器件和电路集成到单个芯片上的过程。

它经历了几个主要的流程,包括前端设计、物理设计和后端设计。

以下是每个流程的详细介绍:
前端设计流程:
前端设计流程是指在编写RTL代码后,将其转换为物理设计中的网表(Netlist)的过程。

这是芯片设计过程中的第一步。

此流程包括各种步骤,如功能验证、RTL设计、综合、时序分析和设计约束。

物理设计流程:
物理设计流程是指将RTL代码(硬件描述语言)转换为芯片的物理结构的过程。

这涉及到的主要任务包括物理验证、布局设计、时钟设计、布线和静态时序分析等。

后端设计流程:
后端设计流程是指在芯片物理结构设计后,进行后续的电路细节设计、验证和优化的过程。

该过程包括各种步骤,如电路模拟、电路提取、电路优化、时序确认和信号完整性验证等。

综上所述,IC设计流程是一个复杂的过程,需要经过多个阶段的设计和验证。

仔细规划和执行这些流程,可以确保芯片能够满足性能和可靠性方面的要求,同时也可以提高设计效率和降低开发成本。

集成电路(IC)设计完整流程详解及各个阶段工具简介

集成电路(IC)设计完整流程详解及各个阶段工具简介

IC设计完整流程及工具IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。

前端设计的主要流程:1、规格制定芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。

2、详细设计Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。

3、HDL编码使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。

4、仿真验证仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。

看设计是否精确地满足了规格中的所有要求。

规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。

设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。

仿真验证工具Mentor 公司的Modelsim,Synopsys的VCS,还有Cadence的NC-Verilog均可以对RTL 级的代码进行设计验证,该部分个人一般使用第一个-Modelsim。

该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。

5、逻辑综合――Design Compiler仿真验证通过,进行逻辑综合。

逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。

综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。

逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。

所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。

一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)逻辑综合工具Synopsys的Design Compiler,仿真工具选择上面的三种仿真工具均可。

Designflow画图技术

Designflow画图技术

控制点--在流程中设置监控点以保证质量 它不会妨碍流程运作,用以对过程进行测量、 审计等。
CP:EX1 Exchange Rate
FC-10
Finance Lead Client
Advise Daily Exchange Rate CP:EX2 Updated Rate
En d
FF-10
Fulfillment Pipe
注释--流程中某些活动的例外 或补充说明,有备注和提醒之意。
定义可制造性需求
注:包含生产过程中的 可测试性需求。
HUAWEI TECHNOLOGIES CO., LTD.
Huawei Confidential
外部流程/使能流程/子流程
• 外部流程--流程中的某些活动
CC-30 是否经常发 生? N 回访问题是 否解决?
统一流程画图规范,易于沟通。 流程中的主要角色居于图形中间。相对主要角色,管理类的角色居于主 要角色的上面,并按照重要性依次排列;操作类角色排在主要角色的下 面 为体现流程端到端,客户角色一般置顶 一图胜千文

画图原则


HUAWEI TECHNOLOGIES CO., LTD.
Huawei Confidential
2015/3/11
Security Level: 内部公开
DesignFlow画图技术
2014.05

HUAWEI TECHNOLOGIES CO., LTD.
Huawei Confidential
目录
w的使用
Solve problems PLN-340 MM-340 Solve parts problems PR-350 PR-365 4
Solve production problems

(北航IC设计流程)IC_design_flow

(北航IC设计流程)IC_design_flow

The schedule of 7-day course1. Assume James Yang will go to conference in the morning of Sept. 32. There are 26 topics in part 1.3. There are 45 topics in Part 24. The schedule is flexible, depending on the students’ response. If we have time on the last day, we can study something about Design for Testability (DFT)The information collected in this topic is based on James Yang’s own working experience. The students can use the information as a reference. For some other cases such as more advanced projects, these information and suggestion may not be totally applicable.1. The Flow of IC Design5. Design :HDL source coding6. HDL test bench coding7. RTL simulation/debug8. FPGA netlist generation10. FPGA verification/debug2. Information Collection and StudyThere are many different fields in IC industry. The IC designers’ specialties also vary a lot. A good IC designer in Area A may take a long time to be familiar with the knowledge in Area B. In the beginning of our career life, we need to ask ourselves that what kind of IC designer we want to be ? Consumer electronics ? PC peripherals ? Communication ? Microprocessor or DSP ? …. ?The basic rules and flows of IC design are the same, no matter which kinds of products we are going to join. HDL, FPGA and EDA software, etc. are only the tools to help us in chip realization. The spirit of the IC is the knowledge. So the first challenge we will encounter is to obtain the related information for the design, then understand the information and implement it.Some information is not free, we need to join the association or buy the documents from their organizations such as ISO or IEEE, etc. The designers should also have strong background so they can understand them quickly, even improve the existing standards or algorithms. Therefore, in addition to polishing our design skill and tool manipulation, the good designers must have sufficient knowledge in their area, and keep on accumulating them.Ex. 1: 8-port Ethernet switching hub controllerKnowledge :IEEE 802.3 standards including 10MHz Ethernet and 100MHz Fast Ethernet.Related area : Asynchronous Transfer Mode (ATM), IEEE 802.11 wireless LAN, IEEE 1394, USB, etc.Ex. 2 : Card reader + Image displayerKnowledge :Joint Picture Expert Group (JPEG) standards.Image format (RGB, YCbCr , CIF, QCIF, 422, 420, NTSC, PAL, etc.)Memory card specification (CF, SM, MMC, SD, MS,XD)File formatRelated area : Motion Picture Expert Group (MPEG) -1, MPEG-2, MPEG-4, MP3, etc.Ex. 3 : Secure Digital (SD) card controllerKnowledge:SD card specificationFlash memory (a non-volatile memory) specificationDecryption algorithm and flow for SD cardFile formatRelated are : digital memory cards, thumb drive, non-volatile memory based devices, etc.3. IP PreparationHDL, computer simulation and FPGA verification can only handle the digital part in an ASIC design flow. If there is any analog part in this IC, it relies on the analog IC designers, or it can be purchased from the other companies. Even some pure digital part can also be bought from the other companies to speed up the time to market (TTM). Those parts that are not designed by us are called IP (intellectual properties). IP may be in the following forms : HDL code, netlist, hard macro which is technology dependent. If the hard macro is made by TSMC 0.35um technology, the users are strongly recommended to use the IP with this technology, or its function and reliability is not guaranteed. So the technology for our design may be determined by the hard macro.The best case is that all the IP’s are provided with their simulation models (such as in HDL). Then we can do the whole chip simulation in computer instead of simulating only part of the design.Some IP are in very high price such as the PHY in USB 2.0. Some are available from the design service companies. Design service companies are those companies that provide sign-off services to, usually smaller, IC design houses. Sign-off service indicates the jobs from circuits synthesis to wafer out. Some small companies do not have enough man power and software tools for these jobs, even they can not book enough wafer during busy seasons, so the design service companies take care of the jobs for them.Ex. 1 : 8-port Ethernet switching hub controllerEx. 2 : Card reader + Image displayerNot every IP is just fit our requirement. Sometimes, we need to modify it after the purchase. With this consideration, the flexibility (configurable or not) of the IP and the support from its original designers are also criteria for the IP survey.The all-in-one consideration is very important for the IC design. In Ex. 1, if we can not combine the PHYs into our ASIC, the product can still be promoted with the external PHYs. But, if the other companies can make the all-in-one product, then the system manufactures will not use ours any more for the reason of cost, size, etc. This is why we need to determine the IPs before the starting the design.4. Architecture PlanningIn the beginning, the designers must understand all the related specifications, standards and algorithms. But there are many ways to implement these specifications and algorithms. The best architecture is the one with the fastest speed and minimum chip size. Unfortunately, the requirement of fast speed is usually contradictory to the requirement of small die size. So, planning an optimal structure with certain trade-off is also an important issue before the job of HDL coding.Three common examples are given below. They are the adder, the divider and the motion estimator in MPEG.. Ex. 1: The adderNormal 4-bit Adder : A[3:0] + B[3:0] = S[4:0], one stage by one stageS0S1 S2 S3 S4A0B0C0A1B1 C1A2B2 C2A3B3Look-ahead Adder : expects the carry earlier. It has more gate count, but much faster.Ex. 2 : The dividerThe divisor is fixed. The fastest way is look-up table for this function. But this method needs large memory.We can subtract the divisor from the dividend repeatedly until the new dividend is less than the divisor. It may take long time but with minimum hardware efforts.There are still many ways to implement the divider. Each has its own advantages and drawbacks.Ex. 3 : Motion Estimator : Find the most similar 8x8 block from the previous picture in one movie.Basically, there are full search method and three-step search method. Many papers have discussed the architecture to optimize the hardware complexity and speed.The following two examples are our real cases that the architectures are emphasized.Ex. 1 : Card reader + Image displayerEx. 2 : Secure Digital (SD) card controller8051 is not fast enough to handle the fast response required by SD card, so many work are share by hardware. The negotiation between hardware and firmware engineers is very important.* Jan Ti Yang & S.Z. Hsieh, etc. “Optimized Structure for Fast Data Storage to Non-Volatile Memory with Minimum Chip Size”, ICSP’04, Beijing, Aug. 2004.* Jan Ti Yang & S.Z. Hsieh, etc.“ Performance Comparison of Logical Address to Physical Address Algorithms for Non-Volatile Memory”, ASICON’2003, Beijing, Oct. 2003.5. Design : HDL Source CodingA good designer is trained by practical experience and continuous study. We need to be very careful and patient in every design. Because one NRE (explained later) will costs a lot of money and several weeks, the designer will take the responsibility for the money and schedule loss if he/she did some careless mistakes. Experience and carefulness may be the best way to achieve a successful design.HDL is different from computer language such as C. In HDL, every statement is one circuit. All the statements work at the same time, no matter their order in the code.Compare the difference : In VHDL In CC <= A+ B; C = A+ B;=B; DB;+C+<=DCAssume A=5, B=6 and C=7 initially. In VHDL, C=11 and D=13 because both addition are executed in the same time. In C, C=11 but D=11+6=17 because the second statement is executed after the first one is done.Many students asked : should we learn VHDL at first, or verilog at first ? The answer will be given later.The following items are some suggestions for a stable and successful design :Naming style :1. Don’t use the keywords as signal names2. Don’t use the Verilog keyword as the signal names in VHDL because the final netlist is in Verilog.3. Name the signal with meaning, use x or n as the first letter when this signal is active low.4. Name the I/O pins as short as possible.5. Don’t name the signal with upper and lower cases mixed.6. It is the rule that the first letter of a signal name must be a – z.7. make the module name, instance name and file name the same.Coding style : remember that a good code is a code that other people can read and understand easily.1. Add comments as more as possible. Record the modification history.2. Coding format is fixed and united for all the modules in one design. Follow the format that the project leaderassigns.3. Divide the entire design into different module/entity of suitable number.4. All the signals in one always/process must be related.5. Don’t use the keywords or syntax those are used not often in order for safe synthesis. In the view point oflogic, all the logic circuits can be expressed by IF – THEN – ELSE.6. Don’t use “deep” logic.7. All the conditions in one IF must be related.Design style :1. It is strongly recommended to do the synchronous design.2. Always keep the timing issue in mind when doing design. The RTL simulation results may be the same as wethought, but the practical results may be different. Ex. OR two consecutive pulses may not be equal to a two-clock pulse.3. Determine the low or high reset, synch. or asynch. reset. reset, rising or falling edge trigger in the beginning ofthe design, and all the modules follow the decision.4. Use IF and CASE in different situations.5. Be careful in latching a signal or bus that is generated by the different clock.6. Make sure that all the signals are reset. FPGA does reset automatically in power-up which may mislead thedesigner as if they did it.7. Never read any internal memory (ex. SRAM) before write it. FPGA makes all the bits in the internal SRAMinto 0’s in power-up.8. Use data buffer when transfer data from one clock to a different clock, which works as the dual clock FIFO.9. In VHDL, the 2-dimensional array is allowed, it is very useful. In Verilog, it is allowed in the test bench forsimulation only, it can not be synthesized.10. Follow the register-in register-out rule.11. Synthesis tool such as Synopsys DesignCompiler, is very stable, any bugs must come from the design code, cannot be from synthesis tools.12. Make the FPGA version and ASIC version as similar as possible, especially the SRAM types. It is ideal thatthe two versions are the same.13. Make build-in-self-test (BIST) circuits for embedded memory.14. Dummy cells and some other remedy circuits are necessary.15. Some simple test circuits are needed. Usually there are several test modes in one chip.16. Do gating clock when idle to save power.17. Don’t rely on the script to guarantee the design (Ex. Synopsys full_case). But some good constraint in scriptcan do the better performance (Ex. Look-ahead adder).18. If time is sufficient, do one more latch by clock instead of using MUX.19. Don’t use internal tri-state. FPGA may not have such circuits. ASIC requires bus holder to handle internaltri-state.20. Do the pad insertion on the top level. So the output enable signal of every bi-directional pad will be taken out tothe top level.21. Be very careful in selecting pad. (Ex. pull up ability, Schmitt trigger, 5V tolerant, clock pads, etc.)22. Be aware of the problem caused by clock skew.23. Don’t try to generate the half-cycle signal.24. If there are many functions to be revised, do it one by one, i.e., revise one function and check one function.25. It is a good habit to align the bit number of every signal in one computation equation, even though the synthesistool can handle it.26. Never use division provided by HDL.27. Reduce the unnecessary clock. It causes trouble in design and layout. Most of the FPGA has 1-4 dedicateclock paths only.6. HDL Test Bench CodingTest bench is also the HDL code that provides the simulation models for the devices connected with the ASIC. The efforts in designing test bench may not be less than that in designing ASIC. For the ASIC with many peripheral devices, it may take much longer time in coding the test bench than coding the ASIC.Ex. : Secure Digital (SD) card controllerThe following items are some requirements for a good test benchEven though the test bench is not for synthesis and can be coded in a easier way, but we should notice the following items :1. The test bench can cover as more cases as possible, both the function cases and timing cases. So it isrecommended that the designers for test bench are different from the designers for the ASIC.2. The test bench must be flexible. New testing condition can be added easily.3. Log the test results for automatic comparison instead of checking the results by eyes.4. All the results of IC pins are logged as the pattern for the IC testers.5. If there are some functions that FPGA verification can not afford, the test bench must cover them.6. Try to make the test bench as close to the real environment as possible (Ex. external memory).7. It is better to make an integrated test bench. A test bench with too many separate modules is not easy to bemaintained.A typical test bench contains the following items :7. RTL Simulation/DebugRTL simulation is also called the behavioral simulation or functional simulation. It is only based on the register transfer level (RTL) function, timing is not considered. The delay in the stage is called the delta delay, it really exist but can not be shown on the waveform. Ex :Delta delay is effective only for the signals generated by the same clock. If the signal is latched by the other clock, both clocks have the same frequency and phase, then unknown condition may happen. So we need to insert a little delay in this situation.All the design must pass the RTL simulation with fair test bench at first, then the source code can be synthesized into netlist for FPGA or pre-sim. If not, the debug work on FPGA will be terrible.The most popular simulation tool is the Cadence Verilog-XL. It is recognized by all the companies that Verilog-XL is the standard to check the simulation results. But it is the workstation version. For the PC version, ModelSim is a good choice. The simulation results are close to those of Verilog-XL.There are many tools can be used to see the waveform. Debussy is very popular because of it small size of dump file.The goal of simulation is to find out the errors before hardware realization. So it takes many iterations to modify the code and do re-simulation until there is no bugs (at least can not be found with the test bench). Then, the results (waveform) will be checked very carefully, some important outputs are logged as the “golden pattern”. From now on, we can compare the output directly to see if the results are correct.Some functions are very difficult to be tested. To test them requires long pattern. We need to think how to overcome this problem, some circuits may be added to achieve this goal.Ex . Secure Digital (SD) card controllerThere are almost 800K cycles in the test pattern, but toggle rate is about 70%.An example of the waveform from RTL simulation is shown below :CLK D_IN QOUT Delta Delay -> 08. FPGA Netlist GenerationThe restriction of FPGA : here the Altera FPGA’s are used as the example.1. Every FPGA has its own capacity limitation. We can not download our design into an FPGA with 90% utilityrate or even higher. Take Altera 20K200 as the example, 50K gate count will takes more then 80% utility. It may restrict the performance of the FPGA. So we use Altera 20K600, it takes 30% only.2. There are only 2 clock paths for clock and 4 dedicate input for reset, etc. If there are more clocks, it may be atrouble. Any clock generated inside the design is suggested to be routed out of the FPGA, the goes into FPGA again through the clock path.3. There are embedded memory inside the FPGA. If the design contains large embedded SRAM, the FPGA maynot have so much. So we need to added external memory outside the FPGA. Also, the memory types may be different from the real embedded ones.4. Altera’s FPGA will reset all the register outputs and SRAM data into 0 at power up, no matter we do it or not.It may be dangerous for the final chip because the FPGA works find and, actually, we did not do the reset in our design.5. Some FPGA’s declare its high speed. These information are based on some special cases. With high utility,the stable speed will not be over 50MHz usually. For some design with high speed and large gate count (Ex. : 8-port Ethernet switching hub controller : the clock is 75MHz, the gate count is 500K), FPGA verification is not practical. Otherwise, the design is separated into several FPGAs and verified with lower clock rate.After RTL-simulation, our design code can be synthesized into the FPGA netlist. The synthesis tool used here is the Synopsys FPGA Express of PC version. The synthesized netlist is the EDIF file, not the verilog file. The following example is one paragraph of the edif netlist, not easy to be read.edif all_top(edifVersion 2 0 0)(edifLevel 0)(keywordMap(keywordLevel 0))(status(written(timeStamp 2004 3 30 8 54 19)(program "FPGA Compiler II""3.5.1.6112")(version)(author "RD")))(external UnlinkedDesignLibrary(edifLevel 0)(technology(numberDefinition))(cell syn_ram_512x8_irou(cellType GENERIC)(view Netlist_representationNETLIST)(viewType(interface(port(array(rename Q_7_0 "Q[7:0]") 8)(direction OUTPUT))(port(array(rename Data_7_0 "Data[7:0]") 8)(direction INPUT))(port WE(direction INPUT))(port(array(rename Address_8_0 "Address[8:0]") 9)(direction INPUT))(port Inclock(direction INPUT)))))……………………………………(instance buf26_reg0(viewRef Netlist_representation(cellRef APEX20KE_LCELL(libraryRefAPEX20KE)))(property operation_mode(string "normal"))(property packed_mode(string "true"))(property lut_mask(string "0000")))…………………………………………………………(net(rename C8937_N33 "C8937/N33")(joined(portRef DA TAAC10904)(instanceRef)(portRef COMBOUT(instanceRefC13440))))The next step is to use the netlist files and the other 2 files (LMF and TCL files) derived from FPGA Express to generate the FPGA download file. This step is to place the cells and route the nets according to the netlist into the assigned FPGA. So it is called the auto placement and routing (APR). The tool now is Altera Quartus. Before we do this, a file that lists the pin assignment and target FPGA must be prepared. It is the CSF file with an example shown below (one part of the file) :COMPILER_SETTINGS{RUN_TIMING_ANALYSES = ON;MERGE_HEX_FILE = OFF;FOCUS_ENTITY_NAME = |all_top;=APEX20KE;FAMILYDPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2";DPRAM_32BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1";DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1";DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2";DPRAM_32BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "LOWER TO 1ESB UPPER TO 1"; …………………………………………………………………………………………………………………..COMPILA TION_LEVEL = FULL;SA VE_DISK_SPACE = ON;SPEED_DISK_USAGE_TRADEOFF = NORMAL;LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT = OFF;}CHIP(all_top){full_buffer[0] : LOCA TION = PIN_AF35;full_buffer[1] : LOCA TION = PIN_AE35;full_buffer[2] : LOCA TION = PIN_AD35;full_buffer[3] : LOCA TION = PIN_AC35;fr_data_period : LOCA TION = PIN_G34;………………………………………………………………………….DEFAULT_DEVICE_OPTIONS{RESERVE_ALL_UNUSED_PINS = "AS OUTPUT DRIVING GROUND";HEXOUT_FILE_COUNT_DIRECTION = UP;HEXOUT_FILE_START_ADDRESS = 0;GENERA TE_HEX_FILE = OFF;GENERA TE_RBF_FILE = OFF;GENERA TE_TTF_FILE = OFF;………………………………………………………………………………………………………..FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON;FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF;MAX7000_ENABLE_JTAG_BST_SUPPORT = ON;ENABLE_JTAG_BST_SUPPORT = OFF;}AUTO_SLD_HUB_ENTITY{AUTO_INSERT_SLD_HUB_ENTITY = ENABLE;HUB_INSTANCE_NAME = sld_hub_inst;HUB_ENTITY_NAME = sld_hub;}Not every pin of the FPGA can be used as the I/O pins. The available pins are given in their data sheet.With the 4 files, Quartus can generate the download file for our FPGA. The files are the POF files. With the capacity difference, some FPGA has one POF file and some has more than 4 POF files.9. Test Environment SetupFPGA is very similar to the real chip except for the timing and IPs. The FPGA verification with real test environment can find most of the problems that the chip will meet.Ex. 1: 8-port Ethernet switching hub controllerEx. 2 : Secure Digital (SD) card controllerFor some projects, the test environment is hard to be built. The major problem is it may cost too much. In Ex. 2, one purpose of the verification is the compatibility of the SD card controller. There must be many different types of devices that have SD interface to do the test. But the available devices, such as card reader, digital camera, MP3 player, etc. are over several hundreds. For the complete test report, the cost of buying devices is real high.This step should start as early as possible. We also need to be careful at the power of the entire system. Don’t let the designers waste too much time on debugging the board, not the source code.FPGAPower & Download Circuits FPGA Board on Mother BoardFlash Power Circuits8051OSC10.FPGA Verification/DebugThis step takes the longest time in the entire design flow. The source code can not be synthesized for tape-out until the verification is passed. Almost all the real problems can be found in this step to make up the insufficiency of our test bench. It is also the hardest step for the junior engineers who know there is an error, but can not find the error.Basically, the errors encountered can be divided into two categories : logical errors and timing/electrical errors.The logical errors are those errors made by our HDL design or the associate firmware. These cause the functional problems. The basic debug flow can be : 1. Observe the error from the output.2. Repeat the error. Make sure the initial conditions are the same and try to repeat the same error again.3. If it is repeatable, re-route the netlist with more observation pins. These observation pins are not the actual I/Opins, but some important internal signals. If the observation shows the incorrect results, then we need to extract more signals for observation. This procedure is repeated until the error is located.Usually, the debug procedures will not be so simple because there are several errors that may influence each other.So it is hard to isolate the error in this condition. This step relies on the engineer’s debug experience very much. An experienced engineer can find the error faster based on the similar problems of those previous projects. Besides, the more the engineers understand the system, the faster they can find the errors.The equipment used the most often is the logic analyzer. How to set the desired trigger point is a challenge.Ex. : Secure Digital (SD) card controllerFPGA Board + Mother BoardThe timing/electrical errors are those problems that may not be repeatable. Sometimes it works well, and sometimes it will not work at all. If this phenomenon happens, we can focus on this type of errors.Ex. 1 : FPGA consumes much more power than a IC. If the current supply is not sufficient, or some power wiresLogic AnalyzerIn-Circuit Emulator (ICE) of 8051are too thin, it will result in bad effect to the FPGA verification.Ex . 2: For the signals from the external devices, they are connected to the FPGA mother board through some long wire and connector. If the driving current of the external devices are not strong enough, the signals will be too weak to be identified.Ex. 3 : The ground level of mother board is different from that of the external devices.Ex. 4 : The looseness of mounted elements and the broken wires in the FPGA board and mother board are the most often problems encountered in the verification environment.Ex. 5 : The clock wire is very critical if the frequency is high. If it is too thin, it may be induced by the other signal. If it is too wide, the capacitance may be strong that the sharp edge will be reduced. Do not route the clock wire into a loop.Ex. 6 : The power up condition of FPGA may be different from that of real chip. Make sure that there is no problem for the chip power up even if the FPGA verification is OK.Ex. 7 : The signals generated with asynch. Logic may be unstable.Ex. 8 : For high utility of FPGA, some paths may be routed long and the timing is not met. If it is routed again with some minor change, these paths may be OH bit some other paths may fail.The equipments used the most often are, besides the logic analyzer, the oscilloscope.11. Netlist SynthesisAfter the FPGA verification, the design code is confirmed to be a good one. The next step is to synthesize the design code into a netlist for chip layout.The most popular synthesis tool is Synopsys DesignCompiler. It has been used by numerous engineers, so its performance is guaranteed. The synthesized netlist does not include the IP parts. These IP parts are also synthesized from the empty modules with their input/output declaration only. So that the layout engineers can insert the IP’s inside the empty places.The choice of the cell library should be determined in the beginning of the project because some hard macros are technology dependent, i.e., if the IP is designed with 0.35um technology, we need to choose the 0.35um cell library. The cell libraries from UMC and TSMC are very popular. The 0.35um means the length of the transistor in the real chips. From our experience, the history for the popular technologies of the recent 10 years is :* This is based on our comsumer products requiring no high-end technologies1995 0.7um1996 0.6um1997 0.5um 3.3V1999 0.35um2001 0.25um2004 0.18um 0.18V0.15um0.13umWe need to indicate the directory path of our cell library in the file “synopsys_dc.setup”. The following paragraph is an example for synopsys_dc.setup/* setup the Setupe..Defaults menu */include /diska1/user/ba057/sd_card/syn/TSMC_naming_rule.scriptdesigner = "James Yang"company = "MEGAWIN"search_path = {"." "/diska1/user/ba017/KIT/tcb773s/synopsys" }link_library= {"*" "/diska1/user/ba017/KIT/tcb773s/synopsys/tcb773stc.db" }target_library= { tcb773stc.db}symbol_library= {tcb773s.sdb}/* tcb773s.sdb Synopsys symbol library *//* tcb773stc.db Synopsys technology library (typical case)*//* tcb773swc.db Synopsys technology library (worst case) *//* tcb773sbc.db Synopsys technology library (best case) */hdlin_translate_off_skip_text = TRUEdefault_schematic_options = "-size infinite"ink_library = link_library + target_library ;define_design_lib TOY_BOX -path ./TOY_BOX/* Site Specific Variables */synthetic_library = {}command_log_file = "./command.log"view_command_log_file = "./view_command.log"plot_command = "lpr -Plw"text_print_command = "lpr -Plw"/* enable Text Viewer feature */hdlin_source_to_gates_mode = "high"write_name_nets_same_as_ports = "true"compile_fix_multiple_port_nets = "true" /* avoid use "assign" for wire connection */verilogout_no_tri = "true"verilogout_single_bit = "true"compile_no_new_cells_at_top_level = "true"。

简述进行ic设计的方法和设计流程

简述进行ic设计的方法和设计流程

简述进行ic设计的方法和设计流程Designing an integrated circuit (IC) involves a series of steps and methods that are essential for creating efficient and functional electronic devices. IC design is the process of developing a schematic representation of the electronic circuit, followed by the physical design layout that determines the actual structure of the circuit. The process of IC design requires a combination of technical skills, creativity, and attention to detail to ensure that the final product meets the desired specifications and functions as intended.进行IC设计涉及一系列步骤和方法,这些步骤和方法对于创建高效且功能正常的电子设备至关重要。

IC设计是开发电子电路的原理图表示,随后是确定电路实际结构的物理设计布局的过程。

IC设计的过程需要结合技术技能、创造力和对细节的关注,以确保最终产品符合期望的规格并按预期功能。

One of the initial steps in IC design is defining the specifications and requirements of the circuit. This involves understanding the desired functionality of the circuit, its performance parameters, power consumption, size constraints, and other factors that will influencethe design. The specifications serve as a roadmap for the designprocess, helping to guide decisions and trade-offs throughout the development cycle. By clearly defining the requirements upfront, designers can better focus their efforts and ensure that the final product meets the intended goals.IC设计中的一个最初步骤是定义电路的规格和要求。

数字芯片 设计流程

数字芯片 设计流程

数字芯片设计流程英文回答:Digital Chip Design Flow.The digital chip design flow is a complex and iterative process that involves several stages, including:Specification and Requirements Gathering: The first step in the design process is to gather and define the requirements of the chip. This includes understanding the functionality, performance, and cost targets.Architectural Design: The next step is to develop the architectural design of the chip. This involves defining the overall structure of the chip, including the major functional blocks and their interconnections.Logic Design: Once the architectural design is complete, the logic design phase begins. This involvesdesigning the logic circuits that implement the desired functionality of the chip.Physical Design: The physical design phase involves converting the logic design into a physical layout. This includes placing the logic gates and routing the wires on the chip.Verification: Throughout the design process, verification is performed to ensure that the chip meets the specified requirements. This involves running simulations and other tests to check for errors and defects.Fabrication: Once the design is verified, it is sent to a fabrication facility to be manufactured. This involves creating the physical chip using a series of lithographic and etching processes.Testing: After fabrication, the chips are tested to ensure that they meet the specified requirements. This involves running a series of tests to check for defects and functionality.Packaging: The final step in the design process is to package the chips. This involves placing the chips in a protective housing and providing connections to the outside world.中文回答:数字芯片设计流程。

ICDesignFlow

ICDesignFlow

power Simuation IC package
FloorPlaning
Automatic Placement, Scanchain Rebuild, CTS, Routing, Power analysis
EE141 EDA 工具实践
SOCE, Astro
7 7
Tools
E D A
SOC设计流程
EE141
微电子学院
11
5 5
• • • • • • • • • •
EE141 EDA 工具实践
Tools
E D A
SOC设计流程过程EDA工具与文档
Design Spec Definition System Design Specman
Leda, Verdi
Matlab、 SPD、 COSSAP
System Partition IP select、IF timing Definition NCverilog, VCS
E D A
Design Flow
史江一 jyshi@
2016/1/15
EE141
微电子学院
1
E D A
SOC设计流程
Design Spec Definition System Design System Partition IP select、IF timing Definition
RTL Code &Coding Style Check
Verification Module Desgin
RTL Simulation PhyC, ICC Moduel check Pre-FloorPlan Logic Synthesis Netlist
EE141 EDA 工具实践

ASIC_Design_Flow

ASIC_Design_Flow

1300
From Sand to Chip
ASIC design house/service
Pattern GDSII
IDEA
ASIC DESIGN
IC Fab
Sondrel Confidential; Sondrel Internal Use Only 4
IDEA Design specification Design entry: Verilog Coding Simulation/ functional verification Chip integration/verification Synthesis/Pre layout timing/formal verification Scan Chain Insertion/ Test generation /Fault simulation Physical Design TO Sign-off
ASIC DESIGN FLOW
Liu Bo
Senior Manager
What’s ASIC
An application-specific integrated circuit, or ASIC is an integrated circuit (IC) customized for a particular use.
Process
2003 90nm 2005 65nm 2007 45nm 2009 32nm 2011 22nm
Design Complexity(Million Transistors)
100 400 Moore’s Law
Sondrel Confidential; Sondrel Internal Use Only 3

详细阐述ic工业设计流程

详细阐述ic工业设计流程

详细阐述ic工业设计流程The IC industrial design process involves various stages that are crucial for creating products that are not only functional but also aesthetically pleasing. From concept development to prototyping, each step requires careful planning and execution to ensure the final product meets the needs of the target market.IC工业设计流程涉及各个关键阶段,对于创造既功能齐全又外观美观的产品至关重要。

从概念开发到原型制作,每个步骤都需要仔细的规划和执行,以确保最终产品能满足目标市场的需求。

The first stage of the IC industrial design process is concept development, where designers brainstorm ideas and create sketches to visualize the product. This stage is crucial as it sets the foundation for the entire design process and helps in determining the direction of the project.IC工业设计流程的第一个阶段是概念开发,设计师们一起进行头脑风暴,制作草图来可视化产品。

这个阶段非常关键,因为它为整个设计流程奠定了基础,并有助于确定项目的方向。

Once the concept is finalized, the next stage involves creating detailed drawings and 3D models using specialized software. This helps in refining the design and identifying any potential issues before moving to the prototyping phase. Collaborating with engineers and manufacturers is also essential during this stage to ensure the feasibility and efficiency of the design.一旦概念确定,下一个阶段涉及使用专业软件创建详细的图纸和3D模型。

IC设计flow简介

IC设计flow简介

1. Architectural and electrical specification.2. RTL(Register Transfer Level) coding in HDL(Hardware Description Language).3. DFT(Design For Test) memory BIST(Built In Self Test) insertion, for designs containing memory elements.4. Exhaustive dynamic simulation of the design, in order to verify the functionality of the design.5. Design environment setting. This includes the technology library to be used, along with other environmental attributes.6. Constraining and synthesizing the design with scan insertion (and optional JTAG) using Design Compiler.7. Block level static timing analysis, using Design Compiler’s built-in static timing analysis engine.8. Formal verification of the design. RTL compared against the synthesized netlist, using Formality.9. Pre-layout static timing analysis on the full design through PrimeTime.10. Forward annotation of timing constraints to the layout tool.11. Initial floorplanning with timing driven placement of cells, clock tree insertion and global routing12. Transfer of clock tree to the original design (netlist) residing in Design Compiler.13. In-place optimization of the design in Design Compiler.14. Formal verification between the synthesized netlist and clock tree inserted netlist, using Formality.15. Extraction of estimated timing delays from the layout after the global routing step (step 11).16. Back annotation of estimated timing data from the global routed design, to PrimeTime.17. Static timing analysis in PrimeTime, using the estimated delays extracted after performing global route.18. Detailed routing of the design.19. Extraction of real timing delays from the detailed routed design.20. Back annotation of the real extracted timing data to PrimeTime.21. Post-layout static timing analysis using PrimeTime.22. Functional gate-level simulation of the design with post-layout timing (if desired).23. Tape out after LVS(Layout Versus Schematic) and DRC(Design Rule Checking) verification.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档