TSMC .18um工艺mos管总栅宽改了仿真结果不变
时间:10-02
整理:3721RD
点击:
ic 617环境下,TSMC .18um工艺下总栅宽并不会随着finger number和width的变化而变化,如果手动改total width的话仿真结果跟没改是一样的,也就是说mos'管栅宽最大只有8um,不知坛友是否也有遇到上述情况的?能否给小弟支支招?
增加M不就增大栅宽了?
谢谢回复,增大m也没有,跟没增大之前一样的
增大之前仿真你看了什么参数?没有变化?怎么可能
电流电压,改了和没改一模一样
把finger设成10试试看呢
可能是工艺库没有装全?比如说skill文件丢失?
这是我在tsmc .18工艺库安装文件夹下搜skill文件的结果,也不知道缺不缺文件,能麻烦帮忙看一下吗?
这是 libInit.il 文件的内容:
- ;;; If you rename the library you will have to change the
- ;;; libName definition in the following let statement.
- let( ( (libName "tsmc18rf") libId libPath file element)
- ;;
- ;; Load PDK Skill Code
- ;;
- libId = ddGetObj( libName )
- if( ddIsId( libId ) then
- libPath = ddGetObjReadPath( libId )
- envSetVal("layoutXL" "setPPConn" 'boolean nil)
- ;envSetVal( "layout" "xSnapSpacing" 'float 0.005 )
- ;envSetVal( "layout" "ySnapSpacing" 'float 0.005 )
- libPath = strcat( libPath "/../skill")
- foreach( file setof(element getDirFiles(libPath) equal(".cbe" index(element ".cbe")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".ile" index(element ".ile")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".cb" index(element ".cb")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".il" index(element ".il")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- else
- printf( "An error occured while initializing the libInit.il file.\n" )
- printf( "The library, %s, specified in this file, could\n" libName )
- printf( "not be found. If you have:\n" )
- printf( "omoved/copied the library to a new name.\n" )
- printf( "oedited this file and made a typographical error.\n" )
- printf( "ocopied this file from another library.\n" )
- printf( "you must edit the libInit.il file and correct the\n" )
- printf( "library name.\n" )
- )
- ;;
- ;; Set the Spectre Model Path
- ;;
- if(isContextLoaded("schView") then
- envSetVal("asimenv.startup" "simulator" 'string "spectre")
- libPath = ddGetObjReadPath( libId )
- asiSetEnvOptionVal(asiGetTool('spectre) "modelFiles"
- list(
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3v")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_na")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3vna")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_m")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3m")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bip")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bip3")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio3")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio_dnw")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_res")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_mim")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmos")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmos33")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmim")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfind")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmvar")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfjvar")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_sa")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_rpo")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_hri")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfesd")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bbmvar")
- )
- )
- asiSetEnvOptionVal(asiGetTool('hspiceS) "modelPath" strcat(libPath "/../models/hspice") )
- asiSetEnvOptionVal(asiGetTool('hspiceS) "includeFile" "hspice.mdl")
- if(getd('ADSsim) then
- asiSetEnvOptionVal(asiGetTool('ADSsim) "modelFiles"
- list(
- list(strcat( libPath "/../models/ADS/rf018_inc.net") "")
- list(strcat( libPath "/../models/ADS/ResModel.net") "res_t")
- )
- )
- );end ADS if
- ); if schematic context is loaded
- ;;
- ;; Set the VXL significan Digits
- ;;
- when( getd('aelPushSignifDigits)
- aelPushSignifDigits(6)
- )
- auCdlCDFPinCntrl = 't
- )
这是我在tsmc .18工艺库安装文件夹下搜skill文件的结果,也不知道缺不缺文件,能麻烦帮忙看一下吗?
这是 libInit.il 文件的内容:
- ;;; If you rename the library you will have to change the
- ;;; libName definition in the following let statement.
- let( ( (libName "tsmc18rf") libId libPath file element)
- ;;
- ;; Load PDK Skill Code
- ;;
- libId = ddGetObj( libName )
- if( ddIsId( libId ) then
- libPath = ddGetObjReadPath( libId )
- envSetVal("layoutXL" "setPPConn" 'boolean nil)
- ;envSetVal( "layout" "xSnapSpacing" 'float 0.005 )
- ;envSetVal( "layout" "ySnapSpacing" 'float 0.005 )
- libPath = strcat( libPath "/../skill")
- foreach( file setof(element getDirFiles(libPath) equal(".cbe" index(element ".cbe")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".ile" index(element ".ile")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".cb" index(element ".cb")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".il" index(element ".il")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- else
- printf( "An error occured while initializing the libInit.il file.\n" )
- printf( "The library, %s, specified in this file, could\n" libName )
- printf( "not be found. If you have:\n" )
- printf( "omoved/copied the library to a new name.\n" )
- printf( "oedited this file and made a typographical error.\n" )
- printf( "ocopied this file from another library.\n" )
- printf( "you must edit the libInit.il file and correct the\n" )
- printf( "library name.\n" )
- )
- ;;
- ;; Set the Spectre Model Path
- ;;
- if(isContextLoaded("schView") then
- envSetVal("asimenv.startup" "simulator" 'string "spectre")
- libPath = ddGetObjReadPath( libId )
- asiSetEnvOptionVal(asiGetTool('spectre) "modelFiles"
- list(
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3v")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_na")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3vna")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_m")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3m")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bip")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bip3")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio3")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio_dnw")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_res")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_mim")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmos")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmos33")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmim")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfind")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmvar")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfjvar")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_sa")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_rpo")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_hri")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfesd")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bbmvar")
- )
- )
- asiSetEnvOptionVal(asiGetTool('hspiceS) "modelPath" strcat(libPath "/../models/hspice") )
- asiSetEnvOptionVal(asiGetTool('hspiceS) "includeFile" "hspice.mdl")
- if(getd('ADSsim) then
- asiSetEnvOptionVal(asiGetTool('ADSsim) "modelFiles"
- list(
- list(strcat( libPath "/../models/ADS/rf018_inc.net") "")
- list(strcat( libPath "/../models/ADS/ResModel.net") "res_t")
- )
- )
- );end ADS if
- ); if schematic context is loaded
- ;;
- ;; Set the VXL significan Digits
- ;;
- when( getd('aelPushSignifDigits)
- aelPushSignifDigits(6)
- )
- auCdlCDFPinCntrl = 't
- )
这是我在tsmc .18工艺库安装文件夹下搜skill文件的结果,也不知道缺不缺文件,能麻烦帮忙看一下吗?
这是 libInit.il 文件的内容:
- ;;; If you rename the library you will have to change the
- ;;; libName definition in the following let statement.
- let( ( (libName "tsmc18rf") libId libPath file element)
- ;;
- ;; Load PDK Skill Code
- ;;
- libId = ddGetObj( libName )
- if( ddIsId( libId ) then
- libPath = ddGetObjReadPath( libId )
- envSetVal("layoutXL" "setPPConn" 'boolean nil)
- ; envSetVal( "layout" "xSnapSpacing" 'float 0.005 )
- ; envSetVal( "layout" "ySnapSpacing" 'float 0.005 )
- libPath = strcat( libPath "/../skill")
- foreach( file setof(element getDirFiles(libPath) equal(".cbe" index(element ".cbe")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".ile" index(element ".ile")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".cb" index(element ".cb")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- foreach( file setof(element getDirFiles(libPath) equal(".il" index(element ".il")))
- printf( "Initializing %s from libInit.il for library %s...\n" file libName )
- load( strcat( libPath sprintf(nil "/%s" file)))
- )
- else
- printf( "An error occured while initializing the libInit.il file.\n" )
- printf( "The library, %s, specified in this file, could\n" libName )
- printf( "not be found. If you have:\n" )
- printf( " o moved/copied the library to a new name.\n" )
- printf( " o edited this file and made a typographical error.\n" )
- printf( " o copied this file from another library.\n" )
- printf( "you must edit the libInit.il file and correct the\n" )
- printf( "library name.\n" )
- )
- ;;
- ;; Set the Spectre Model Path
- ;;
- if(isContextLoaded("schView") then
- envSetVal("asimenv.startup" "simulator" 'string "spectre")
- libPath = ddGetObjReadPath( libId )
- asiSetEnvOptionVal(asiGetTool('spectre) "modelFiles"
- list(
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3v")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_na")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3vna")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_m")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_3m")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bip")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bip3")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio3")
- list(strcat( libPath "/../models/spectre/rf018.scs") "dio_dnw")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_res")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_mim")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmos")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmos33")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmim")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfind")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfmvar")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfjvar")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_sa")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_rpo")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfres_hri")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_rfesd")
- list(strcat( libPath "/../models/spectre/rf018.scs") "tt_bbmvar"))
- )asiSetEnvOptionVal(asiGetTool('hspiceS) "modelPath" strcat(libPath "/../models/hspice") )
- asiSetEnvOptionVal(asiGetTool('hspiceS) "includeFile" "hspice.mdl")
- if(getd('ADSsim) then
- asiSetEnvOptionVal(asiGetTool('ADSsim) "modelFiles"
- list(
- list(strcat( libPath "/../models/ADS/rf018_inc.net") "")
- list(strcat( libPath "/../models/ADS/ResModel.net") "res_t")
- )
- )
- );end ADS if
- ); if schematic context is loaded
- ;;
- ;; Set the VXL significan Digits
- ;;
- when( getd('aelPushSignifDigits)
- aelPushSignifDigits(6)
- )auCdlCDFPinCntrl = 't)
是其他管子都这样还是就你这个管子这样?你这个管子怎么看着像是个电容?
libPath = strcat( libPath "/../skill")
会不会是你的skill文件夹没有?看目录是与PDK的文件夹相同目录。
试着用总线的形式来表示
所有的MOS管都这样,这个管子是二极管连接的MOS,因为选中了所以看起来有点像电容
我以前碰到过改w无效的问题,不过不是.18工艺
问题出在我同时include了两个pdk,我把另一个pdk注释掉就ok了
不太清楚你是不是同样的问题
多谢帮忙,我现在弄好了,原来是我没有把TSMC.18库的models和skill文件夹放到自己的工作库里,把着两个文件夹放进去就好了
多谢帮忙,我现在弄好了,原来是我没有把TSMC.18库的models和skill文件夹放到自己的工作库里,放着两个文件夹放进去就好了
多谢帮忙,我现在弄好了,原来是我没有把TSMC.18库的models和skill文件夹放到自己的工作库里,放着两个文件夹放进去就好了
不客气,互相学习。
路过 看看看看