반응형

시뮬레이션 11

hspice 명령어 - AC analysis 하는 법과 RC low pass filter

Hspice 에서 AC simulation 을 하는 법에 대해 다뤄보겠습니다.AC simulation 은 회로의 frequency response 를 알 수 있는 상당히 강력한 도구입니다.특히 analog designer 는 잘 활용해야하는 tool 이죠.예제로 RC network 를 사용하여 LPF (Low Pass Filter) 를 만드는 simulation 을 다뤄보죠.  Hspice simulation - AC analysis of RC network위와 같은 resistor 와 cap network 에 대해 보겠습니다.R1과 R2는 모두 1k 옴의 저항이고 0.001uF 의 C1 이 R2 와 병렬로 달려있는 구조입니다.AC response 를 보기 위해 10V dc 전압과 1V 의 ac 전압을 ..

hspice 명령어 - DC analysis 하는 법과 inverter vts

Hspice 로는 transient, ac, dc anlaysis 등을 simulation 할 수 있습니다.기존에 transient simulation 을 하는 법을 간단하게 다뤄보았습니다.Hspice 로 DC analysis 를 하는 법에 대해 다뤄보겠습니다. Hspice simulation - DC analysis of an inverter 가장 간단한 위와 같은 inverter 의 DC anlaysis 를 해봅시다.nmos 인 M1, pmos 인 M2 그리고 input voltage 와 0.75pF 의 load cap 으로 이루어진 회로입니다.위와 같은 회로를 simulation 하기 위한 input sp 는 아래와 같습니다. m1 out in vcc vcc pch l=1u w=20um2 out i..

Hspice manual - Voltage source, Passive element 등

Hspice simulation 은 몇 번 하다보면 금방 익숙해지게 됩니다.하지만 워낙 기능이 많은 tool 이라 새로운 기능을 사용하기 위해서는 manual 을 찾아봐야 합니다.인터넷에 배포되어 있는 Hspice manual 중 하나를 블로그에 올리겠습니다.해당 manual 에는 Input netlist guideline, Passive element 와 Voltage source 등을 어떻게 사용해야하는 지 등이 포함되어 있습니다. 문제가 될 시 삭제하겠으며, 보다 더 정확하고 최신 manual 은 Hspice 홈페이지에 있습니다.

Hspice 에서 transient simulation 하기

Hspice 에서는 여러가지 simulation 을 할 수 있는데 오늘은 그 중 가장 많이 쓰이는 transient simulation 하는 법을 간단하게 다뤄보겠습니다. .tran (time step) (end time) 먼저 간단하게 transient simulation 을 돌리기 위해서는 2가지 변수가 일반적으로 필요합니다. 바로 time step 과 end time 이죠.Time step 은 몇 초를 최소 단위로 볼 것인지를 정하는 것이고End time 은 simulation 이 끝나는 시간을 의미합니다.Hspice transient sim 은 일반적으로 0초부터 시작하는 걸 가정합니다. .tran 100ps 100ns 위와 같이 simulation 을 돌리면 100ps 의 time step 을 ..

vi 명령어) Linux 에서 여러 파일 내 텍스트를 일괄적으로 바꾸는 법

Linux 환경에서 여러 simulation 파일을 만들고 돌리다 보면 여러개의 파일에서 텍스트를 변경해야할 때가 있습니다. 똑같은 인풋 환경과 시뮬레이션 환경에서 특정 회로만 바꾸려고 할 수도 있고, 혹은 여러 개의 시뮬레이션 파일에서 vdd, temperature 등 특정 환경만 바꾸려고 할때죠. 이 때 여러개의 파일을 하나씩 열어서 바꾸다 보면 시간이 많이 소요될 뿐만 아니라, 빼먹게 되는 human error 가 발생할 수도 있죠.   sed -i 's/(바꾸고 싶은 단어)/(바꾸려는 단어)/g' (파일이름) 여러 개의 파일 내에서 텍스트를 바꾸기 위해 사용하는 명령어로는 sed 구문이 있습니다. 바로 위와 같은 구문을 사용하면 되죠. 아래에서 예를 들어보겠습니다. **a.sp.param vdd=..

Hspice simulation : hspice 에서 ideal delay 만드는 방법

