热度 21| |||
From:https://mp.weixin.qq.com/s/fPK5NR2RuqWFyd433kPpdg
IC君之前看到有人分享了一个网址:https://www.eda.ncsu.edu/wiki/NCSU_EDA_Wiki ,深扒了一下发现好东西不少。这是北卡罗来纳州立大学的电子设计自动化的维基百科页面——包含了学习研究的(非商用)设计库、方法、教程等。
图
NCSU CDK是指使用MOSIS工艺的,适用于Cadence软件的工艺设计套件,可以直接下载。其实具体什么工艺,作为初学者不必care,只要它能支持我们IC设计的学习即可。
FreePDK 是一个开源的45nm工艺库。
点击这两个链接进去之后,在网页的最右边可以看到如下图所示:
点击下载可以看到需要注册:
注册很简单,只要给一个邮箱就会把链接发给你:
不过邮箱好像是需要公司的或者学校的后缀才行,IC君就用以前学校的邮箱注册下载了,如果收不到邮件注意看一下垃圾邮件。
如果你愿意自己下载,可以按照IC君的步骤操作;
如果你觉得太麻烦,百度网盘的链接奉上:
链接:https://pan.baidu.com/s/1jI1Uvem 密码:mqjf
IC君在linux (CentOS 6.5 )下解压了NCSU-CDK-1.6.0.beta和NCSU-FreePDK45-1.4这2个文件夹,解压命令如下:
tar -xvf xxx.tar
NCSU-CDK-1.6.0.beta 在linux下解压的路径:
/home/EDA/gyk/ncsu-cdk-1.6.0.beta
NCSU-FreePDK45-1.4在linux下解压的路径:
/home/EDA/gyk/FreePDK45
在你想打开virtuoso 的工作目录下,在文件cds.lib 把下列行加进去,
DEFINE NCSU_Devices_FreePDK45 /home/EDA/gyk/FreePDK45/ncsu_basekit/lib/NCSU_Devices_FreePDK45
DEFINE NCSU_Digital_Parts /home/EDA/gyk/ncsu-cdk-1.6.0.beta/lib/NCSU_Digital_Parts/
打开virtuoso (Cadence软件安装教程可以在eetop、ic小镇之类网站上找到),你就可以看到NCSU_Devices_FreePDK45主要包含了一些NMOS和PMOS:
可能是用于学术研究的免费库,库里面只包含了MOS基本单元,正常的工艺库可能还有电阻、电容、金属之类的。通过这些基本单元我们可以搭建出一些门单元,如非门IV、与非门NAND、或非门NOR、选择器、触发器DFF、运放、电流镜、电压基准等等。最后再通过这些门单元电路,像搭积木一样搭出复杂的芯片。对于学习而言,这个库应该已经够用了。
另外这个库还能产生适用于hspice格式的网表,这样仿真可以变得更方便。很多网上找的工艺库都不支持产生hspice格式的网表。
hspice 仿真精度高,收敛性强,在亚微米和深亚微米工艺中表现出色。不过现在也被synopsys收了,hspice在仿真精度这个维度上吊打其它EDA工具,精度高了仿真速度也就比较慢了,但是小规模的电路仿真用起来还是很不错。
从搭电路到hspice仿真可以参考NCSU的教程:
https://www.eda.ncsu.edu/wiki/FreePDK15:Analog_Artist_with_HSPICE
同样百度文库链接奉上:
链接:https://pan.baidu.com/s/1jI2Auvs 密码:00j3
NCSU_Digital_Parts包含了一些基本的门单元:
但是这个库里面用的MOS都是没有尺寸的,仿真不能直接用。所以我们可以通过复制这个库,然后调用NCSU_Devices_FreePDK45生成可以用来仿真的门单元。这碗酒留到下一篇文章喝。
上面说了用Cadence手动搭电路的过程,对于标准数字电路设计而言,在FreePDK45/osu_soc/ref_design/Synthesis下面有 compile_dc.tcl,参考里面库的用法,可以用以下语句调用45nm工艺库进行综合自动生成电路:
set OSU_FREEPDK [format "%s" "/home/EDA/gyk/FreePDK45/osu_soc/lib/files"]
set search_path [concat $search_path $OSU_FREEPDK]
set alib_library_analysis_path $OSU_FREEPDK
set link_library [set target_library [concat [list gscl45nm.db] [list dw_foundation.sldb]]]
set target_library "gscl45nm.db"
进入dc_shell 的命令行模式下,直接输入
source compile_dc.tcl
回车即可执行。
另外还有一个网页是asic教程的,可惜里面的资料下载不了。不过eetop上类似的教程很多,大家应该很容易找到。
https://www.eda.ncsu.edu/wiki/Tutorial:ASIC_Design_Tutorials