发布网友 发布时间:2022-04-23 12:42
共1个回答
热心网友 时间:2023-10-13 20:53
1. 首先是使用 HDL 语言进行电路描述,写出可综合的代码。然后用仿真工具作 前仿真,对理想状况下的功能进行验证。这一步可以使用 Vhdl 或 Verilog 作为 工作语言, EDA 工具方面就我所知可以用 Synopsys 的 VSS (for Vhdl) VCS 、 (for Verilog)Cadence 的工具也就是著名的 Verilog-XL 和 NC Verilog 2.前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行 逻辑和时序电路的优化。在这一步通过综合器可以引入门延时,关键要看使用了 什么工艺的库这一步的输出文件可以有多种格式,常用的有 EDIF 格式。综合工 具 Synopsys 的 Design Compiler,Cadence 的 Ambit 3,综合后的输出文件,可以拿去做 layout,将电路 fit 到可编程的片子里或者 布到硅片上这要看你是做单元库的还是全定制的。全定制的话,专门有版图工程 师帮你画版图,Cadence 的工具是 layout editor 单元库的话,下面一步就是自 动布局布线,auto place & route,简称 apr cadence 的工具是 Silicon Ensembler,Avanti 的是 Apollo layout 出来以后就要进行 extract,只知道用 Avanti 的 Star_rcxt,然后做后仿真,如果后仿真不通过的话,只能 iteration, 就是回过头去改。 4,接下来就是做 DRC,ERC,LVS 了,如果没有什么问题的话,就 tape out GDSII 格式的文件, 送制版厂做掩膜板, 制作完毕上流水线流片, 然后就看是不是 work 了做 DRC,ERC,LVSAvanti 的是 Hercules,Venus,其它公司的你们补充好了 btw:后仿真之前的输出文件忘记说了,应该是带有完整的延时信息的设计文件 如:*.VHO,*.sdf RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC,LVS--->TAPE OUT 1。PT 后一般也要做动态仿真,原因:异步路径 PT 是做不了的 2。综合后加一个形式验证,验证综合前后网表与 RTL 的一致性 3。布版完成后一般都会有 ECO,目的手工修改小的错误 SPEC->ARCHITECTURE->RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC, LVS--->TAPE OUT SPEC:specification,在进行 IC 设计之前,首先需要对本 IC 的功能有一个基 本的定义。 ARCHITECTURE:IC 的系统架构,包括算法的设计,算法到电路的具体映射,电 路的具体实现方法,如总线结构、流水方式等。 在 IC 前端的设计中,ARCHITECTURE 才是精华,其他的大部分都是 EDA 工具的使 用,技术含量不高。 dv, design verification,验证 和前端、后端并列。 DFT, design for test. 前后端合作,并与 tapeout 后测试合作。 ir-drop. 后端和验证合作。 SI, 后端。 low-power design ,前后端合作. 数字 ic 设计流程 2 根据我的工作写了一个数字 ic 的设计流程,肯定有很多不足甚至错误的地方,欢迎大家批评指正! 数字 ic 设计流程; 1. 需求分析: 只有需求分析做好了才可能设计出一个好的产品。这个工作主要 是根据市场需求规划整个 chip 所要实现的全部功能,这也是一个很痛苦的工作,因为市场要求设计 人员设计出功能越多越好并且单价越低越好的产品(mission impossible ^_^)。如果你做得是一个很有 前瞻性很有技术性的 chip,那就更要命了,在你做规划的时候,你用的协议很可能只是一个草案, 到你的代码仿真通过或者即将投片的时候,草案变成了一个国际标准,并且作了修改,修改的那部 分你很可能就没有实现(痛苦啊), 这个时候你怎么办?所以需求分析是很重要的, 不过国内的工程师 一般不重视这一步。 2. 系统设计: 就是考虑把需求怎么实现的过程。这个阶段涉及到的工作是时 钟模块的实现思想、各个具体模块的划分、模块之间的接口和时序关系、管脚说明及封装、寄存器 功能描述及编址等。Active HDL 这个工具可以很清楚的表达出模块之间的层次和关系,推荐在系统 设计的时候使用。系统设计做的好对代码编写和仿真有很大帮助,可以很大程度上减轻后端的压力。 3. 代码编写: code,大家最喜欢的阶段也是大家认为比较没有前途的阶段。不过要想做出来的 chip 成本低,一个好的高质量的 code 也是很重要的。流行的编辑工具是 Ultraedit32,Active HDL 也很不 错,没有这些工具就用记事本吧,赫赫,工作站上一般就是用 vi 编辑器了。 4. 代码仿真: 仿真用 的工具工作站上的有 VCS、nc_verilog 和 nc_sim 等,也有用 modelsim 的,不过比较少;pc 上一般 就是用 modelsim 了, Active HDL 也有比较多的人用, 我觉得 pc 上还是 modelsim 比较好, 但是 Active HDL 可以生成 test_bench 的框架,要是两个工具都有,不防结合起来用。 5. fpga 测试: 这一步不 是必需的,但是 fpga 测试很容易找出代码仿真很难发现的错误,比如异步 fifo 的空满判断等,只是 fpga 验证环境的构建比较困难。 fpga 阶段经常用到下面的一些工具: 在 Synplicity 这是一个非常好的 综合工具,综合效率比较高、速度也比较快,同时也能检查出代码编写中的一些错误,FPGA Express 也不错。布线工具根据选用的不同公司的 fpga 而选用不同的工具,Xilinx 公司的产品用 ISE,Altera 公司的产品选用 QuartusII 或者 MaxplusII。 以上就是数字 ic 设计的所谓的前端工作,下面是后端流 程,后端流程的工作和投片厂家有关,设计人员的工作量在不同厂家之间相差还是比较大的 6. 综 合: 综合是指将 rtl 电路转换成特定目标 (用约束来描述) 的门级电路, 分为 Translation、 Optimization 和 Mappin,设计者需要编写约束文件,主要为了达到时序,面积,功耗等的要求,涉及到的综合工 具如 synopsys 的 design compiler,cadence 的 ambit buildgates(包含在 se_pks or spc 中)。毫无疑问, synopsys 的 DC 是大家常用的,最新的版本是 2003.06 版。还有一个工具是 magma,主要是面向 0.18 及以下工艺,发展比较快。 7. 门级验证: 这一步是为了保证布局布线的正确性。 门级验证包括 了门单元的延时信息,因而需要厂家工艺库的支持。 一开始要用到 formality 进行功能上的形式验 证。 通过 formality 检查后,要进行动态仿真和静态时序分析(STA)。STA 的工具常见的工具 是 synopsys 公司的 primetime,这种工具只用来分析门级的时序,速度较快,对提高电路的分析速度很 有帮助,可以在很短的时间找出 timing violation,缩短验证所用的时间,并且分析的覆盖面比较广, 不需要 testbench。动态仿真和代码仿真一样,仿真用的工具有 VCS、nc_verilog 和 nc_sim 等,观察 输出是否达到功能与时序的要求,这种验证方法需要 testbench,对硬件要求高,速度慢,但是是一 种比较可靠的方法 8 布局布线 CADENCE 的 SPC、MONTEREY 的 ICWIZARD 都是很好的工具, 易于使用。 厂家根据工艺会加入线延时信息返回给设计者。 9 后仿真 使用的工具和门级验证一样。 有些厂家为了尽可能缩短后端时间,可以帮你做 formality 检查,但是需要设计者提供源代码,设计 者一般都会拒绝。 好了,剩下的事情就让厂家去做吧。 欢迎大家批评指正! 我对 IC 设计流程的一些理解(模拟 IC 部分)对于模拟 Asic 而言,在进行设计时是不能使用 verilog 或者其他的语言对行为进行描述,目前已知的可 以对模拟电路进行描述的语言大部分都是针对比较底层的针对管级网表的语言, 比如在软件 hspice 和 hsim 所使用的面向管级网表连接关系的语言——spice。因此如果使用语言对电路进行描述的话,在遇到比较大 型的电路时使用门级或者管级网表就比较麻烦。所以,一般在进行模拟电路设计的时候可以使用图形化的 方法来对模拟电路进行设计。比较常用的工具有 Cadence 公司的 Virtuso、Laker、Epd(workview) ,其中 Cadence 自带有仿真器 spectra 可以实现从电路图输入到电路原理图仿真,以及根据电路图得到版图并且 可以利用 cadence 的其他工具插件实现完整的版图验证,从而完成整个模拟电路芯片的设计流程。但是对 于 Laker 和 Epd 而言,这些软件所能完成的工作只是利用 foundry 模拟库中基本单元构建模拟电路图,所 得到的只是模拟电路的网表,而不能对该模拟电路进行仿真,因此一般在使用 laker 或者 EPD 的时候都需 要将得到的模拟电路转化为网表的形式,利用第三方的仿真软件进行仿真,比如使用 hsim、hspice 或者 pspice 对得到的网表进行仿真。然后再使用第三方的版图软件进行版图设计和 DRC、ERC、LVS 检查,所 以从设计的方便性上讲使用 Cadence 的全系列设计软件进行模拟电路设计是最为方便的。 在得到模拟电路的版图后就可以根据版图提取寄生参数了,寄生参数的提取方法和前面所讲的数字电路的 版图参数提取是完全相同的,利用提取得到的寄生参数就可以得到互联线所对应的延迟并且将该延迟或者 是 RC 参数反标回模拟电路图中去,从而得到更符合实际版图情况的电路图。对该电路图仿真就可以完成 后仿真,得到更符合实际芯片工作情况的信号波形。 因此, 在模拟电路设计中版图设计是非常重要的, 一个有经验的版图设计师可以很好将各种模拟效应通 过版图来避免,从而在相同设计的情况下得到性能更好的芯片设计。另外,一个准确的模拟单元库对于得 到更贴近实际流片测试结果的仿真波形也具有很大帮助的。 可惜目前国内的 foundry 做的库都不是很理想, 做的比较好的就只有 TSMC、UMC 这种大厂。热心网友 时间:2023-10-13 20:53
1. 首先是使用 HDL 语言进行电路描述,写出可综合的代码。然后用仿真工具作 前仿真,对理想状况下的功能进行验证。这一步可以使用 Vhdl 或 Verilog 作为 工作语言, EDA 工具方面就我所知可以用 Synopsys 的 VSS (for Vhdl) VCS 、 (for Verilog)Cadence 的工具也就是著名的 Verilog-XL 和 NC Verilog 2.前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行 逻辑和时序电路的优化。在这一步通过综合器可以引入门延时,关键要看使用了 什么工艺的库这一步的输出文件可以有多种格式,常用的有 EDIF 格式。综合工 具 Synopsys 的 Design Compiler,Cadence 的 Ambit 3,综合后的输出文件,可以拿去做 layout,将电路 fit 到可编程的片子里或者 布到硅片上这要看你是做单元库的还是全定制的。全定制的话,专门有版图工程 师帮你画版图,Cadence 的工具是 layout editor 单元库的话,下面一步就是自 动布局布线,auto place & route,简称 apr cadence 的工具是 Silicon Ensembler,Avanti 的是 Apollo layout 出来以后就要进行 extract,只知道用 Avanti 的 Star_rcxt,然后做后仿真,如果后仿真不通过的话,只能 iteration, 就是回过头去改。 4,接下来就是做 DRC,ERC,LVS 了,如果没有什么问题的话,就 tape out GDSII 格式的文件, 送制版厂做掩膜板, 制作完毕上流水线流片, 然后就看是不是 work 了做 DRC,ERC,LVSAvanti 的是 Hercules,Venus,其它公司的你们补充好了 btw:后仿真之前的输出文件忘记说了,应该是带有完整的延时信息的设计文件 如:*.VHO,*.sdf RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC,LVS--->TAPE OUT 1。PT 后一般也要做动态仿真,原因:异步路径 PT 是做不了的 2。综合后加一个形式验证,验证综合前后网表与 RTL 的一致性 3。布版完成后一般都会有 ECO,目的手工修改小的错误 SPEC->ARCHITECTURE->RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC, LVS--->TAPE OUT SPEC:specification,在进行 IC 设计之前,首先需要对本 IC 的功能有一个基 本的定义。 ARCHITECTURE:IC 的系统架构,包括算法的设计,算法到电路的具体映射,电 路的具体实现方法,如总线结构、流水方式等。 在 IC 前端的设计中,ARCHITECTURE 才是精华,其他的大部分都是 EDA 工具的使 用,技术含量不高。 dv, design verification,验证 和前端、后端并列。 DFT, design for test. 前后端合作,并与 tapeout 后测试合作。 ir-drop. 后端和验证合作。 SI, 后端。 low-power design ,前后端合作. 数字 ic 设计流程 2 根据我的工作写了一个数字 ic 的设计流程,肯定有很多不足甚至错误的地方,欢迎大家批评指正! 数字 ic 设计流程; 1. 需求分析: 只有需求分析做好了才可能设计出一个好的产品。这个工作主要 是根据市场需求规划整个 chip 所要实现的全部功能,这也是一个很痛苦的工作,因为市场要求设计 人员设计出功能越多越好并且单价越低越好的产品(mission impossible ^_^)。如果你做得是一个很有 前瞻性很有技术性的 chip,那就更要命了,在你做规划的时候,你用的协议很可能只是一个草案, 到你的代码仿真通过或者即将投片的时候,草案变成了一个国际标准,并且作了修改,修改的那部 分你很可能就没有实现(痛苦啊), 这个时候你怎么办?所以需求分析是很重要的, 不过国内的工程师 一般不重视这一步。 2. 系统设计: 就是考虑把需求怎么实现的过程。这个阶段涉及到的工作是时 钟模块的实现思想、各个具体模块的划分、模块之间的接口和时序关系、管脚说明及封装、寄存器 功能描述及编址等。Active HDL 这个工具可以很清楚的表达出模块之间的层次和关系,推荐在系统 设计的时候使用。系统设计做的好对代码编写和仿真有很大帮助,可以很大程度上减轻后端的压力。 3. 代码编写: code,大家最喜欢的阶段也是大家认为比较没有前途的阶段。不过要想做出来的 chip 成本低,一个好的高质量的 code 也是很重要的。流行的编辑工具是 Ultraedit32,Active HDL 也很不 错,没有这些工具就用记事本吧,赫赫,工作站上一般就是用 vi 编辑器了。 4. 代码仿真: 仿真用 的工具工作站上的有 VCS、nc_verilog 和 nc_sim 等,也有用 modelsim 的,不过比较少;pc 上一般 就是用 modelsim 了, Active HDL 也有比较多的人用, 我觉得 pc 上还是 modelsim 比较好, 但是 Active HDL 可以生成 test_bench 的框架,要是两个工具都有,不防结合起来用。 5. fpga 测试: 这一步不 是必需的,但是 fpga 测试很容易找出代码仿真很难发现的错误,比如异步 fifo 的空满判断等,只是 fpga 验证环境的构建比较困难。 fpga 阶段经常用到下面的一些工具: 在 Synplicity 这是一个非常好的 综合工具,综合效率比较高、速度也比较快,同时也能检查出代码编写中的一些错误,FPGA Express 也不错。布线工具根据选用的不同公司的 fpga 而选用不同的工具,Xilinx 公司的产品用 ISE,Altera 公司的产品选用 QuartusII 或者 MaxplusII。 以上就是数字 ic 设计的所谓的前端工作,下面是后端流 程,后端流程的工作和投片厂家有关,设计人员的工作量在不同厂家之间相差还是比较大的 6. 综 合: 综合是指将 rtl 电路转换成特定目标 (用约束来描述) 的门级电路, 分为 Translation、 Optimization 和 Mappin,设计者需要编写约束文件,主要为了达到时序,面积,功耗等的要求,涉及到的综合工 具如 synopsys 的 design compiler,cadence 的 ambit buildgates(包含在 se_pks or spc 中)。毫无疑问, synopsys 的 DC 是大家常用的,最新的版本是 2003.06 版。还有一个工具是 magma,主要是面向 0.18 及以下工艺,发展比较快。 7. 门级验证: 这一步是为了保证布局布线的正确性。 门级验证包括 了门单元的延时信息,因而需要厂家工艺库的支持。 一开始要用到 formality 进行功能上的形式验 证。 通过 formality 检查后,要进行动态仿真和静态时序分析(STA)。STA 的工具常见的工具 是 synopsys 公司的 primetime,这种工具只用来分析门级的时序,速度较快,对提高电路的分析速度很 有帮助,可以在很短的时间找出 timing violation,缩短验证所用的时间,并且分析的覆盖面比较广, 不需要 testbench。动态仿真和代码仿真一样,仿真用的工具有 VCS、nc_verilog 和 nc_sim 等,观察 输出是否达到功能与时序的要求,这种验证方法需要 testbench,对硬件要求高,速度慢,但是是一 种比较可靠的方法 8 布局布线 CADENCE 的 SPC、MONTEREY 的 ICWIZARD 都是很好的工具, 易于使用。 厂家根据工艺会加入线延时信息返回给设计者。 9 后仿真 使用的工具和门级验证一样。 有些厂家为了尽可能缩短后端时间,可以帮你做 formality 检查,但是需要设计者提供源代码,设计 者一般都会拒绝。 好了,剩下的事情就让厂家去做吧。 欢迎大家批评指正! 我对 IC 设计流程的一些理解(模拟 IC 部分)对于模拟 Asic 而言,在进行设计时是不能使用 verilog 或者其他的语言对行为进行描述,目前已知的可 以对模拟电路进行描述的语言大部分都是针对比较底层的针对管级网表的语言, 比如在软件 hspice 和 hsim 所使用的面向管级网表连接关系的语言——spice。因此如果使用语言对电路进行描述的话,在遇到比较大 型的电路时使用门级或者管级网表就比较麻烦。所以,一般在进行模拟电路设计的时候可以使用图形化的 方法来对模拟电路进行设计。比较常用的工具有 Cadence 公司的 Virtuso、Laker、Epd(workview) ,其中 Cadence 自带有仿真器 spectra 可以实现从电路图输入到电路原理图仿真,以及根据电路图得到版图并且 可以利用 cadence 的其他工具插件实现完整的版图验证,从而完成整个模拟电路芯片的设计流程。但是对 于 Laker 和 Epd 而言,这些软件所能完成的工作只是利用 foundry 模拟库中基本单元构建模拟电路图,所 得到的只是模拟电路的网表,而不能对该模拟电路进行仿真,因此一般在使用 laker 或者 EPD 的时候都需 要将得到的模拟电路转化为网表的形式,利用第三方的仿真软件进行仿真,比如使用 hsim、hspice 或者 pspice 对得到的网表进行仿真。然后再使用第三方的版图软件进行版图设计和 DRC、ERC、LVS 检查,所 以从设计的方便性上讲使用 Cadence 的全系列设计软件进行模拟电路设计是最为方便的。 在得到模拟电路的版图后就可以根据版图提取寄生参数了,寄生参数的提取方法和前面所讲的数字电路的 版图参数提取是完全相同的,利用提取得到的寄生参数就可以得到互联线所对应的延迟并且将该延迟或者 是 RC 参数反标回模拟电路图中去,从而得到更符合实际版图情况的电路图。对该电路图仿真就可以完成 后仿真,得到更符合实际芯片工作情况的信号波形。 因此, 在模拟电路设计中版图设计是非常重要的, 一个有经验的版图设计师可以很好将各种模拟效应通 过版图来避免,从而在相同设计的情况下得到性能更好的芯片设计。另外,一个准确的模拟单元库对于得 到更贴近实际流片测试结果的仿真波形也具有很大帮助的。 可惜目前国内的 foundry 做的库都不是很理想, 做的比较好的就只有 TSMC、UMC 这种大厂。