오늘은 hspice tool 에서 ideal delay 를 만드는 방법에 대해 알아보겠습니다. Virtuoso 등의 tool 에서는 ideal delay 를 쉽게, 그리고 직관적으로 만들 수 있는 데 반해, hspice 에서는 ideal delay 를 만드는 방법에 대해 쉽게 알 수 없는데요. hspice 에서도 vcvs 를 사용해 간단하게 ideal delay 를 만들 수 있습니다.  먼저 ideal delay 를 만들기 위해 vcvs 에 대해 알아봅시다. VCVS 는 Voltage controlled voltage sourcde 라고 합니다. 위에 보이는 것처럼 특정 voltage input 에 대해 이에 특정 gain 을 곱한 전압을 output 으로 내보내는 것이 일반적으로 vcvs 이죠. vcv..

HSPICE & ADE simulation : 변수 선언 순서

오늘은 변수 선언 순서에 대해 다뤄보겠습니다. 일반적으로 hspice 를 사용할 때 변수를 선언하고 해당 변수에 원하는 값을 배정하는데요. 여러가지 파일을 include 하거나 library 로 사용하는 경우 어느 변수값을 물리는지에 대해 헷갈릴 수 있습니다. 먼저 다른 sp 파일이나 option 파일을 물리는 방식으로는 일반적으로 include 와 lib 방식이 있습니다. Lib 파일에는 보통 여러가지 상황을 가정하고 그 상황에 따른 변수를 설정합니다. 예를 들어 High voltage 와 Low voltage 가 가해지는 상황을 가정하면 아래와 같이 lib 파일을 선언할 수 있습니다. ** LIB name = VDD.lib .LIB HIGH_VDD .param VDD = 2.5 .param VSS =..

HSPICE & ADE simulation : Parameter 설정하는 법, parameter sweep simulation

오늘은 hspice simulation 할 때 시뮬레이션을 더 편하게 돌릴 수 있도록 parameter 를 설정하는 법에 대해 알아보겠습니다. Parameter 는 input vector 에서 특정 변수가 계속해서 반복되거나 자주 바꾸는 경우에 사용하면 상당히 유용합니다. 먼저 예시를 들어보겠습니다. vclk clk 0 pulse (1.1 0 10n 10p 10p 90p 200p) 일반적으로 위와 같이 clock signal 을 정의할 수 있습니다. Logical high 전압이 1.1 V, Logical low 전압이 0 V, 10ns 의 delay 후에 10p 의 rising, falling time 을 가진, 200ps 의 주기를 가진 duty 50 의 clock 신호입니다. 특정 클락 주파수만 설..

vi 명령어 응용 : exe 파일 만들어서 여러 단어 검색해서 지우기

vi 명령어를 사용해서 정말 귀찮은 일도 간단하게 할 수 있습니다. 오늘은 저번에 말씀 드렸던 검색해서 지우는 명령어와 vi 를 응용하는 방법에 대해 알아보도록 하죠. 단어를 찾아 지우기 위한 명령어는 :g/(찾는단어)/d 입니다. 매우 간단한 명령어지만 찾는 단어가 많을 때는 반복을 여러번 해야한다는 단점이 존재합니다. 한 개의 단어만 삭제할 때는 간단하지만 지워야하는 단어가 10개인 경우 10번의 명령어를 입력하는 것보다 vi 명령어를 이용하면 더 간단하게 할 수 있습니다. 예를 들어 보겠습니다. 다음과 같은 test 파일이 있습니다. 여러개의 과일이 무작위로 써져 있죠. 여기서 우리는 바나나를 제외한 과일들을 전부 삭제하고 싶습니다. 그럴땐 그 전에 배웠던 명령어를 사용해서 바꿀 수 있죠. 하지만 ..

SPICE & ADE Simulation : hspice clk 선언하는 법

Hspice simulation 을 돌리려면 input signal 을 짜줘야합니다. 그 중에서도 digital signal input 과 clk 을 선언하는 경우가 많죠. 오늘은 clk signal 을 짜는 기본적인 틀 중 하나를 제시해보려 합니다. 바로 보시죠. .param vh = 1 .param vl = 0 .param td = 10n .param tr = 10p .param tf = 10p .param freq = 1000M .param period = 1/freq .param duty = 0.5 vclk clk 0 pulse vh vl td tr tf 'period*duty-tr/2-tf/2' period 이런식으로 clock signal 을 선언하게 되면 jitter 를 제외한 대부분의 상황..

반응형