登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 590|回复: 0

ASIC计划学习总结(包罗:工具及册本文档保举、软件情况搭建、RTL计划、验证 ...

[复制链接]

187

主题

187

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-7 15:51:57 | 显示全部楼层 |阅读模式 来自 江苏徐州
ZIOqKlSkzLA24y6A.jpg
之前先容过了了芯片计划全流程先容(芯片计划全流程详解 包罗:正向流程和反向流程)。由于其时的履历非常有限,以是对于正向计划,特殊是对于从RTL级代码开始的计划先容得不是很清晰。颠末这一段时间的学习,对于从RTL级代码开始的Asic芯片计划有了更多的熟悉,如今总结一下,一方面给本身整理思绪,另一方面也盼望抛砖引玉,让各人各抒己见,分享一下各自的计划履历,促进我们的共同进步。
笔者本来计划具体的先容学习中的劳绩,将各类知识点写成文章,但颠末反复考量之后,发现这种具体照搬别人知识的做法实在没什么意思。与其原封不动的转述别人书中的内容,不如直接提供参阅的书目,如许就省得在转述别人的知识的时间误解作者想要表达的真正意义。以是本系列的文章,笔者将个人学习的履历加以整合,将履历知识点摆列出来,并附加所参阅的册本。别的涉及到实践操纵过程的章节,将会把详细利用的工具摆列出来,并附上一些参考性的代码和脚本。
本系列文章重要分为十二个部门,分别为:
(一)工具及册本文档保举
(二)软件情况搭建
(三)RTL计划
(四)验证
(五)工艺库阐明
(六)情势验证
(七)综合
(八)可测性计划
(九)低功耗计划
(十)静态时序分析
(十一)数模混淆仿真
(十二)可测性计划
先容这么多,不是显得个人有多少履历,实在本人也只是菜鸟,关注这么多内容,重要是为了让本身的知识储备更全面一下,如许思量计划题目的时间遗漏的东西会更少一些。在本系列文章中,每个章节的详略是差别的,重要是跟个人工作履历有关,有先容得简朴的地方,贫苦各人帮助增补。每个部门的内容根本接纳“理论+工具+示例”的行文布局,有些EDA工具笔者没有利用过的就暂不能提供实例了。
(一)工具及册本文档

一、媒介
对于RTL级的Asic计划所涉及到的软件黑白常之多的,笔者也并没有每一个都利用过。
二、工具先容
RTL代码规则查抄工具:nlint,spyglass。这两个软件重要是用于查抄代码的语法和语义错误的,而且比其他的工具能检测出更多的题目,好比说定名规格,时序风险,功耗等。具体先容请参考软件的利用教程,nlint有Windows版和linux版,软件的linux版本和利用教程可以在eetop上搜刮到。
RTL代码仿真工具:这类仿真工具有较多的组合,好比说:qustasim/modelsim,NC_verilog+Verdi,VCS+DVE,VCS+Verdi等等。现在笔者利用的组合是VCS+Verdi。这两个软件是业内主流的仿真软件,还可以联合UVM库举行仿真,固然这是验证方法学的内容。
综合工具:Design Complier。最常用的综合工具,没有之一,该软件重要是将RTL代码“翻译+优化+映射”成与工艺库对应的门级网表。而且还包罗功耗分析软件Power Complier和界限扫描寄存器插入软件 BSD Complier。
可测性计划:DFT Complier + TetraMAX。软件在DC之后利用,DFT Complier 用于将计划的内部寄存器更换成扫描寄存器并构成一条或多条扫描链,TetraMAX是用于主动天生测试向量的。
情势验证工具:Formality、Conforml(candence出品)。等价性验证工具,重要是在DFT Complier插入扫描链之后举行验证,别的,在版图综适时钟树,插入BUFFER之后,也必要用该工具举行等效性验证。
静态时序分析工具: Prime Time。业界最常用的时序分析工具之一,该软件包罗功耗分析PTPX工具,功耗分析必备。cadence也有对应的时序分析工具——Encounter Timing System。
主动结构布线工具(APR):ICC,Enconter。此中Encounter是Cadence公司的。
数模混淆仿真: nanosim + VCS,nanosim的升级版为XA。
这是一篇有关于synopsysEDA工具软件的先容,盼望对于EDA软件的用途不清晰的同伴有资助。http://bbs.eetop.cn/thread-151171-1-1.html
三、册本保举
《Verilog HDL 硬件形貌语言》
《计划与验证Verilog HDL》
《企业用verilog代码风格规范》
《verilog语言编码风格》
《verilogHDL代码风格规范》
《Verilog HDL高级数字计划》
《Soc计划方法与实现》
《高级ASIC芯片综合》
《华为Verilog典范电路计划》
《数字IC体系计划》
《数字集成电路--电路、体系与计划》
《专用集成电路计划实用教程》
《集成电路静态时序分析与建模》
《CMOS集成电路后端计划与实战》
《makefile教程》
《鸟哥的私房菜》
《SystemVerilog与功能验证》
《UVM实战》
《通讯IC计划(上下册)》
《数字图像处置惩罚与图像通讯》
《数字信号处置惩罚的FPGA实现中文版》
各类Synopsy userguide,EETOP有16年版的。
三、工艺库阐明
利用DC,PT,FM,ICC大概ENCOUNTER软件必要工艺库文件,重要包罗数字逻辑单位文件,符号库,综合库,寄生电容参数库,版图文件LEF,milkway库等等。
有关工艺库各文件夹的作用,笔者将会在将“工艺库阐明”的章节举行具体先容,假如有遗漏还请各人包容。


(二)情况搭建

一、媒介
先先容一下个人的利用情况。由于网络上已经存在许多安装教程,笔者就不再废话,直接给出他们的毗连,并附带其他必要留意的关键点,假如有安装题目,请追问。Synopsys软件安装包下载地点在笔者前一篇文章“工具及册本文档”,都是来自EETOP的大牛们提供的。在安装的过程中必要具备一些Linux体系的利用履历,否则会很难明白这些步调是做什么的。
个人的情况如下:1、vmware 12;2、RHEL6.5体系;3、synopsys软件,Lib Complier,VCS,Verdi,Desgin Complier,PrimeTime,Formality,ICC。一共7个软件,险些都是15年版本的。
二、步调
情况搭建必要预备以下三件事:
1,vmware12假造机安装;安装教程如下。http://jingyan.baidu.com/article/215817f78879c21edb142379.html
2, RHEL6.5操纵体系安装,固然也可以利用CentOs6.5,安装教程如下。http://www.linuxidc.com/Linux/2016-05/131701.htm ——》RHEL6.5
http://www.kafan.cn/edu/488101.html   ——》Centos6.5
a、安装vmware tools。在假造机中把体系安装好了之后,必要安装vmware tools,安装教程如下,http://www.linuxidc.com/Linux/2015-08/122031.htm ,安装该软件之后才可以启用共享文件夹以利于RHEL6.5与windows体系举行文件互换。
b、更新YUM源,RHEL和Centos都必要更新YUM源,操纵步调同等,YUM是一个链接到软件库的一个软件,随后安装软件必要用到。http://jingyan.baidu.com/article/b24f6c8239c6aa86bee5da60.html
留意:该教程某些步调大概会失效,必要联合本身详细的环境利用。安装好YUM之后,可以利用yum install gvim下令测试一下。
c、安装GCC,G++,这两个软件在VCS+Verdi仿真时会调用到。下令:yum install gcc
下令:yum install gcc-c++
3、 Synopsys软件安装
Synopsys软件安装教程,链接如下:http://wenku.baidu.com/view/c02c271d9b6648d7c0c74670.html
http://bbs.eetop.cn/thread-553702-1-1.html
高版本和低版本的Synopsy软件安装步调同等,区别在于license的题目。用EETOP上的最新license即可利用15版的软件。在利用RHEL操纵体系必要懂一些SHELL脚本,makefile脚本,如许便于进步操纵服从,后文会提到。
留意:别的还必要修改四个文件的hostname,使得这到处的hostname保持同等。
a、synopsys.dat中的第一行hostname;
b、synopsys.bashrc中的export SNPSLMD_LICENSE_FILE=27000@localhost行,“@”符号后的hostname;
c、/etc/sysconfig/network设置文件中hostname;
d、/etc/hosts设置文件中的127.0.0.1这一行的 ,第三个参数hostname;
这四个hostname肯定要同等,才气精确启动DC,PT,FM,ICC,VCS,VERDI软件。
在启动DC,PT,FM,ICC,VCS,VERDI软件之前必要先启动Synopsys的license管理器。
有关软件的利用教程可以参考官方的userguide。大概EETOP上,小同伴们的教程。


(三)工艺库阐明

(略,请点击阅读原文检察)

(四)RTL计划

数字电路计划
RTL计划所必要的理论知识繁芜而繁多,本文所先容的内容均由个人参阅了很多册本之后加以整合的,许多内容本人也不是很熟,只是摆列出来作为参考学习的资料。重要有三个部门的内容,第一部门重要是数字电路计划的底子,这是在大学时期应该予以把握的内容,第二部门是进阶的学习内容附带一个专业方向——MCU,第三部门是有关于各类算法处置惩罚的专业知识,必要更多的复合型知识,比方通讯方向必要有较好的数学功底—傅立叶变更。由于这部门内容着实太多,个人没有本领也没有须要将每一部门的内容都具体的摆列出来,以是这里只是整理出一些必要把握的关键点。至于详细的内容,还请各人按照个人需求,参阅保举的各类册本。
一、底子
组合逻辑与时序逻辑:布尔代数,卡诺图,根本与非门,锁存器,触发器,辩论与冒险。——《Verilog HDL高级数字计划》
Verilog语言底子:数值范例,表达式与运算符,assign语句,always语句,if-else语句,case语句,壅闭与非壅闭。——《Verilog HDL 硬件形貌语言》
状态机:一段式、二段式、三段式状态机的区别;独热码、二进制码、格雷码的区别及应用场所。——《Verilog HDL高级数字计划》
同步电路和异步电路:两者的本质,异步电路跨时钟域,亚稳态。——IC_learner博客
复位与时钟:同步复位、异步复位、异步复位同步开释的区别,时钟分频——二分频、三分频、恣意整数分频,门控时钟,时钟切换。——《深入浅出玩转FPGA》,百度文档
数据通路与控制通路:本质上任何数字电路都可以分别为简朴的两种范例——控制通路与数据通路,控制通路的焦点是状态机,数据通路是各类算术处置惩罚算法、并行总线等等。——《Verilog HDL高级数字计划》
Testbench验证:无论什么电路,终极都必要验证其功能的精确性。Testbench的布局重要由a,复位和时钟,b,鼓励产生电路,c,体系监督器,d,效果比力电路,e,波形产生函数,f,待验证的MODULE等重要模块构成,此中,b是最紧张的模块,统统验证都是从鼓励信号开始的。——《verilogHDL代码风格规范》。初学者保举利用windows版qustasim 大概modelsim 仿真工具,简朴又方便,以后可学习利用VCS+Verdi(比力折腾人)。
二、进阶
代码风格:精良的代码风格很有须要,参考一下企业用的代码风格,有助于个人养成精良的编码风俗。——《企业用verilog代码风格规范》《verilog语言编码风格》
根本常用电路:具备以上繁芜的理论底子之后,必要积聚一些常用的底子电路。——《华为Verilog典范电路计划》
接口电路,I2C,UART,SPI:接口电路是中小规模芯片常用的对外接口电路,无论是与上位机(PC)通讯照旧控制别的芯片。I2C从机常用于EEPROM芯片中,主机可以直接利用单片机模仿,ARM单片机直接集成了I2C主机,I2C的IP代码网络上有现成的;UART是全双工电路,宏晶单片机通过UART举行烧录,SPI电路最常用于SD卡上。——《Verilog HDL高级数字计划》《通讯IC计划(上下册)》有简朴的UART和SPI的代码。
RISC,8051 MCU ——IP:通过下载EETOP上相干的IP及文档来学习。 
三、专业
数值的表现方法:浮点数,定点数的表现办法——《Verilog HDL高级数字计划》《通讯IC计划(上下册)》
算术处置惩罚算法:浮点数的加法、乘法电路计划。——《Verilog HDL高级数字计划》
通讯算法:FIR滤波器,IIR滤波器,傅立叶变更,冗余编码等等各种通讯方向必须把握的。——《通讯IC计划(上下册)》《数字信号处置惩罚的FPGA实现》
图像处置惩罚算法:静态图像,动态图像去噪。——《数字图像处置惩罚与图像通讯》
   SOC:SOC类芯片的构成布局,AMBA总线,IP复用,SV验证。——《Soc计划方法与实现》
四、工具:
文档代码编辑器:GVIM,Notpad++
RTL计划规则查抄:Nlin,spyglass
五、示例
下列代码为UART全双工串口示例代码,代码泉源于《Verilog HDL高级数字计划》,随后的章节将会利用到该示例代码,代码功能细节需联合册本相识。
下面的代码已颠末modelsim验证。 
UART发送器:
module UART_XMTR #(
  parameter word_size = 8
)(
  output                      Serial_out,
  input  [word_size - 1 : 0]  Data_Bus,
  input                       Load_XMT_datareg,
                              Byte_ready,
                              T_byte,
                              Clock,
                              rst_b
);
  Control_Unit  M0( Load_XMT_DR, Load_XMT_shftreg,start,shift,clear,
                    Load_XMT_datareg,Byte_ready,T_byte,BC_lt_Bcmax,
                    Clock,rst_b);
  Datapath_Unit M1( Serial_out,BC_lt_Bcmax,Data_Bus,Load_XMT_DR,
                    Load_XMT_shftreg,start,shift,clear,Clock,rst_b);
 
