Sill Routine to Define MOS Device width

EDA Methodology: SKILL Routine to Define MOS Device Width

[fusion_builder_container hundred_percent=”no” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” overlay_color=”” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” padding_top=”” padding_bottom=”” padding_left=”” padding_right=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” border_position=”all” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” center_content=”no” last=”no” min_height=”” hover_type=”none” link=””][fusion_text]

eda_image_1It is not very often that an organization is willing to give something away for free, but that is what Glew Engineering is doing right now.

Below is a sample written in SKILL language of a CDF callback procedure for generation of the width of a MOS device.  Glew Engineering Consulting’s experts in EDA methodology can assist with your CAD EDA systems: Cadence(TM), Synopsys(TM), Mentor Graphics (TM) and more.

The SKILL procedure for use in EDA CAD for semiconductor engineering of integrated circuits (IC) and ASICS is fully functional and yours to try out. This is just a small sample of the many ways in which we can help with your EDA needs for semiconductor IC design.  Contact Glew Engineering to discuss your CAD EDA, or any engineering work your business requires.

 

procedure( Glew_MOS_Wtotal_Nf()

prog(()

NewTempWidth = cdfgData->w->value;

NewWidth = substring( NewTempWidth 1 strlen(NewTempWidth)-1 )

NewWidthUnit = substring( NewTempWidth strlen(NewTempWidth) )

if( NewWidthUnit == “n” then

ThisNewWidth = atof(NewWidth)*10**-9

)

if( NewWidthUnit == “u” then

ThisNewWidth = atof(NewWidth)*10**-6

)

if( NewWidthUnit == “m” then

ThisNewWidth = atof(NewWidth)*10**-3

)

ThisTotalNewWidth = ThisNewWidth * atof(cdfgData->Nf->value);

sprintf( NewTotWidth “%.1f%s” atof(NewWidth)*atof(cdfgData->Nf->value) NewWidthUnit);

if( 200u <= ThisTotalNewWidth then

printf(“Width is out of range “)

sprintf(WidthWarning,”Width of %s is too high Must be Between 0.3u and 200u “,NewTotWidth);

Glew_WarningBox(“Width Is Out of Range”,WidthWarning);

return(nil);

)

if( ThisTotalNewWidth <= 300n then

printf(“Width is out of range “)

sprintf(WidthWarning,”Width of %s is too low Must be Between 0.3u and 200u “,NewTotWidth);

Glew_WarningBox(“Width Is Out of Range”,WidthWarning);

return(nil);

)

cdfgData->Wtotal->value = NewTotWidth;

AD_Value = ThisTotalNewWidth*0.75u;

PD_Value = ThisTotalNewWidth*1.8u;

sprintf( NewAdValue,”%.3e”,AD_Value);

sprintf( NewPdValue,”%.3e”,PD_Value);

cdfgData->ad->value = NewAdValue;

cdfgData->as->value = NewAdValue;

cdfgData->pd->value = NewPdValue;

cdfgData->ps->value = NewPdValue;

))

procedure( Glew_InfoBox(MyBanner,MyText)

hiDisplayAppDBox(

?name gensym( ‘trWarningDialogBox )

?dboxBanner MyBanner

?dboxText MyText

?dialogType hicInformationDialog

?dialogStyle ‘modeless

?buttonLayout ‘Close

))

 

Copyright 2011 Glew Engineering Consulting.

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top