endmodule
module Control_Unit #(
  parameter one_hot_count  = 3,
            state_count    = one_hot_count,
            size_bit_count = 3,
            idle           = 3'b001,
            waiting        = 3'b010,
            sending        = 3'b100
           // all_ones       = 9'b1_1111_11111
)(
  output reg Load_XMT_DR,
  output reg Load_XMT_shftreg,
  output reg start,
  output reg shift,
  output reg clear,
 
  input      Load_XMT_datareg,
  input      Byte_ready,
  input      T_byte,
  input      BC_lt_Bcmax,
  input      Clock,
  input      rst_b
);
 
  reg [state_count - 1 : 0]  state, next_state;
 
always @(state, Load_XMT_datareg,Byte_ready,T_byte,BC_lt_Bcmax)
begin:Output_and_next_state
  Load_XMT_DR      = 0;
  Load_XMT_shftreg = 0;
  start            = 0;
  shift            = 0;
  clear            = 0;
  next_state       = idle;
 
case(state)
  idle:    if(Load_XMT_datareg == 1'b1)begin
             Load_XMT_DR = 1;
             next_state = idle;
           end
           else if(Byte_ready == 1'b1)begin
             Load_XMT_shftreg = 1;
             next_state = waiting;
           end
  waiting: if(T_byte == 1) begin
             start = 1;
             next_state =sending;
           end else
             next_state = waiting;
  sending: if(BC_lt_Bcmax) begin
             shift      = 1;
             next_state = sending;
           end
           else begin
             clear = 1;
             next_state = idle;
           end
  default: next_state = idle;
endcase
end
 
always @(posedge Clock,negedge rst_b)
begin: State_Transitions
  if(rst_b == 1'b0)

<span style="font-size: 12px;">    state




上一篇:拒绝搬砖拒绝肝!------DNF当地架设教程
下一篇:财经热榜|在中国卖酒有多挣钱?茅台年赚340亿甩特别力一条街 ...
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-4 15:57 , Processed in 0.076069 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表