create_content

This commit is contained in:
PhillipRambo 2025-02-24 16:17:25 +01:00
parent 2a8f2e5f92
commit 13e47c2ca3
57 changed files with 63336 additions and 2280 deletions

1
.gitignore vendored
View File

@ -6,4 +6,5 @@
*.osdi
*.dat.ngspice
*.dat
*.txt

View File

@ -1,6 +1,6 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=56,-140,1688,742,0.920792,0,0>
<View=140,-20,1555,720,1.0973,0,0>
<Grid=10,10,0>
<DataSet=bias_1_fingers_for_course.dat>
<DataDisplay=bias_1_fingers_for_course.sch>
@ -22,7 +22,7 @@
<Diagrams>
<Rect 250 546 629 496 3 #c0c0c0 1 00 1 0 2e+10 2e+11 1 -0.0737539 0.2 1.44716 1 -1 0.2 1 315 0 225 1 0 0 "" "" "">
<"ngspice/bias_1_fingers:ac.k" #0000ff 0 3 0 0 0>
<Mkr 5e+10 529 -424 3 0 0>
<Mkr 5e+10 559 -434 3 0 0>
</Rect>
<Smith 959 569 549 549 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/bias_1_fingers:ac.v(s_1_1)" #0000ff 0 3 0 0 0>
@ -30,8 +30,7 @@
<"ngspice/bias_1_fingers:ac.v(s_2_2)" #ff0000 0 3 0 0 0>
<Mkr 5e+10 69 -335 3 0 0>
</Smith>
<Tab 250 679 652 66 3 #c0c0c0 1 00 1 0 1 1 1 0 1 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/bias_1_fingers:v(vb)" #0000ff 0 3 0 0 0>
<Tab 250 679 388 66 3 #c0c0c0 1 00 1 0 1 1 1 0 1 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/bias_1_fingers:v(vcc)" #0000ff 0 3 0 0 0>
<"ngspice/bias_1_fingers:i(pr1)" #0000ff 0 3 1 0 0>
</Tab>

View File

@ -1,6 +1,6 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-250,-285,3620,885,1.0946,1676,247>
<View=1215,-130,2618,628,1.07124,0,0>
<Grid=10,10,1>
<DataSet=bias_1_fingers.dat>
<DataDisplay=bias_1_fingers.dpl>
@ -16,77 +16,48 @@
<Symbol>
</Symbol>
<Components>
<GND * 1 1910 430 0 0 0 0>
<.SP SP1 1 1410 -60 0 61 0 0 "lin" 1 "1 GHz" 1 "200 GHz" 1 "200" 1 "no" 0 "1" 0 "2" 0 "no" 0 "no" 0>
<INCLSCR INCLSCR2 1 1470 130 -60 16 0 0 ".LIB cornerHBT.lib hbt_typ\n" 1 "" 0 "" 0>
<GND * 1 2240 420 0 0 0 0>
<Vdc V2 1 2240 370 18 -26 0 1 "1 V" 1>
<Pac P3 1 1360 370 18 -26 0 1 "1" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<.DC DC1 1 1570 -60 0 36 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<Pac P4 1 2390 140 18 -26 0 1 "2" 1 "100 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<DCBlock C10 1 1520 480 -26 21 0 0 "1 uF" 0>
<DCBlock C11 1 1520 270 -26 21 0 0 "1 uF" 0>
<DCBlock C12 1 2240 100 -26 21 0 0 "1 uF" 0>
<DCBlock C13 1 2240 180 -26 21 0 0 "1 uF" 0>
<DCFeed L5 1 1600 320 20 -26 0 1 "1 uH" 0>
<DCFeed L6 1 1600 410 20 -26 0 1 "1 uH" 0>
<DCFeed L7 1 2030 50 20 -26 0 1 "1 uH" 0>
<DCFeed L8 1 1780 50 20 -26 0 1 "1 uH" 0>
<Lib npn13G4 1 2030 270 30 64 1 2 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<GND * 1 2340 420 0 0 0 0>
<Vdc V1 1 2340 370 18 -26 0 1 "1.65V" 1>
<GND * 1 1360 400 0 0 0 0>
<GND * 1 1360 480 0 0 0 0>
<NutmegEq NutmegEq1 1 1390 550 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<R R1 1 1390 480 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 2370 180 0 0 0 0>
<GND * 1 2390 170 0 0 0 0>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<R R2 1 2340 180 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<NutmegEq NutmegEq1 1 1390 520 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<Vdc V3 1 1600 410 18 -26 0 1 "0.98" 1>
<GND * 1 1360 450 0 0 0 0>
<GND * 1 1600 440 0 0 0 0>
<GND * 1 1780 400 0 0 0 0>
<GND * 1 1820 270 0 0 0 0>
<DCBlock C12 1 1990 100 -26 21 0 0 "1 uF" 0>
<Pac P4 1 2120 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<GND * 1 2120 170 0 0 0 0>
<GND * 1 2120 440 0 0 0 0>
<Vdc V1 1 2120 390 18 -26 0 1 "1.65V" 1>
</Components>
<Wires>
<1780 320 1780 400 "" 0 0 0 "">
<1910 -60 1910 -40 "" 0 0 0 "">
<2030 320 2030 400 "" 0 0 0 "">
<2240 400 2240 420 "" 0 0 0 "">
<2240 310 2240 340 "" 0 0 0 "">
<2060 270 2060 480 "" 0 0 0 "">
<1360 270 1490 270 "" 0 0 0 "">
<1360 270 1360 340 "" 0 0 0 "">
<1550 480 1600 480 "" 0 0 0 "">
<1600 480 2060 480 "" 0 0 0 "">
<1600 440 1600 480 "" 0 0 0 "">
<1790 270 1910 270 "" 0 0 0 "">
<1910 270 2020 270 "" 0 0 0 "">
<1910 270 1910 400 "" 0 0 0 "">
<1910 400 1910 430 "" 0 0 0 "">
<1780 400 1910 400 "" 0 0 0 "">
<1910 400 2030 400 "" 0 0 0 "">
<1550 270 1600 270 "" 0 0 0 "">
<1600 270 1750 270 "" 0 0 0 "">
<1600 270 1600 290 "" 0 0 0 "">
<1600 350 1600 380 "Vb" 1550 340 14 "">
<1910 -40 2030 -40 "" 0 0 0 "">
<2030 -40 2030 20 "" 0 0 0 "">
<1780 -40 1910 -40 "" 0 0 0 "">
<1780 -40 1780 20 "" 0 0 0 "">
<2030 80 2030 180 "" 0 0 0 "">
<2030 180 2030 220 "" 0 0 0 "">
<2030 180 2210 180 "" 0 0 0 "">
<2390 100 2390 110 "" 0 0 0 "">
<2270 100 2390 100 "" 0 0 0 "">
<1600 350 1600 380 "" 0 0 0 "">
<1780 80 1780 100 "" 0 0 0 "">
<1780 100 2210 100 "" 0 0 0 "">
<2340 400 2340 420 "" 0 0 0 "">
<2340 310 2340 340 "" 0 0 0 "">
<1420 480 1490 480 "" 0 0 0 "">
<2270 180 2310 180 "" 0 0 0 "">
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1910 -60 1910 -60 "Vcc" 1940 -90 0 "">
<2240 310 2240 310 "Vb" 2270 280 0 "">
<2340 310 2340 310 "Vcc" 2370 280 0 "">
<1360 400 1360 450 "" 0 0 0 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2120 100 "" 0 0 0 "">
<2120 100 2120 110 "" 0 0 0 "">
<2120 420 2120 440 "" 0 0 0 "">
<2120 330 2120 360 "" 0 0 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
<2120 330 2120 330 "Vcc" 2150 300 0 "">
</Wires>
<Diagrams>
</Diagrams>

View File

@ -1,6 +1,6 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-85,20,1543,969,1,125,0>
<View=43,110,1118,655,1.48959,98,0>
<Grid=10,10,0>
<DataSet=bias_2_stability.dat>
<DataDisplay=bias_2_stability.sch>
@ -20,23 +20,13 @@
<Wires>
</Wires>
<Diagrams>
<Rect 194 504 476 414 3 #c0c0c0 1 00 1 0 0.2 1 1 -0.1 0.5 1.1 1 -0.1 0.5 1.1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.k" #0000ff 0 3 0 0 0>
<Mkr 1e+09 205 -424 3 0 0>
</Rect>
<Smith 790 525 445 445 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<Smith 738 522 332 332 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.v(s_1_1)" #0000ff 0 3 0 0 0>
<Mkr 5e+10 380 -342 3 0 0>
<"ngspice/ac.v(s_2_2)" #ff0000 0 3 0 0 0>
<Mkr 5e+10 341 -116 3 0 0>
</Smith>
<Tab 200 823 459 83 3 #c0c0c0 1 00 1 0 1 1 1 0 1 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/v(vcc)" #0000ff 0 3 1 0 0>
<"ngspice/v(vbase)" #0000ff 0 3 1 0 0>
<"ngspice/v(vb)" #0000ff 0 3 1 0 0>
<"ngspice/v(collector_voltage)" #0000ff 0 3 1 0 0>
<"ngspice/i(pr1)" #0000ff 0 3 1 0 0>
</Tab>
<Rect 150 530 511 334 3 #c0c0c0 1 00 1 0 0.2 1 1 -0.1 0.5 1.1 1 -0.1 0.5 1.1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.k" #0000ff 0 3 0 0 0>
</Rect>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -1,11 +1,11 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-7641,-4687,5537,2534,0.910588,6442,4187>
<View=1096,-108,2458,628,1.10326,0,0>
<Grid=10,10,1>
<DataSet=bias_2_stability.dat>
<DataDisplay=bias_2_stability.dpl>
<OpenDisplay=0>
<Script=bias_cir_ideal_step2_stability.m>
<Script=bias_2_stability.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
@ -16,83 +16,57 @@
<Symbol>
</Symbol>
<Components>
<.SP SP1 1 -260 -60 0 61 0 0 "lin" 1 "1 GHz" 1 "200 GHz" 1 "200" 1 "no" 0 "1" 0 "2" 0 "no" 0 "no" 0>
<GND * 1 570 420 0 0 0 0>
<Vdc V2 1 570 370 18 -26 0 1 "0.97V" 1>
<Pac P1 1 -310 370 18 -26 0 1 "1" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<.DC DC1 1 -100 -60 0 36 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<Lib npn13G1 1 110 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<Lib npn13G2 1 360 270 30 64 1 2 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<Pac P2 1 720 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<DCBlock C6 1 -150 480 -26 21 0 0 "1 uF" 0>
<DCBlock C7 1 -150 270 -26 21 0 0 "1 uF" 0>
<DCBlock C8 1 570 100 -26 21 0 0 "1 uF" 0>
<DCBlock C9 1 570 180 -26 21 0 0 "1 uF" 0>
<GND * 1 240 430 0 0 0 0>
<INDQ LQ1 1 170 400 -26 17 0 0 "Lstab" 1 "13" 1 "100 MHz" 0 "Linear" 0 "26.85" 0>
<INDQ LQ2 1 300 400 -26 17 0 0 "Lstab" 1 "13" 1 "100 MHz" 0 "Linear" 0 "26.85" 0>
<GND * 1 670 420 0 0 0 0>
<Vdc V1 1 670 370 18 -26 0 1 "1.65V" 1>
<DCFeed L3 1 110 50 20 -26 0 1 "1 uH" 0>
<DCFeed L4 1 360 50 20 -26 0 1 "1 uH" 0>
<INCLSCR INCLSCR1 1 -200 110 -60 16 0 0 ".LIB cornerHBT.lib hbt_typ\n" 1 "" 0 "" 0>
<SpicePar SpicePar1 1 -230 190 -28 16 0 0 "Lstab=300pH" 1>
<DCFeed L1 1 -70 320 20 -26 0 1 "1 uH" 0>
<DCFeed L2 1 -70 410 20 -26 0 1 "1 uH" 0>
<GND * 1 -310 480 0 0 0 0>
<GND * 1 -310 400 0 0 0 0>
<GND * 1 680 180 0 0 0 0>
<GND * 1 720 170 0 0 0 0>
<R R2 1 650 180 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R1 1 -250 480 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<NutmegEq NutmegEq1 1 -200 600 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<IProbe Pr1 1 110 150 -38 -26 0 3>
<.SP SP1 1 1410 -60 0 61 0 0 "lin" 1 "1 GHz" 1 "200 GHz" 1 "200" 1 "no" 0 "1" 0 "2" 0 "no" 0 "no" 0>
<INCLSCR INCLSCR2 1 1470 130 -60 16 0 0 ".LIB cornerHBT.lib hbt_typ\n" 1 "" 0 "" 0>
<Pac P3 1 1360 370 18 -26 0 1 "1" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<.DC DC1 1 1570 -60 0 36 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<DCFeed L8 1 1780 50 20 -26 0 1 "1 uH" 0>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<NutmegEq NutmegEq1 1 1390 520 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<GND * 1 1360 450 0 0 0 0>
<GND * 1 1780 400 0 0 0 0>
<GND * 1 1820 270 0 0 0 0>
<DCBlock C12 1 1990 100 -26 21 0 0 "1 uF" 0>
<Pac P4 1 2120 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<GND * 1 2120 170 0 0 0 0>
<GND * 1 2120 440 0 0 0 0>
<Vdc V1 1 2120 390 18 -26 0 1 "1.65V" 1>
<DCBlock C11 1 1430 270 -26 21 0 0 "1 uF" 0>
<DCFeed L5 1 1510 320 20 -26 0 1 "1 uH" 0>
<Vdc V3 1 1510 410 18 -26 0 1 "0.98" 1>
<GND * 1 1510 440 0 0 0 0>
<R R1 1 1680 210 -26 15 0 0 "5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C13 1 1680 270 -26 17 0 0 "100 fF" 1 "" 0 "neutral" 0>
</Components>
<Wires>
<110 320 110 400 "" 0 0 0 "">
<240 -60 240 -40 "" 0 0 0 "">
<570 400 570 420 "" 0 0 0 "">
<570 310 570 340 "" 0 0 0 "">
<390 270 390 480 "" 0 0 0 "">
<-120 270 -70 270 "" 0 0 0 "">
<-310 270 -180 270 "" 0 0 0 "">
<-310 270 -310 340 "" 0 0 0 "">
<-120 480 -70 480 "" 0 0 0 "">
<-70 270 80 270 "Vbase" 30 220 111 "">
<-70 480 390 480 "" 0 0 0 "">
<-70 440 -70 480 "" 0 0 0 "">
<110 400 140 400 "" 0 0 0 "">
<-70 270 -70 290 "" 0 0 0 "">
<-70 350 -70 380 "Vb" -120 340 14 "">
<240 -40 360 -40 "" 0 0 0 "">
<360 -40 360 20 "" 0 0 0 "">
<360 80 360 180 "" 0 0 0 "">
<110 -40 240 -40 "" 0 0 0 "">
<110 -40 110 20 "" 0 0 0 "">
<110 80 110 100 "" 0 0 0 "">
<360 180 360 220 "" 0 0 0 "">
<360 180 540 180 "" 0 0 0 "">
<720 100 720 110 "" 0 0 0 "">
<600 100 720 100 "" 0 0 0 "">
<110 100 540 100 "" 0 0 0 "">
<110 100 110 120 "" 0 0 0 "">
<110 180 110 220 "Collector_voltage" 140 170 21 "">
<240 400 240 430 "" 0 0 0 "">
<200 400 240 400 "" 0 0 0 "">
<360 320 360 400 "" 0 0 0 "">
<330 400 360 400 "" 0 0 0 "">
<240 400 270 400 "" 0 0 0 "">
<670 400 670 420 "" 0 0 0 "">
<670 310 670 340 "" 0 0 0 "">
<120 270 240 270 "" 0 0 0 "">
<240 270 350 270 "" 0 0 0 "">
<240 270 240 400 "" 0 0 0 "">
<-220 480 -180 480 "" 0 0 0 "">
<-310 480 -280 480 "" 0 0 0 "">
<600 180 620 180 "" 0 0 0 "">
<240 -60 240 -60 "Vcc" 270 -90 0 "">
<570 310 570 310 "Vb" 600 280 0 "">
<670 310 670 310 "Vcc" 700 280 0 "">
<1780 320 1780 400 "" 0 0 0 "">
<1780 80 1780 100 "" 0 0 0 "">
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1360 400 1360 450 "" 0 0 0 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2120 100 "" 0 0 0 "">
<2120 100 2120 110 "" 0 0 0 "">
<2120 420 2120 440 "" 0 0 0 "">
<2120 330 2120 360 "" 0 0 0 "">
<1710 270 1730 270 "" 0 0 0 "">
<1360 270 1360 340 "" 0 0 0 "">
<1360 270 1400 270 "" 0 0 0 "">
<1460 270 1510 270 "" 0 0 0 "">
<1510 270 1620 270 "" 0 0 0 "">
<1510 270 1510 290 "" 0 0 0 "">
<1510 350 1510 380 "" 0 0 0 "">
<1710 210 1730 210 "" 0 0 0 "">
<1730 270 1750 270 "" 0 0 0 "">
<1730 210 1730 270 "" 0 0 0 "">
<1620 210 1650 210 "" 0 0 0 "">
<1620 270 1650 270 "" 0 0 0 "">
<1620 210 1620 270 "" 0 0 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
<2120 330 2120 330 "Vcc" 2150 300 0 "">
</Wires>
<Diagrams>
</Diagrams>

View File

@ -0,0 +1,79 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=1276,-127,2709,647,1.04885,0,0>
<Grid=10,10,1>
<DataSet=input_matching.dat>
<DataDisplay=input_matching.dpl>
<OpenDisplay=0>
<Script=input_matching.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<.SP SP1 1 1410 -60 0 61 0 0 "lin" 1 "1 GHz" 1 "200 GHz" 1 "200" 1 "no" 0 "1" 0 "2" 0 "no" 0 "no" 0>
<INCLSCR INCLSCR2 1 1470 130 -60 16 0 0 ".LIB cornerHBT.lib hbt_typ\n" 1 "" 0 "" 0>
<.DC DC1 1 1570 -60 0 36 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<DCFeed L8 1 1780 50 20 -26 0 1 "1 uH" 0>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<NutmegEq NutmegEq1 1 1390 520 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<GND * 1 1780 400 0 0 0 0>
<GND * 1 1820 270 0 0 0 0>
<DCBlock C12 1 1990 100 -26 21 0 0 "1 uF" 0>
<Pac P4 1 2120 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<GND * 1 2120 170 0 0 0 0>
<GND * 1 2120 440 0 0 0 0>
<Vdc V1 1 2120 390 18 -26 0 1 "1.65V" 1>
<C C13 1 1680 270 -26 17 0 0 "100 fF" 1 "" 0 "neutral" 0>
<Pac P3 1 1330 370 18 -26 0 1 "1" 1 "50 Ohm" 1 "0 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<GND * 1 1330 450 0 0 0 0>
<R R1 1 1680 200 -26 15 0 0 "5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C14 1 1390 270 -26 17 0 0 "42.975fF" 1 "" 0 "neutral" 0>
<Vdc V3 1 1520 410 18 -26 0 1 "0.98" 1>
<GND * 1 1520 440 0 0 0 0>
<INDQ LQ1 1 1520 310 -62 -26 0 3 "103.425pH" 1 "13" 1 "50e9" 0 "Linear" 0 "26.85" 0>
</Components>
<Wires>
<1780 320 1780 400 "" 0 0 0 "">
<1780 80 1780 100 "" 0 0 0 "">
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2120 100 "" 0 0 0 "">
<2120 100 2120 110 "" 0 0 0 "">
<2120 420 2120 440 "" 0 0 0 "">
<2120 330 2120 360 "" 0 0 0 "">
<1710 270 1730 270 "" 0 0 0 "">
<1730 270 1750 270 "" 0 0 0 "">
<1620 270 1650 270 "" 0 0 0 "">
<1330 400 1330 450 "" 0 0 0 "">
<1730 200 1730 270 "" 0 0 0 "">
<1710 200 1730 200 "" 0 0 0 "">
<1620 200 1620 270 "" 0 0 0 "">
<1620 200 1650 200 "" 0 0 0 "">
<1420 270 1520 270 "" 0 0 0 "">
<1330 270 1330 340 "" 0 0 0 "">
<1330 270 1360 270 "" 0 0 0 "">
<1520 270 1620 270 "" 0 0 0 "">
<1520 340 1520 380 "" 0 0 0 "">
<1520 270 1520 280 "" 0 0 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
<2120 330 2120 330 "Vcc" 2150 300 0 "">
</Wires>
<Diagrams>
<Smith 2230 395 335 335 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.v(s_1_1)" #0000ff 0 3 0 0 0>
<Mkr 5e+10 201 -334 3 0 0>
<"ngspice/ac.v(s_2_2)" #ff0000 0 3 0 0 0>
</Smith>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -1,38 +0,0 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-1507,-616,984,730,0.883463,587,251>
<Grid=10,10,0>
<DataSet=input_matching.dat>
<DataDisplay=input_matching.sch>
<OpenDisplay=0>
<Script=input_matching.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
</Components>
<Wires>
</Wires>
<Diagrams>
<Smith 174 343 363 363 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.v(s_1_1)" #0000ff 0 3 0 0 0>
<Mkr 5e+10 318 -361 3 0 0>
<"ngspice/ac.v(s_2_2)" #ff0000 0 3 0 0 0>
<Mkr 5e+10 351 -151 3 0 0>
<"ngspice/ac.v(s_2_2)" #ff00ff 0 3 0 0 0>
</Smith>
<Rect -750 445 835 565 3 #c0c0c0 1 01 0 4.2e+10 1e+09 6.2e+10 1 0.01 1 1 1 -1 0.2 1 315 0 225 1 1 0 "" "" "">
<"ngspice/ac.v(s_1_1)" #0000ff 0 3 0 0 0>
<Mkr 5e+10 498 -163 3 0 0>
<Mkr 4.375e+10 123 -430 3 0 0>
<Mkr 6.2e+10 863 -393 3 0 0>
</Rect>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -1,106 +0,0 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-2272,-807,4808,1836,0.800478,1368,537>
<Grid=10,10,1>
<DataSet=input_matching.dat>
<DataDisplay=input_matching.dpl>
<OpenDisplay=0>
<Script=input_matching.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<GND * 1 570 420 0 0 0 0>
<Vdc V2 1 570 370 18 -26 0 1 "0.97V" 1>
<Lib npn13G1 1 110 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<GND * 1 240 430 0 0 0 0>
<GND * 1 670 420 0 0 0 0>
<Vdc V1 1 670 370 18 -26 0 1 "1.65V" 1>
<Lib npn13G2 1 360 270 30 64 1 2 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<GND * 1 -310 400 0 0 0 0>
<GND * 1 720 170 0 0 0 0>
<R R2 1 630 180 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 660 180 0 0 0 0>
<R R1 1 -290 480 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 -320 480 0 0 0 0>
<IProbe Pr1 1 110 150 16 -26 0 1>
<Pac P1 1 -310 370 18 -26 0 1 "1" 1 "50 Ohm" 1 "-50 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<Pac P2 1 720 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "-50 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<L L21 1 170 400 -26 10 0 0 "Lstab" 1 "" 0>
<L L22 1 300 400 -26 10 0 0 "Lstab" 1 "" 0>
<L L24 1 -70 410 -96 -26 0 3 "Lin" 1 "" 0>
<L L25 1 -70 320 -96 -26 0 3 "Lin" 1 "" 0>
<.SP SP1 1 -260 -80 0 61 0 0 "lin" 1 "1 GHz" 1 "300 GHz" 1 "1197" 1 "no" 0 "1" 0 "2" 0 "no" 0 "no" 0>
<.DC DC1 1 -100 -80 0 36 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<INCLSCR INCLSCR1 1 -200 90 -60 16 0 0 ".LIB cornerHBT.lib hbt_typ\n" 1 "" 0 "" 0>
<NutmegEq NutmegEq1 1 -290 570 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<C C25 1 -150 270 -20 -49 0 2 "Cin" 1 "" 0 "neutral" 0>
<C C26 1 -150 480 -20 -49 0 2 "Cin" 1 "" 0 "neutral" 0>
<SpicePar SpicePar1 1 -370 10 -28 16 0 0 "Lstab=300pH" 1>
<SpicePar SpicePar3 1 -370 90 -28 16 0 0 "Lin=254.5pH" 1>
<SpicePar SpicePar2 1 -480 90 -28 16 0 0 "Cin=36.974fF" 1>
<L L26 1 360 50 -96 -26 0 3 "Lout" 1 "" 0>
<L L27 1 110 50 -96 -26 0 3 "Lout" 1 "" 0>
<C C27 1 570 100 -20 -49 0 2 "Cout" 1 "" 0 "neutral" 0>
<C C28 1 570 180 -20 -49 0 2 "Cout" 1 "" 0 "neutral" 0>
</Components>
<Wires>
<110 320 110 400 "VE" 50 300 27 "">
<240 -60 240 -40 "" 0 0 0 "">
<570 400 570 420 "" 0 0 0 "">
<570 310 570 340 "" 0 0 0 "">
<-120 270 -70 270 "" 0 0 0 "">
<-310 270 -180 270 "" 0 0 0 "">
<-310 270 -310 340 "" 0 0 0 "">
<-120 480 -70 480 "" 0 0 0 "">
<-70 270 80 270 "Vbase" 30 220 111 "">
<110 400 140 400 "" 0 0 0 "">
<110 -40 240 -40 "" 0 0 0 "">
<110 -40 110 20 "" 0 0 0 "">
<110 80 110 100 "" 0 0 0 "">
<360 180 540 180 "" 0 0 0 "">
<720 100 720 110 "" 0 0 0 "">
<600 100 720 100 "" 0 0 0 "">
<110 100 540 100 "" 0 0 0 "">
<240 400 240 430 "" 0 0 0 "">
<200 400 240 400 "" 0 0 0 "">
<240 400 270 400 "" 0 0 0 "">
<670 400 670 420 "" 0 0 0 "">
<670 310 670 340 "" 0 0 0 "">
<120 270 240 270 "" 0 0 0 "">
<240 270 240 400 "" 0 0 0 "">
<-70 440 -70 480 "" 0 0 0 "">
<240 270 350 270 "" 0 0 0 "">
<330 400 360 400 "" 0 0 0 "">
<360 320 360 400 "" 0 0 0 "">
<-70 480 390 480 "" 0 0 0 "">
<390 270 390 480 "" 0 0 0 "">
<360 180 360 220 "" 0 0 0 "">
<240 -40 360 -40 "" 0 0 0 "">
<360 -40 360 20 "" 0 0 0 "">
<360 80 360 180 "" 0 0 0 "">
<-70 350 -70 380 "Vb" -120 340 14 "">
<-70 270 -70 290 "" 0 0 0 "">
<110 100 110 120 "" 0 0 0 "">
<-260 480 -180 480 "" 0 0 0 "">
<110 180 110 220 "Collector_voltage" 140 170 21 "">
<240 -60 240 -60 "Vcc" 270 -90 0 "">
<570 310 570 310 "Vb" 600 280 0 "">
<670 310 670 310 "Vcc" 700 280 0 "">
</Wires>
<Diagrams>
<Smith 730 770 338 338 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.v(s_2_2)" #0000ff 0 3 0 0 0>
<Mkr 5e+10 237 -438 3 0 0>
<"ngspice/ac.v(s_1_1)" #ff0000 0 3 0 0 0>
<Mkr 5e+10 -212 -91 3 0 0>
</Smith>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -1,41 +0,0 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-351,1,1571,1130,0.782108,0,0>
<Grid=10,10,0>
<DataSet=output_matching.dat>
<DataDisplay=output_matching.sch>
<OpenDisplay=0>
<Script=output_matching.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
</Components>
<Wires>
</Wires>
<Diagrams>
<Smith 1 623 582 582 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.v(s_1_1)" #0000ff 0 3 0 0 0>
<Mkr 4.5e+10 401 -309 3 0 0>
</Smith>
<Smith 661 623 582 582 3 #c0c0c0 1 00 1 0 1 1 1 0 4 1 1 0 1 1 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.v(s_2_2)" #e01b24 0 3 0 0 0>
<Mkr 4.55e+10 350 -357 3 0 0>
</Smith>
<Rect 40 1038 527 317 3 #c0c0c0 1 01 0 4.5e+10 1e+09 5.5e+10 1 0.01 1 1 1 -1 0.5 1 315 0 225 1 1 0 "" "" "">
<"ngspice/ac.v(s_1_1)" #0000ff 0 3 0 0 0>
<Mkr 4.5e+10 385 -103 3 0 0>
</Rect>
<Rect 700 1038 527 317 3 #c0c0c0 1 01 0 4.5e+10 1e+09 5.5e+10 1 0.001 1 1 1 -1 0.5 1 315 0 225 1 1 0 "" "" "">
<"ngspice/ac.v(s_2_2)" #ff0000 0 3 0 0 0>
<Mkr 5.5e+10 374 -83 3 0 0>
</Rect>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -1,103 +0,0 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-717,-198,985,870,0.883,0,0>
<Grid=10,10,1>
<DataSet=output_matching.dat>
<DataDisplay=output_matching.dpl>
<OpenDisplay=0>
<Script=output_matching.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<GND * 1 570 420 0 0 0 0>
<Vdc V2 1 570 370 18 -26 0 1 "0.97V" 1>
<Lib npn13G1 1 110 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<GND * 1 240 430 0 0 0 0>
<GND * 1 670 420 0 0 0 0>
<Vdc V1 1 670 370 18 -26 0 1 "1.65V" 1>
<Lib npn13G2 1 360 270 30 64 1 2 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<GND * 1 -310 400 0 0 0 0>
<GND * 1 720 170 0 0 0 0>
<R R2 1 630 180 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R1 1 -290 480 -26 15 0 0 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 -320 480 0 0 0 0>
<IProbe Pr1 1 110 150 16 -26 0 1>
<Pac P1 1 -310 370 18 -26 0 1 "1" 1 "50 Ohm" 1 "-50 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<Pac P2 1 720 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "-50 dBm" 0 "1 MHz" 0 "26.85" 0 "true" 0>
<L L22 1 300 400 -26 10 0 0 "Lstab" 1 "" 0>
<L L24 1 -70 410 -96 -26 0 3 "Lin" 1 "" 0>
<L L25 1 -70 320 -96 -26 0 3 "Lin" 1 "" 0>
<.DC DC1 1 -100 -80 0 36 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<INCLSCR INCLSCR1 1 -200 90 -60 16 0 0 ".LIB cornerHBT.lib hbt_typ\n" 1 "" 0 "" 0>
<NutmegEq NutmegEq1 1 -290 570 -28 16 0 0 "SP1" 1 "k=(1 - abs(s_1_1)^2 - abs(s_2_2)^2 + abs(s_1_1 * s_2_2 - s_1_2 * s_2_1)^2) / (2 * abs(s_1_2 * s_2_1))\n" 1>
<C C25 1 -150 270 -20 -49 0 2 "Cin" 1 "" 0 "neutral" 0>
<C C26 1 -150 480 -20 -49 0 2 "Cin" 1 "" 0 "neutral" 0>
<SpicePar SpicePar1 1 -370 10 -28 16 0 0 "Lstab=300pH" 1>
<SpicePar SpicePar3 1 -370 90 -28 16 0 0 "Lin=254.5pH" 1>
<SpicePar SpicePar2 1 -480 90 -28 16 0 0 "Cin=45fF" 1>
<SpicePar SpicePar4 1 -480 10 -28 16 0 0 "Cout=88fF" 1>
<SpicePar SpicePar5 1 -590 10 -28 16 0 0 "Lout=273pH" 1>
<L L28 1 360 50 -96 -26 0 3 "Lout" 1 "" 0>
<L L29 1 110 50 -96 -26 0 3 "Lout" 1 "" 0>
<C C29 1 570 180 -20 -49 0 2 "Cout" 1 "" 0 "neutral" 0>
<C C30 1 570 100 -20 -49 0 2 "Cout" 1 "" 0 "neutral" 0>
<GND * 1 690 180 0 0 0 0>
<L L30 1 170 400 -26 10 0 0 "Lstab" 1 "" 0>
<.SP SP1 1 -260 -80 0 61 0 0 "lin" 1 "45 GHz" 1 "55 GHz" 1 "41" 1 "no" 0 "1" 0 "2" 0 "no" 0 "no" 0>
</Components>
<Wires>
<110 320 110 400 "VE" 50 300 27 "">
<240 -60 240 -40 "" 0 0 0 "">
<570 400 570 420 "" 0 0 0 "">
<570 310 570 340 "" 0 0 0 "">
<-120 270 -70 270 "" 0 0 0 "">
<-310 270 -180 270 "" 0 0 0 "">
<-310 270 -310 340 "" 0 0 0 "">
<-120 480 -70 480 "" 0 0 0 "">
<-70 270 80 270 "Vbase" 30 220 111 "">
<110 400 140 400 "" 0 0 0 "">
<110 -40 240 -40 "" 0 0 0 "">
<110 -40 110 20 "" 0 0 0 "">
<110 80 110 100 "" 0 0 0 "">
<360 180 540 180 "" 0 0 0 "">
<720 100 720 110 "" 0 0 0 "">
<600 100 720 100 "" 0 0 0 "">
<110 100 540 100 "" 0 0 0 "">
<240 400 240 430 "" 0 0 0 "">
<200 400 240 400 "" 0 0 0 "">
<240 400 270 400 "" 0 0 0 "">
<670 400 670 420 "" 0 0 0 "">
<670 310 670 340 "" 0 0 0 "">
<120 270 240 270 "" 0 0 0 "">
<240 270 240 400 "" 0 0 0 "">
<-70 440 -70 480 "" 0 0 0 "">
<240 270 350 270 "" 0 0 0 "">
<330 400 360 400 "" 0 0 0 "">
<360 320 360 400 "" 0 0 0 "">
<-70 480 390 480 "" 0 0 0 "">
<390 270 390 480 "" 0 0 0 "">
<360 180 360 220 "" 0 0 0 "">
<240 -40 360 -40 "" 0 0 0 "">
<360 -40 360 20 "" 0 0 0 "">
<360 80 360 180 "" 0 0 0 "">
<-70 350 -70 380 "Vb" -120 340 14 "">
<-70 270 -70 290 "" 0 0 0 "">
<110 100 110 120 "" 0 0 0 "">
<-260 480 -180 480 "" 0 0 0 "">
<110 180 110 220 "Collector_voltage" 140 170 21 "">
<660 180 690 180 "" 0 0 0 "">
<240 -60 240 -60 "Vcc" 270 -90 0 "">
<570 310 570 310 "Vb" 600 280 0 "">
<670 310 670 310 "Vcc" 700 280 0 "">
</Wires>
<Diagrams>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -0,0 +1,97 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=832,-193,2883,900,1.07297,237,0>
<Grid=10,10,1>
<DataSet=harmonic_balance.dat>
<DataDisplay=harmonic_balance.dpl>
<OpenDisplay=0>
<Script=harmonic_balance.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<DCFeed L8 1 1780 50 20 -26 0 1 "1 uH" 0>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<GND * 1 1780 400 0 0 0 0>
<GND * 1 1820 270 0 0 0 0>
<DCBlock C12 1 1990 100 -26 21 0 0 "1 uF" 0>
<GND * 1 2120 170 0 0 0 0>
<C C13 1 1680 270 -26 17 0 0 "100 fF" 1 "" 0 "neutral" 0>
<R R1 1 1680 200 -26 15 0 0 "5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C14 1 1390 270 -26 17 0 0 "42.975fF" 1 "" 0 "neutral" 0>
<Vdc V3 1 1520 410 18 -26 0 1 "0.98" 1>
<GND * 1 1520 440 0 0 0 0>
<INDQ LQ1 1 1520 310 -62 -26 0 3 "103.425pH" 1 "13" 1 "50e9" 0 "Linear" 0 "26.85" 0>
<SpicePar SpicePar1 1 1580 50 -28 16 0 0 "y=1" 1>
<IProbe Pr2 1 1330 300 16 -26 0 1>
<IProbe Pr3 1 2070 100 -26 16 0 0>
<GND * 1 1920 370 0 0 0 0>
<Vdc V1 1 1920 320 18 -26 0 1 "1.65V" 1>
<SpiceLib SpiceLib1 1 1300 -170 -12 16 0 0 "/home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/xyce/models/cornerHBT.lib" 1 "hbt_typ" 1>
<R R2 1 2120 140 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<.HB HB1 1 1410 -60 0 61 0 0 "50 GHz" 0 "5" 1 "1 pA" 0 "1 uV" 0 "0.001" 0 "150" 0>
<R R3 1 1330 370 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "european" 0>
<GND * 1 1330 500 0 0 0 0>
<Iac I1 1 1330 450 20 -26 0 1 "y" 1 "50e9" 0 "0" 0 "0" 0>
<.SW SW1 1 1280 -60 0 61 0 0 "HB1" 1 "lin" 1 "y" 1 "0.0001" 1 "0.05" 1 "200" 1>
</Components>
<Wires>
<1780 320 1780 400 "" 0 0 0 "">
<1780 80 1780 100 "" 0 0 0 "">
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2040 100 "" 0 0 0 "">
<2120 100 2120 110 "" 0 0 0 "">
<1710 270 1730 270 "" 0 0 0 "">
<1730 270 1750 270 "" 0 0 0 "">
<1620 270 1650 270 "" 0 0 0 "">
<1730 200 1730 270 "" 0 0 0 "">
<1710 200 1730 200 "" 0 0 0 "">
<1620 200 1620 270 "" 0 0 0 "">
<1620 200 1650 200 "" 0 0 0 "">
<1330 270 1360 270 "" 0 0 0 "">
<1520 270 1620 270 "" 0 0 0 "">
<1520 340 1520 380 "" 0 0 0 "">
<1520 270 1520 280 "" 0 0 0 "">
<1420 270 1520 270 "" 0 0 0 "">
<1330 330 1330 340 "" 0 0 0 "">
<2100 100 2120 100 "" 0 0 0 "">
<1920 350 1920 370 "" 0 0 0 "">
<1920 260 1920 290 "" 0 0 0 "">
<1330 400 1330 420 "" 0 0 0 "">
<1330 480 1330 500 "" 0 0 0 "">
<1330 270 1330 270 "Vin" 1360 240 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
<2120 100 2120 100 "Vout" 2150 70 0 "">
<1920 260 1920 260 "Vcc" 1950 230 0 "">
</Wires>
<Diagrams>
<Rect 2060 630 240 160 3 #c0c0c0 1 00 1 -2.5e+11 1e+11 2.5e+11 1 -0.173797 1 2 1 -1 1 1 315 0 225 1 0 0 "" "" "">
<"xyce/V(VIN)" #0000ff 0 3 0 6 0>
</Rect>
<Rect 2060 430 240 160 3 #c0c0c0 1 00 1 -2.5e+11 1e+11 2.5e+11 1 -0.0005 0.002 0.006 1 -1 1 1 315 0 225 1 0 0 "" "" "">
<"xyce/I(PR2)" #0000ff 0 3 0 6 0>
</Rect>
<Rect 2360 430 240 160 3 #c0c0c0 1 00 1 -2.5e+11 1e+11 2.5e+11 1 -0.0005 0.002 0.006 1 -1 1 1 315 0 225 1 0 0 "" "" "">
<"xyce/I(PR3)" #0000ff 0 3 0 6 0>
</Rect>
<Rect 2360 630 240 160 3 #c0c0c0 1 00 1 -2.5e+11 1e+11 2.5e+11 1 -0.502908 0.5 0.502908 1 -1 1 1 315 0 225 1 0 0 "" "" "">
<"xyce/V(VOUT)" #0000ff 0 3 0 6 0>
</Rect>
<Tab 1380 843 623 283 3 #c0c0c0 1 00 1 0 1 1 1 0 1 1 1 0 1 2189 315 0 225 1 0 0 "" "" "">
<"xyce/I(PR2)" #0000ff 0 3 0 0 0>
<"xyce/V(VIN)" #0000ff 0 3 0 0 0>
</Tab>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -0,0 +1,83 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=953,-204,2418,638,1.08267,83,100>
<Grid=10,10,1>
<DataSet=load_pull.dat>
<DataDisplay=load_pull.dpl>
<OpenDisplay=0>
<Script=load_pull.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<DCFeed L8 1 1780 50 20 -26 0 1 "1 uH" 0>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<GND * 1 1820 270 0 0 0 0>
<DCBlock C12 1 1990 100 -26 21 0 0 "1 uF" 0>
<C C14 1 1390 270 -26 17 0 0 "42.975fF" 1 "" 0 "neutral" 0>
<Vdc V3 1 1520 410 18 -26 0 1 "0.98" 1>
<INDQ LQ1 1 1520 310 -62 -26 0 3 "103.425pH" 1 "13" 1 "50e9" 0 "Linear" 0 "26.85" 0>
<IProbe Pr2 1 1330 300 16 -26 0 1>
<IProbe Pr3 1 2070 100 -26 16 0 0>
<GND * 1 1920 370 0 0 0 0>
<Vdc V1 1 1920 320 18 -26 0 1 "1.65V" 1>
<SpiceLib SpiceLib1 1 1160 -150 -12 16 0 0 "/home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/xyce/models/cornerHBT.lib" 1 "hbt_typ" 1>
<GND * 1 1330 480 0 0 0 0>
<GND * 1 1520 480 0 0 0 0>
<GND * 1 1780 480 0 0 0 0>
<.HB HB1 1 1520 -30 0 61 0 0 "50 GHz" 0 "5" 1 "1 pA" 0 "1 uV" 0 "0.001" 0 "150" 0>
<R R2 1 2120 140 15 -26 0 1 "y" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<Pac P1 1 1330 380 18 -26 0 1 "1" 1 "50 Ohm" 1 "-1 dBm" 0 "50e9" 0 "26.85" 0 "true" 0>
<GND * 1 2120 220 0 0 0 0>
<.SW SW2 1 1370 -30 0 61 0 0 "HB1" 1 "lin" 1 "b" 1 "1" 1 "40" 1 "5" 1>
<.SW SW3 1 1220 -30 0 61 0 0 "SW2" 1 "lin" 1 "y" 1 "1" 1 "30" 1 "5" 1>
<SpicePar SpicePar1 1 1550 110 -28 16 0 0 "y=1" 1>
<C C13 1 1670 270 -26 17 0 0 "100 fF" 1 "" 0 "neutral" 0>
<R R1 1 1670 200 -26 15 0 0 "5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<SpicePar SpicePar2 1 1640 110 -28 16 0 0 "b=1" 1>
</Components>
<Wires>
<1780 80 1780 100 "" 0 0 0 "">
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2040 100 "" 0 0 0 "">
<2120 100 2120 110 "" 0 0 0 "">
<1730 270 1750 270 "" 0 0 0 "">
<1330 270 1360 270 "" 0 0 0 "">
<1520 270 1620 270 "" 0 0 0 "">
<1520 340 1520 380 "" 0 0 0 "">
<1520 270 1520 280 "" 0 0 0 "">
<1420 270 1520 270 "" 0 0 0 "">
<2100 100 2120 100 "" 0 0 0 "">
<1920 350 1920 370 "" 0 0 0 "">
<1920 260 1920 290 "" 0 0 0 "">
<1520 440 1520 480 "" 0 0 0 "">
<1780 320 1780 480 "" 0 0 0 "">
<1330 410 1330 480 "" 0 0 0 "">
<1330 330 1330 350 "" 0 0 0 "">
<2120 170 2120 220 "" 0 0 0 "">
<1700 270 1730 270 "" 0 0 0 "">
<1620 270 1640 270 "" 0 0 0 "">
<1730 200 1730 270 "" 0 0 0 "">
<1700 200 1730 200 "" 0 0 0 "">
<1620 200 1620 270 "" 0 0 0 "">
<1620 200 1640 200 "" 0 0 0 "">
<1330 270 1330 270 "Vin" 1360 240 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
<2120 100 2120 100 "Vout" 2140 40 0 "">
<1920 260 1920 260 "Vcc" 1950 230 0 "">
</Wires>
<Diagrams>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -0,0 +1,82 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=1256,-119,2495,550,1.21308,0,0>
<Grid=10,10,1>
<DataSet=load_pull_real_part.dat>
<DataDisplay=load_pull_real_part.dpl>
<OpenDisplay=0>
<Script=load_pull_real_part.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<DCFeed L8 1 1780 50 20 -26 0 1 "1 uH" 0>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<GND * 1 1820 270 0 0 0 0>
<DCBlock C12 1 1990 100 -26 21 0 0 "1 uF" 0>
<C C14 1 1390 270 -26 17 0 0 "42.975fF" 1 "" 0 "neutral" 0>
<Vdc V3 1 1520 410 18 -26 0 1 "1.25" 1>
<INDQ LQ1 1 1520 310 -62 -26 0 3 "103.425pH" 1 "13" 1 "50e9" 0 "Linear" 0 "26.85" 0>
<IProbe Pr2 1 1330 300 16 -26 0 1>
<IProbe Pr3 1 2070 100 -26 16 0 0>
<GND * 1 1920 370 0 0 0 0>
<Vdc V1 1 1920 320 18 -26 0 1 "1.65V" 1>
<GND * 1 1330 480 0 0 0 0>
<GND * 1 1520 480 0 0 0 0>
<GND * 1 1780 480 0 0 0 0>
<C C13 1 1670 270 -26 17 0 0 "100 fF" 1 "" 0 "neutral" 0>
<R R1 1 1670 200 -26 15 0 0 "5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 2120 280 0 0 0 0>
<SpiceLib SpiceLib1 1 1880 -60 -12 16 0 0 "/home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/xyce/models/cornerHBT.lib" 1 "hbt_typ" 1>
<.HB HB1 1 1500 -20 0 61 0 0 "50 GHz" 0 "5" 1 "1 pA" 0 "1 uV" 0 "0.001" 0 "150" 0>
<Iac I1 1 1330 430 20 -26 0 1 "y" 1 "50e9" 0 "0" 0 "0" 0>
<R R3 1 1330 360 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "european" 0>
<R R2 1 2120 190 15 -26 0 1 "40 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<SpicePar SpicePar1 1 1520 110 -28 16 0 0 "y=1" 1>
<.SW SW3 1 1330 -20 0 61 0 0 "HB1" 1 "lin" 1 "y" 1 "0.0001" 1 "0.0045" 1 "50" 1>
</Components>
<Wires>
<1780 80 1780 100 "" 0 0 0 "">
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2040 100 "" 0 0 0 "">
<1730 270 1750 270 "" 0 0 0 "">
<1330 270 1360 270 "" 0 0 0 "">
<1520 270 1620 270 "" 0 0 0 "">
<1520 340 1520 380 "" 0 0 0 "">
<1520 270 1520 280 "" 0 0 0 "">
<1420 270 1520 270 "" 0 0 0 "">
<1920 350 1920 370 "" 0 0 0 "">
<1920 260 1920 290 "" 0 0 0 "">
<1520 440 1520 480 "" 0 0 0 "">
<1780 320 1780 480 "" 0 0 0 "">
<1700 270 1730 270 "" 0 0 0 "">
<1620 270 1640 270 "" 0 0 0 "">
<1730 200 1730 270 "" 0 0 0 "">
<1700 200 1730 200 "" 0 0 0 "">
<1620 200 1620 270 "" 0 0 0 "">
<1620 200 1640 200 "" 0 0 0 "">
<2100 100 2120 100 "" 0 0 0 "">
<2120 100 2120 160 "" 0 0 0 "">
<2120 220 2120 280 "" 0 0 0 "">
<1330 460 1330 480 "" 0 0 0 "">
<1330 390 1330 400 "" 0 0 0 "">
<1330 270 1330 270 "Vin" 1360 240 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
<1920 260 1920 260 "Vcc" 1950 230 0 "">
<2120 100 2120 100 "Vout" 2140 40 0 "">
</Wires>
<Diagrams>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -0,0 +1,82 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=1172,-141,2495,574,1.13605,0,0>
<Grid=10,10,1>
<DataSet=load_pull_real_part_matched.dat>
<DataDisplay=load_pull_real_part_matched.dpl>
<OpenDisplay=0>
<Script=load_pull_real_part_matched.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<Lib npn13G3 1 1780 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<IProbe Pr1 1 1780 160 18 -26 1 3>
<GND * 1 1820 270 0 0 0 0>
<C C14 1 1390 270 -26 17 0 0 "42.975fF" 1 "" 0 "neutral" 0>
<Vdc V3 1 1520 410 18 -26 0 1 "1.25" 1>
<INDQ LQ1 1 1520 310 -62 -26 0 3 "103.425pH" 1 "13" 1 "50e9" 0 "Linear" 0 "26.85" 0>
<IProbe Pr2 1 1330 300 16 -26 0 1>
<IProbe Pr3 1 2070 100 -26 16 0 0>
<GND * 1 1920 370 0 0 0 0>
<Vdc V1 1 1920 320 18 -26 0 1 "1.65V" 1>
<GND * 1 1330 480 0 0 0 0>
<GND * 1 1520 480 0 0 0 0>
<GND * 1 1780 480 0 0 0 0>
<C C13 1 1670 270 -26 17 0 0 "100 fF" 1 "" 0 "neutral" 0>
<R R1 1 1670 200 -26 15 0 0 "5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 2120 280 0 0 0 0>
<SpiceLib SpiceLib1 1 1880 -60 -12 16 0 0 "/home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/xyce/models/cornerHBT.lib" 1 "hbt_typ" 1>
<.HB HB1 1 1500 -20 0 61 0 0 "50 GHz" 0 "5" 1 "1 pA" 0 "1 uV" 0 "0.001" 0 "150" 0>
<Iac I1 1 1330 430 20 -26 0 1 "y" 1 "50e9" 0 "0" 0 "0" 0>
<R R3 1 1330 360 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "european" 0>
<SpicePar SpicePar1 1 1520 110 -28 16 0 0 "y=1" 1>
<.SW SW3 1 1330 -20 0 61 0 0 "HB1" 1 "lin" 1 "y" 1 "0.0001" 1 "0.0045" 1 "50" 1>
<C C15 1 1990 100 -26 17 0 0 "160 fF" 1 "" 0 "neutral" 0>
<INDQ LQ2 1 1780 50 -59 -26 0 1 "320pH" 1 "13" 1 "50e9" 0 "Linear" 0 "26.85" 0>
<R R2 1 2120 190 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
</Components>
<Wires>
<1780 100 1780 130 "" 0 0 0 "">
<1780 190 1780 220 "Collector_voltage" 1810 170 14 "">
<1790 270 1820 270 "" 0 0 0 "">
<1780 100 1960 100 "" 0 0 0 "">
<2020 100 2040 100 "" 0 0 0 "">
<1730 270 1750 270 "" 0 0 0 "">
<1330 270 1360 270 "" 0 0 0 "">
<1520 270 1620 270 "" 0 0 0 "">
<1520 340 1520 380 "" 0 0 0 "">
<1520 270 1520 280 "" 0 0 0 "">
<1420 270 1520 270 "" 0 0 0 "">
<1920 350 1920 370 "" 0 0 0 "">
<1920 260 1920 290 "" 0 0 0 "">
<1520 440 1520 480 "" 0 0 0 "">
<1780 320 1780 480 "" 0 0 0 "">
<1700 270 1730 270 "" 0 0 0 "">
<1620 270 1640 270 "" 0 0 0 "">
<1730 200 1730 270 "" 0 0 0 "">
<1700 200 1730 200 "" 0 0 0 "">
<1620 200 1620 270 "" 0 0 0 "">
<1620 200 1640 200 "" 0 0 0 "">
<2100 100 2120 100 "" 0 0 0 "">
<2120 100 2120 160 "" 0 0 0 "">
<2120 220 2120 280 "" 0 0 0 "">
<1330 460 1330 480 "" 0 0 0 "">
<1330 390 1330 400 "" 0 0 0 "">
<1780 80 1780 100 "" 0 0 0 "">
<1780 -20 1780 20 "" 0 0 0 "">
<1330 270 1330 270 "Vin" 1360 240 0 "">
<1920 260 1920 260 "Vcc" 1950 230 0 "">
<2120 100 2120 100 "Vout" 2140 40 0 "">
<1780 -20 1780 -20 "Vcc" 1810 -50 0 "">
</Wires>
<Diagrams>
</Diagrams>
<Paintings>
</Paintings>

File diff suppressed because one or more lines are too long

View File

@ -1,119 +0,0 @@
<Qucs Schematic 24.3.1>
<Properties>
<View=-500,-170,1643,988,0.701209,0,0>
<Grid=10,10,1>
<DataSet=harmonic_balancing.dat>
<DataDisplay=harmonic_balancing.dpl>
<OpenDisplay=0>
<Script=harmonic_balancing.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<GND * 1 570 420 0 0 0 0>
<Vdc V2 1 570 370 18 -26 0 1 "0.97V" 1>
<Lib npn13G1 1 110 270 10 64 0 0 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<GND * 1 240 430 0 0 0 0>
<GND * 1 670 420 0 0 0 0>
<Vdc V1 1 670 370 18 -26 0 1 "1.65V" 1>
<Lib npn13G2 1 360 270 30 64 1 2 "/home/pedersen/.qucs/user_lib/IHP_PDK_nonlinear_components" 0 "npn13G2" 0 "10" 1>
<L L21 1 170 400 -26 10 0 0 "300pH" 1 "" 0>
<L L25 1 -70 320 -96 -26 0 3 "254.5pH" 1 "" 0>
<C C25 1 -150 270 -20 -49 0 2 "36fF" 1 "" 0 "neutral" 0>
<C C29 1 -150 480 -20 -49 0 2 "36fF" 1 "" 0 "neutral" 0>
<L L29 1 300 400 -26 10 0 0 "300pH" 1 "" 0>
<L L30 1 -70 410 -96 -26 0 3 "254.5pH" 1 "" 0>
<IProbe Pr1 1 -230 270 -26 16 0 0>
<.HB HB1 1 -300 40 0 61 0 0 "50 GHz" 1 "5" 1 "1 pA" 0 "1 uV" 0 "0.001" 0 "150" 0>
<C C31 1 570 210 -20 -49 0 2 "10p" 1 "" 0 "neutral" 0>
<L L31 1 110 20 -96 -26 0 3 "10n" 1 "" 0>
<L L32 1 360 10 -96 -26 0 3 "10n" 1 "" 0>
<C C30 1 560 60 -20 -49 0 2 "10p" 1 "" 0 "neutral" 0>
<IProbe Pr2 1 640 60 -26 16 0 0>
<Pac P4 1 -310 330 18 -26 0 1 "1" 1 "50 Ohm" 1 "-30 dBm" 1 "50e9" 0 "26.85" 0 "true" 0>
<SpiceLib SpiceLib1 1 430 -90 -12 16 0 0 "/home/pedersen/IHP-Open-PDK/ihp-sg13g2/libs.tech/xyce/models/cornerHBT.lib" 1 "hbt_typ" 1>
<Pac P3 1 -310 430 18 -26 0 1 "3" 1 "50 Ohm" 1 "-30 dBm" 1 "50e9" 0 "26.85" 0 "true" 0>
<Pac P5 1 710 140 18 -26 0 1 "2" 1 "50 Ohm" 1 "-30 dBm" 1 "50e9" 0 "26.85" 0 "true" 0>
<.TR TR1 1 -300 -120 0 61 0 0 "lin" 1 "0" 1 "200 ps" 1 "200" 0 "Trapezoidal" 0 "2" 0 "1 ns" 0 "1e-16" 0 "150" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "26.85" 0 "1e-3" 0 "1e-6" 0 "1" 0 "CroutLU" 0 "no" 0 "yes" 0 "0" 0>
<GND * 1 -340 380 0 0 0 3>
</Components>
<Wires>
<110 320 110 400 "VE" 50 300 27 "">
<570 400 570 420 "" 0 0 0 "">
<570 310 570 340 "" 0 0 0 "">
<-120 270 -70 270 "" 0 0 0 "">
<-120 480 -70 480 "" 0 0 0 "">
<-70 270 80 270 "Vbase" 30 220 111 "">
<110 400 140 400 "" 0 0 0 "">
<240 400 240 430 "" 0 0 0 "">
<200 400 240 400 "" 0 0 0 "">
<240 400 270 400 "" 0 0 0 "">
<670 400 670 420 "" 0 0 0 "">
<670 310 670 340 "" 0 0 0 "">
<120 270 240 270 "" 0 0 0 "">
<240 270 240 400 "" 0 0 0 "">
<-70 440 -70 480 "" 0 0 0 "">
<240 270 350 270 "" 0 0 0 "">
<330 400 360 400 "" 0 0 0 "">
<360 320 360 400 "" 0 0 0 "">
<-70 480 390 480 "" 0 0 0 "">
<390 270 390 480 "" 0 0 0 "">
<-70 350 -70 380 "Vb" -120 340 14 "">
<-70 270 -70 290 "" 0 0 0 "">
<-200 270 -180 270 "" 0 0 0 "">
<-310 270 -260 270 "" 0 0 0 "">
<-310 270 -310 300 "" 0 0 0 "">
<360 210 360 220 "" 0 0 0 "">
<360 210 540 210 "" 0 0 0 "">
<360 40 360 210 "" 0 0 0 "">
<240 -100 240 -80 "" 0 0 0 "">
<240 -80 360 -80 "" 0 0 0 "">
<360 -80 360 -20 "" 0 0 0 "">
<110 -80 240 -80 "" 0 0 0 "">
<110 -80 110 -10 "" 0 0 0 "">
<110 50 110 60 "" 0 0 0 "">
<110 60 110 220 "Collector_voltage" 140 170 141 "">
<110 60 530 60 "" 0 0 0 "">
<590 60 610 60 "" 0 0 0 "">
<670 60 710 60 "Vout_p" 730 30 33 "">
<710 60 710 110 "" 0 0 0 "">
<600 210 710 210 "" 0 0 0 "">
<710 170 710 210 "" 0 0 0 "">
<-310 480 -180 480 "" 0 0 0 "">
<-310 460 -310 480 "" 0 0 0 "">
<-310 360 -310 380 "" 0 0 0 "">
<-310 380 -310 400 "" 0 0 0 "">
<-340 380 -310 380 "" 0 0 0 "">
<570 310 570 310 "Vb" 600 280 0 "">
<670 310 670 310 "Vcc" 700 280 0 "">
<-310 270 -310 270 "Vin_p" -370 230 0 "">
<240 -100 240 -100 "Vcc" 270 -130 0 "">
</Wires>
<Diagrams>
<Rect 650 720 240 160 3 #c0c0c0 1 00 1 -2.5e+11 1e+11 2.5e+11 1 -0.0159718 0.1 0.2 0 -0.000313269 0.002 0.005 315 0 225 1 0 0 "" "" "">
<"xyce/I(PR1)" #0000ff 0 3 0 6 1>
<Mkr -5e+10 -14 -228 3 1 0>
<"xyce/V(VIN_P)" #ff0000 0 3 0 6 0>
<Mkr 5e+10 184 -230 3 1 0>
</Rect>
<Rect 1090 720 240 160 3 #c0c0c0 1 00 1 -2.5e+11 1e+11 2.5e+11 1 -0.00233409 0.01 0.025675 0 -0.000313269 0.002 0.005 315 0 225 1 0 0 "" "" "">
<"xyce/V(VOUT_P)" #0000ff 0 3 0 6 0>
<Mkr 5e+10 204 -207 3 2 0>
<"xyce/I(PR2)" #ff0000 0 3 0 6 0>
<Mkr -5e+10 156 -76 3 2 0>
</Rect>
<Rect -310 726 810 146 3 #c0c0c0 1 00 0 0 1e-11 2e-10 1 -0.177311 1 2 1 -1 1 1 315 0 225 1 0 0 "" "" "">
<"xyce/tran.V(VIN_P)" #0000ff 0 3 0 0 0>
</Rect>
<Rect -310 896 810 146 3 #c0c0c0 1 00 0 0 1e-11 2e-10 1 -0.01307 0.02 0.02 1 -1 1 1 315 0 225 1 0 0 "" "" "">
<"xyce/tran.V(VOUT_P)" #0000ff 0 3 0 0 0>
</Rect>
</Diagrams>
<Paintings>
</Paintings>

View File

@ -1,167 +0,0 @@
v {xschem version=3.4.5 file_version=1.2
}
G {}
K {}
V {}
S {}
E {}
B 2 330 -910 1130 -510 {flags=graph
y1=0
y2=2
ypos1=0
ypos2=2
divy=5
subdivy=1
unity=1
x1=0
x2=10e-6
divx=5
subdivx=1
xlabmag=1.0
ylabmag=1.0
node=""
color=""
dataset=-1
unitx=1
logx=0
logy=0
}
N -540 -180 -540 -160 {
lab=vbias}
N -610 -180 -610 -160 {
lab=vdd}
N -610 -100 -610 -80 {
lab=GND}
N -570 -80 -540 -80 {
lab=GND}
N -420 -180 -420 -160 {
lab=clk}
N -420 -100 -420 -70 {
lab=GND}
N -570 -80 -570 -70 {
lab=GND}
N -420 -70 -210 -70 {
lab=GND}
N -210 -100 -210 -70 {
lab=GND}
N -210 -180 -210 -160 {
lab=vip}
N 60 -220 120 -220 {
lab=vbias}
N 200 -120 200 -90 {
lab=GND}
N 250 -140 250 -110 {
lab=clk}
N 200 -350 200 -320 {
lab=vdd}
N 400 -210 500 -210 {
lab=outm}
N 400 -230 500 -230 {
lab=outp}
N 80 -160 120 -160 {
lab=vbias}
N 80 -280 120 -280 {
lab=vip}
N -610 -80 -570 -80 {
lab=GND}
N -540 -100 -540 -80 {
lab=GND}
N 80 -300 80 -280 {
lab=vip}
N 60 -280 80 -280 {
lab=vip}
N 80 -160 80 -140 {
lab=vbias}
N 60 -160 80 -160 {
lab=vbias}
N 80 -80 80 -60 {
lab=GND}
N 80 -380 80 -360 {
lab=GND}
N 460 -150 460 -140 {
lab=GND}
N 460 -300 460 -290 {
lab=GND}
C {devices/code_shown.sym} -675 -470 0 0 {name=MODEL only_toplevel=false
format="tcleval( @value )"
value="
.lib $::SG13G2_MODELS/cornerCAP.lib cap_typ
.lib cornerMOSlv.lib mos_tt
"}
C {vsource.sym} -610 -130 0 0 {name=V3 value="DC 1.2"}
C {vsource.sym} -540 -130 0 0 {name=V4 value="DC 0.6"}
C {gnd.sym} -310 -70 0 0 {name=l1 lab=GND}
C {lab_pin.sym} -540 -180 2 0 {name=p3 sig_type=std_logic lab=vbias}
C {lab_pin.sym} -610 -180 2 0 {name=p4 sig_type=std_logic lab=vdd}
C {vsource.sym} -420 -130 0 0 {name=V1 value="PULSE(0 1.2 0 0 0 5N \{period\})"}
C {lab_pin.sym} -420 -180 2 0 {name=p1 sig_type=std_logic lab=clk}
C {gnd.sym} -570 -70 0 0 {name=l2 lab=GND}
C {vsource.sym} -210 -130 0 0 {name=V2 value="PULSE(595e-3 605e-3 0 tr 1S 1S"}
C {lab_pin.sym} -210 -180 2 0 {name=p2 sig_type=std_logic lab=vip}
C {/home/pedersen/projects/IHP-AnalogAcademy/modules/module_3_8_bit_SAR_ADC/part_1_comparator/schematic/dynamic_comparator.sym} 270 -220 0 0 {name=x1}
C {lab_pin.sym} 60 -280 2 1 {name=p5 sig_type=std_logic lab=vip}
C {lab_pin.sym} 200 -350 2 0 {name=p6 sig_type=std_logic lab=vdd}
C {lab_pin.sym} 60 -220 2 1 {name=p7 sig_type=std_logic lab=vbias}
C {lab_pin.sym} 60 -160 2 1 {name=p8 sig_type=std_logic lab=vbias}
C {lab_pin.sym} 250 -110 2 0 {name=p9 sig_type=std_logic lab=clk}
C {gnd.sym} 200 -90 0 0 {name=l3 lab=GND}
C {lab_pin.sym} 500 -230 2 0 {name=p10 sig_type=std_logic lab=outp}
C {lab_pin.sym} 500 -210 2 0 {name=p11 sig_type=std_logic lab=outm}
C {capa.sym} 80 -110 0 0 {name=C1
m=1
value=16.384p
footprint=1206
device="ceramic capacitor"}
C {gnd.sym} 80 -60 0 0 {name=l4 lab=GND}
C {gnd.sym} 80 -380 2 0 {name=l5 lab=GND}
C {capa.sym} 80 -330 2 0 {name=C2
m=1
value=16.384p
footprint=1206
device="ceramic capacitor"}
C {capa.sym} 460 -260 2 0 {name=C4
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {capa.sym} 460 -180 0 0 {name=C3
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {gnd.sym} 460 -140 0 0 {name=l6 lab=GND}
C {gnd.sym} 460 -300 2 0 {name=l7 lab=GND}
C {launcher.sym} 170 -630 0 0 {name=h5
descr="load waves"
tclcommand="xschem raw_read $netlist_dir/output_file.raw tran"
}
C {devices/code_shown.sym} -735 -1130 0 0 {name=NGSPICE only_toplevel=false
value="
.control
op
.param clock = 100e6 ; 100 MHz clock
.param period = 1 / clock
.param num_cycles = 80 ; number of evaluation cycles
.param tr = num_cycles * period
tran 300p 800n
save all
; Define vdiff as the output differential voltage
let vdiff = v(outp) - v(outm)
; Measure when vdiff = 0.65V
meas tran cross_time WHEN vdiff = 0.65 RISE=1
; define input differentially also
let vindiff = v(vip) - v(vbias)
; Measure the difference of the input
meas tran offset_voltage find vindiff at=cross_time RISE=1
let save_offset_voltage = offset_voltage
print save_offset_voltage > vbe_tempvar.txt
write output.raw
.endc
"}

View File

@ -52,7 +52,7 @@ x2=1e-06
color=4
node=v+}
node=vinp}
B 2 850 -1225 1650 -825 {flags=graph
y1=-1.3
y2=1.3

View File

@ -1,137 +0,0 @@
v {xschem version=3.4.5 file_version=1.2
}
G {}
K {}
V {}
S {}
E {}
N -540 -180 -540 -160 {
lab=vbias}
N -610 -180 -610 -160 {
lab=vdd}
N -610 -100 -610 -80 {
lab=GND}
N -570 -80 -540 -80 {
lab=GND}
N -420 -180 -420 -160 {
lab=clk}
N -420 -100 -420 -70 {
lab=GND}
N -570 -80 -570 -70 {
lab=GND}
N -420 -70 -210 -70 {
lab=GND}
N -210 -100 -210 -70 {
lab=GND}
N -210 -180 -210 -160 {
lab=vip}
N 60 -220 120 -220 {
lab=vbias}
N 200 -120 200 -90 {
lab=GND}
N 250 -140 250 -110 {
lab=clk}
N 200 -350 200 -320 {
lab=vdd}
N 400 -210 500 -210 {
lab=outm}
N 400 -230 500 -230 {
lab=outp}
N 80 -160 120 -160 {
lab=vbias}
N 80 -280 120 -280 {
lab=vip}
N -610 -80 -570 -80 {
lab=GND}
N -540 -100 -540 -80 {
lab=GND}
N 80 -300 80 -280 {
lab=vip}
N 60 -280 80 -280 {
lab=vip}
N 80 -160 80 -140 {
lab=vbias}
N 60 -160 80 -160 {
lab=vbias}
N 80 -80 80 -60 {
lab=GND}
N 80 -380 80 -360 {
lab=GND}
N 460 -150 460 -140 {
lab=GND}
N 460 -300 460 -290 {
lab=GND}
C {devices/code_shown.sym} -685 -530 0 0 {name=MODEL only_toplevel=false
format="tcleval( @value )"
value="
.lib $::SG13G2_MODELS/cornerCAP.lib cap_typ
.lib cornerMOSlv.lib mos_tt
"}
C {vsource.sym} -610 -130 0 0 {name=V3 value="DC 1.2"}
C {vsource.sym} -540 -130 0 0 {name=V4 value="DC 0.6"}
C {gnd.sym} -310 -70 0 0 {name=l1 lab=GND}
C {lab_pin.sym} -540 -180 2 0 {name=p3 sig_type=std_logic lab=vbias}
C {lab_pin.sym} -610 -180 2 0 {name=p4 sig_type=std_logic lab=vdd}
C {vsource.sym} -420 -130 0 0 {name=V1 value="PULSE(0 1.2 0 0 0 5N \{period\})"}
C {lab_pin.sym} -420 -180 2 0 {name=p1 sig_type=std_logic lab=clk}
C {gnd.sym} -570 -70 0 0 {name=l2 lab=GND}
C {vsource.sym} -210 -130 0 0 {name=V2 value="PULSE(595e-3 605e-3 0 tr 1S 1S"}
C {lab_pin.sym} -210 -180 2 0 {name=p2 sig_type=std_logic lab=vip}
C {/home/pedersen/projects/IHP-AnalogAcademy/modules/module_3_8_bit_SAR_ADC/part_1_comparator/schematic/dynamic_comparator.sym} 270 -220 0 0 {name=x1}
C {lab_pin.sym} 60 -280 2 1 {name=p5 sig_type=std_logic lab=vip}
C {lab_pin.sym} 200 -350 2 0 {name=p6 sig_type=std_logic lab=vdd}
C {lab_pin.sym} 60 -220 2 1 {name=p7 sig_type=std_logic lab=vbias}
C {lab_pin.sym} 60 -160 2 1 {name=p8 sig_type=std_logic lab=vbias}
C {lab_pin.sym} 250 -110 2 0 {name=p9 sig_type=std_logic lab=clk}
C {gnd.sym} 200 -90 0 0 {name=l3 lab=GND}
C {lab_pin.sym} 500 -230 2 0 {name=p10 sig_type=std_logic lab=outp}
C {lab_pin.sym} 500 -210 2 0 {name=p11 sig_type=std_logic lab=outm}
C {capa.sym} 80 -110 0 0 {name=C1
m=1
value=16.384p
footprint=1206
device="ceramic capacitor"}
C {gnd.sym} 80 -60 0 0 {name=l4 lab=GND}
C {gnd.sym} 80 -380 2 0 {name=l5 lab=GND}
C {capa.sym} 80 -330 2 0 {name=C2
m=1
value=16.384p
footprint=1206
device="ceramic capacitor"}
C {capa.sym} 460 -260 2 0 {name=C4
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {capa.sym} 460 -180 0 0 {name=C3
m=1
value=15f
footprint=1206
device="ceramic capacitor"}
C {gnd.sym} 460 -140 0 0 {name=l6 lab=GND}
C {gnd.sym} 460 -300 2 0 {name=l7 lab=GND}
C {devices/code_shown.sym} -705 -1010 0 0 {name=NGSPICE only_toplevel=false
value="
.control
let run = 1
let mc_runs = 10
let results = unitvec(mc_runs)
dowhile run <= mc_runs
reset
.param clock = 100e6 ; 100 MHz clock
.param period = 1 / clock
.param num_cycles = 80 ; number of evaluation cycles
.param tr = num_cycles * period
tran 300p 800n
set run = $&run
let vdiff = v(outp) - v(outm)
meas tran cross_time WHEN vdiff = 0.65 RISE=1
let vindiff = v(vip) - v(vbias)
meas tran offset_voltage_\{$run\} find vindiff at=cross_time RISE=1
let results[$run - 1] = offset_voltage_\{$run\}
let run = run + 1
end
print results > vbe_tempvar.txt
.endc
"}

View File

@ -104,24 +104,24 @@ footprint=1206
device="ceramic capacitor"}
C {gnd.sym} 460 -140 0 0 {name=l6 lab=GND}
C {gnd.sym} 460 -300 2 0 {name=l7 lab=GND}
C {devices/code_shown.sym} -395 -440 0 0 {name=MODEL1 only_toplevel=false
C {devices/code_shown.sym} 15 -480 0 0 {name=MODEL1 only_toplevel=false
format="tcleval( @value )"
value="
.lib cornerMOSlv.lib mos_tt_mismatch
"}
C {devices/code_shown.sym} 85 -930 0 0 {name=NGSPICE1 only_toplevel=false
C {devices/code_shown.sym} -675 -780 0 0 {name=NGSPICE1 only_toplevel=false
value="
.control
let run = 1
let mc_runs = 400
let mc_runs = 100
let results = unitvec(mc_runs)
dowhile run <= mc_runs
reset
.param clock = 100e6 ; 100 MHz clock
.param period = 1 / clock
.param num_cycles = 100 ; number of evaluation cycles
.param num_cycles = 200 ; number of evaluation cycles
.param tr = num_cycles * period
tran 300p 1u
tran 300p 2u
set run = $&run
let vdiff = v(outp) - v(outm)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 150 KiB

View File

@ -0,0 +1,24 @@
module dig(
input wire clk,
input wire reset,
output logic [4:0] b
);
logic rst = 0;
always_ff @(posedge clk) begin
if(reset)
rst <= 1;
else
rst <= 0;
end
always_ff @(posedge clk) begin
if(rst)
b <= 0;
else
b <= b + 1;
end // dig
endmodule

View File

@ -0,0 +1,112 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See Vlng.h for the primary calling header
#include "Vlng.h"
#include "Vlng__Syms.h"
//==========
void Vlng::eval_step() {
VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vlng::eval\n"); );
Vlng__Syms* __restrict vlSymsp = this->__VlSymsp; // Setup global symbol table
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
#ifdef VL_DEBUG
// Debug assertions
_eval_debug_assertions();
#endif // VL_DEBUG
// Initialize
if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) _eval_initial_loop(vlSymsp);
// Evaluate till stable
int __VclockLoop = 0;
QData __Vchange = 1;
do {
VL_DEBUG_IF(VL_DBG_MSGF("+ Clock loop\n"););
_eval(vlSymsp);
if (VL_UNLIKELY(++__VclockLoop > 100)) {
// About to fail, so enable debug to see what's not settling.
// Note you must run make with OPT=-DVL_DEBUG for debug prints.
int __Vsaved_debug = Verilated::debug();
Verilated::debug(1);
__Vchange = _change_request(vlSymsp);
Verilated::debug(__Vsaved_debug);
VL_FATAL_MT("dig.v", 1, "",
"Verilated model didn't converge\n"
"- See DIDNOTCONVERGE in the Verilator manual");
} else {
__Vchange = _change_request(vlSymsp);
}
} while (VL_UNLIKELY(__Vchange));
}
void Vlng::_eval_initial_loop(Vlng__Syms* __restrict vlSymsp) {
vlSymsp->__Vm_didInit = true;
_eval_initial(vlSymsp);
// Evaluate till stable
int __VclockLoop = 0;
QData __Vchange = 1;
do {
_eval_settle(vlSymsp);
_eval(vlSymsp);
if (VL_UNLIKELY(++__VclockLoop > 100)) {
// About to fail, so enable debug to see what's not settling.
// Note you must run make with OPT=-DVL_DEBUG for debug prints.
int __Vsaved_debug = Verilated::debug();
Verilated::debug(1);
__Vchange = _change_request(vlSymsp);
Verilated::debug(__Vsaved_debug);
VL_FATAL_MT("dig.v", 1, "",
"Verilated model didn't DC converge\n"
"- See DIDNOTCONVERGE in the Verilator manual");
} else {
__Vchange = _change_request(vlSymsp);
}
} while (VL_UNLIKELY(__Vchange));
}
VL_INLINE_OPT void Vlng::_sequent__TOP__1(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_sequent__TOP__1\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
vlTOPp->b = ((IData)(vlTOPp->dig__DOT__rst) ? 0U
: (0x1fU & ((IData)(1U) + (IData)(vlTOPp->b))));
vlTOPp->dig__DOT__rst = vlTOPp->reset;
}
void Vlng::_eval(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
if (((IData)(vlTOPp->clk) & (~ (IData)(vlTOPp->__Vclklast__TOP__clk)))) {
vlTOPp->_sequent__TOP__1(vlSymsp);
}
// Final
vlTOPp->__Vclklast__TOP__clk = vlTOPp->clk;
}
VL_INLINE_OPT QData Vlng::_change_request(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_change_request\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
return (vlTOPp->_change_request_1(vlSymsp));
}
VL_INLINE_OPT QData Vlng::_change_request_1(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_change_request_1\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
// Change detection
QData __req = false; // Logically a bool
return __req;
}
#ifdef VL_DEBUG
void Vlng::_eval_debug_assertions() {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval_debug_assertions\n"); );
// Body
if (VL_UNLIKELY((clk & 0xfeU))) {
Verilated::overWidthError("clk");}
if (VL_UNLIKELY((reset & 0xfeU))) {
Verilated::overWidthError("reset");}
}
#endif // VL_DEBUG

View File

@ -0,0 +1,88 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Primary design header
//
// This header should be included by all source files instantiating the design.
// The class here is then constructed to instantiate the design.
// See the Verilator manual for examples.
#ifndef _VLNG_H_
#define _VLNG_H_ // guard
#include "verilated.h"
//==========
class Vlng__Syms;
//----------
VL_MODULE(Vlng) {
public:
// PORTS
// The application code writes and reads these signals to
// propagate new values into/out from the Verilated model.
VL_IN8(clk,0,0);
VL_IN8(reset,0,0);
VL_OUT8(b,4,0);
// LOCAL SIGNALS
// Internals; generally not touched by application code
CData/*0:0*/ dig__DOT__rst;
// LOCAL VARIABLES
// Internals; generally not touched by application code
CData/*0:0*/ __Vclklast__TOP__clk;
// INTERNAL VARIABLES
// Internals; generally not touched by application code
Vlng__Syms* __VlSymsp; // Symbol table
// CONSTRUCTORS
private:
VL_UNCOPYABLE(Vlng); ///< Copying not allowed
public:
/// Construct the model; called by application code
/// The special name may be used to make a wrapper with a
/// single model invisible with respect to DPI scope names.
Vlng(const char* name = "TOP");
/// Destroy the model; called (often implicitly) by application code
~Vlng();
// API METHODS
/// Evaluate the model. Application must call when inputs change.
void eval() { eval_step(); }
/// Evaluate when calling multiple units/models per time step.
void eval_step();
/// Evaluate at end of a timestep for tracing, when using eval_step().
/// Application must call after all eval() and before time changes.
void eval_end_step() {}
/// Simulation complete, run final blocks. Application must call on completion.
void final();
// INTERNAL METHODS
private:
static void _eval_initial_loop(Vlng__Syms* __restrict vlSymsp);
public:
void __Vconfigure(Vlng__Syms* symsp, bool first);
private:
static QData _change_request(Vlng__Syms* __restrict vlSymsp);
static QData _change_request_1(Vlng__Syms* __restrict vlSymsp);
void _ctor_var_reset() VL_ATTR_COLD;
public:
static void _eval(Vlng__Syms* __restrict vlSymsp);
private:
#ifdef VL_DEBUG
void _eval_debug_assertions();
#endif // VL_DEBUG
public:
static void _eval_initial(Vlng__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _eval_settle(Vlng__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _initial__TOP__2(Vlng__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _sequent__TOP__1(Vlng__Syms* __restrict vlSymsp);
} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
//----------
#endif // guard

View File

@ -0,0 +1,71 @@
# Verilated -*- Makefile -*-
# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable
#
# Execute this makefile from the object directory:
# make -f Vlng.mk
default: Vlng
### Constants...
# Perl executable (from $PERL)
PERL = perl
# Path to Verilator kit (from $VERILATOR_ROOT)
VERILATOR_ROOT = /usr/share/verilator
# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE)
SYSTEMC_INCLUDE ?=
# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR)
SYSTEMC_LIBDIR ?=
### Switches...
# SystemC output mode? 0/1 (from --sc)
VM_SC = 0
# Legacy or SystemC output mode? 0/1 (from --sc)
VM_SP_OR_SC = $(VM_SC)
# Deprecated
VM_PCLI = 1
# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH)
VM_SC_TARGET_ARCH = linux
### Vars...
# Design prefix (from --prefix)
VM_PREFIX = Vlng
# Module prefix (from --prefix)
VM_MODPREFIX = Vlng
# User CFLAGS (from -CFLAGS on Verilator command line)
VM_USER_CFLAGS = \
-I/usr/local/share/ngspice/scripts/src \
-fpic \
# User LDLIBS (from -LDFLAGS on Verilator command line)
VM_USER_LDLIBS = \
# User .cpp files (from .cpp's on Verilator command line)
VM_USER_CLASSES = \
verilator_main \
verilator_shim \
# User .cpp directories (from .cpp's on Verilator command line)
VM_USER_DIR = \
/usr/local/share/ngspice/scripts/src \
### Default rules...
# Include list of all generated classes
include Vlng_classes.mk
# Include global rules
include $(VERILATOR_ROOT)/include/verilated.mk
### Executable rules... (from --exe)
VPATH += $(VM_USER_DIR)
verilator_main.o: /usr/local/share/ngspice/scripts/src/verilator_main.cpp
$(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPT_FAST) -c -o $@ $<
verilator_shim.o: /usr/local/share/ngspice/scripts/src/verilator_shim.cpp
$(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPT_FAST) -c -o $@ $<
### Link rules... (from --exe)
Vlng: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a
$(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@
# Verilated -*- Makefile -*-

View File

@ -0,0 +1,65 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See Vlng.h for the primary calling header
#include "Vlng.h"
#include "Vlng__Syms.h"
//==========
VL_CTOR_IMP(Vlng) {
Vlng__Syms* __restrict vlSymsp = __VlSymsp = new Vlng__Syms(this, name());
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Reset internal values
// Reset structure values
_ctor_var_reset();
}
void Vlng::__Vconfigure(Vlng__Syms* vlSymsp, bool first) {
if (false && first) {} // Prevent unused
this->__VlSymsp = vlSymsp;
if (false && this->__VlSymsp) {} // Prevent unused
Verilated::timeunit(-12);
Verilated::timeprecision(-12);
}
Vlng::~Vlng() {
VL_DO_CLEAR(delete __VlSymsp, __VlSymsp = NULL);
}
void Vlng::_initial__TOP__2(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_initial__TOP__2\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
vlTOPp->dig__DOT__rst = 0U;
}
void Vlng::_eval_initial(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval_initial\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
vlTOPp->__Vclklast__TOP__clk = vlTOPp->clk;
vlTOPp->_initial__TOP__2(vlSymsp);
}
void Vlng::final() {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::final\n"); );
// Variables
Vlng__Syms* __restrict vlSymsp = this->__VlSymsp;
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
}
void Vlng::_eval_settle(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval_settle\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
}
void Vlng::_ctor_var_reset() {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_ctor_var_reset\n"); );
// Body
clk = VL_RAND_RESET_I(1);
reset = VL_RAND_RESET_I(1);
b = VL_RAND_RESET_I(5);
dig__DOT__rst = VL_RAND_RESET_I(1);
}

View File

@ -0,0 +1,21 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Symbol table implementation internals
#include "Vlng__Syms.h"
#include "Vlng.h"
// FUNCTIONS
Vlng__Syms::Vlng__Syms(Vlng* topp, const char* namep)
// Setup locals
: __Vm_namep(namep)
, __Vm_didInit(false)
// Setup submodule names
{
// Pointer to top level
TOPp = topp;
// Setup each module's pointers to their submodules
// Setup each module's pointer back to symbol table (for public functions)
TOPp->__Vconfigure(this, true);
}

View File

@ -0,0 +1,35 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Symbol table internal header
//
// Internal details; most calling programs do not need this header,
// unless using verilator public meta comments.
#ifndef _VLNG__SYMS_H_
#define _VLNG__SYMS_H_ // guard
#include "verilated.h"
// INCLUDE MODULE CLASSES
#include "Vlng.h"
// SYMS CLASS
class Vlng__Syms : public VerilatedSyms {
public:
// LOCAL STATE
const char* __Vm_namep;
bool __Vm_didInit;
// SUBCELL STATE
Vlng* TOPp;
// CREATORS
Vlng__Syms(Vlng* topp, const char* namep);
~Vlng__Syms() {}
// METHODS
inline const char* name() { return __Vm_namep; }
} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
#endif // guard

View File

@ -0,0 +1 @@
dig_obj_dir/Vlng.cpp dig_obj_dir/Vlng.h dig_obj_dir/Vlng.mk dig_obj_dir/Vlng__Slow.cpp dig_obj_dir/Vlng__Syms.cpp dig_obj_dir/Vlng__Syms.h dig_obj_dir/Vlng__ver.d dig_obj_dir/Vlng_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin dig.v

View File

@ -0,0 +1,47 @@
# Verilated -*- Makefile -*-
# DESCRIPTION: Verilator output: Make include file with class lists
#
# This file lists generated Verilated files, for including in higher level makefiles.
# See Vlng.mk for the caller.
### Switches...
# C11 constructs required? 0/1 (from --threads, --trace-threads or use of classes)
VM_C11 = 0
# Coverage output mode? 0/1 (from --coverage)
VM_COVERAGE = 0
# Parallel builds? 0/1 (from --output-split)
VM_PARALLEL_BUILDS = 0
# Threaded output mode? 0/1/N threads (from --threads)
VM_THREADS = 0
# Tracing output mode? 0/1 (from --trace/--trace-fst)
VM_TRACE = 0
# Tracing threaded output mode? 0/1/N threads (from --trace-thread)
VM_TRACE_THREADS = 0
# Separate FST writer thread? 0/1 (from --trace-fst with --trace-thread > 0)
VM_TRACE_FST_WRITER_THREAD = 0
### Object file lists...
# Generated module classes, fast-path, compile with highest optimization
VM_CLASSES_FAST += \
Vlng \
# Generated module classes, non-fast-path, compile with low/medium optimization
VM_CLASSES_SLOW += \
Vlng__Slow \
# Generated support classes, fast-path, compile with highest optimization
VM_SUPPORT_FAST += \
# Generated support classes, non-fast-path, compile with low/medium optimization
VM_SUPPORT_SLOW += \
Vlng__Syms \
# Global classes, need linked once per executable, fast-path, compile with highest optimization
VM_GLOBAL_FAST += \
verilated \
# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization
VM_GLOBAL_SLOW += \
# Verilated -*- Makefile -*-

View File

@ -0,0 +1 @@
/* Generated code: do not edit. */

View File

@ -0,0 +1,3 @@
/* Generated code: do not edit. */
VL_DATA(8,lk,0,0)
VL_DATA(8,eset,0,0)

View File

@ -0,0 +1,2 @@
/* Generated code: do not edit. */
VL_DATA(8,,4,0)

View File

@ -0,0 +1,4 @@
verilator_main.o: /usr/local/share/ngspice/scripts/src/verilator_main.cpp \
/usr/local/share/ngspice/scripts/src/ngspice/cmtypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/miftypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/cosim.h

View File

@ -0,0 +1,7 @@
verilator_shim.o: /usr/local/share/ngspice/scripts/src/verilator_shim.cpp \
/usr/share/verilator/include/verilated.h \
/usr/share/verilator/include/verilatedos.h Vlng.h \
/usr/local/share/ngspice/scripts/src/ngspice/cmtypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/miftypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/cosim.h outputs.h inouts.h \
inputs.h

View File

@ -0,0 +1,39 @@
//Verilog HDL for "8_bit_SAR_ADC", "sar_algorithm" "functional"
module sar_algorithm (
input wire Op,
input wire En,
input wire Om,
input wire clk,
input wire rst,
output reg [7:0] B, // 8-bit
output reg [7:0] BN, // 8-bit
output reg [7:0] D // 8-bit
);
reg [2:0] counter = 3'b000; // 3-bit counter
always @(posedge clk) begin
if (En && !rst && (Op ^ Om)) begin
if (counter != 3'b111) begin // Limit to 8
D[counter] <= Op;
if (Op) begin
B[counter] <= 1'b1;
BN[counter] <= 1'b0;
end else if (Om) begin
B[counter] <= 1'b0;
BN[counter] <= 1'b1;
end
counter <= counter + 1'b1;
end
end else if (rst) begin
B <= 8'b00000000;
BN <= 8'b00000000;
D <= 8'b00000000;
counter <= 3'b000;
end
end
endmodule

View File

@ -0,0 +1,146 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See Vlng.h for the primary calling header
#include "Vlng.h"
#include "Vlng__Syms.h"
//==========
void Vlng::eval_step() {
VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vlng::eval\n"); );
Vlng__Syms* __restrict vlSymsp = this->__VlSymsp; // Setup global symbol table
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
#ifdef VL_DEBUG
// Debug assertions
_eval_debug_assertions();
#endif // VL_DEBUG
// Initialize
if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) _eval_initial_loop(vlSymsp);
// Evaluate till stable
int __VclockLoop = 0;
QData __Vchange = 1;
do {
VL_DEBUG_IF(VL_DBG_MSGF("+ Clock loop\n"););
_eval(vlSymsp);
if (VL_UNLIKELY(++__VclockLoop > 100)) {
// About to fail, so enable debug to see what's not settling.
// Note you must run make with OPT=-DVL_DEBUG for debug prints.
int __Vsaved_debug = Verilated::debug();
Verilated::debug(1);
__Vchange = _change_request(vlSymsp);
Verilated::debug(__Vsaved_debug);
VL_FATAL_MT("sar_algo.v", 3, "",
"Verilated model didn't converge\n"
"- See DIDNOTCONVERGE in the Verilator manual");
} else {
__Vchange = _change_request(vlSymsp);
}
} while (VL_UNLIKELY(__Vchange));
}
void Vlng::_eval_initial_loop(Vlng__Syms* __restrict vlSymsp) {
vlSymsp->__Vm_didInit = true;
_eval_initial(vlSymsp);
// Evaluate till stable
int __VclockLoop = 0;
QData __Vchange = 1;
do {
_eval_settle(vlSymsp);
_eval(vlSymsp);
if (VL_UNLIKELY(++__VclockLoop > 100)) {
// About to fail, so enable debug to see what's not settling.
// Note you must run make with OPT=-DVL_DEBUG for debug prints.
int __Vsaved_debug = Verilated::debug();
Verilated::debug(1);
__Vchange = _change_request(vlSymsp);
Verilated::debug(__Vsaved_debug);
VL_FATAL_MT("sar_algo.v", 3, "",
"Verilated model didn't DC converge\n"
"- See DIDNOTCONVERGE in the Verilator manual");
} else {
__Vchange = _change_request(vlSymsp);
}
} while (VL_UNLIKELY(__Vchange));
}
VL_INLINE_OPT void Vlng::_sequent__TOP__1(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_sequent__TOP__1\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
if ((((IData)(vlTOPp->En) & (~ (IData)(vlTOPp->rst)))
& ((IData)(vlTOPp->Op) ^ (IData)(vlTOPp->Om)))) {
if ((7U != (IData)(vlTOPp->sar_algorithm__DOT__counter))) {
vlTOPp->D = (((~ ((IData)(1U) << (IData)(vlTOPp->sar_algorithm__DOT__counter)))
& (IData)(vlTOPp->D)) | ((IData)(vlTOPp->Op)
<< (IData)(vlTOPp->sar_algorithm__DOT__counter)));
if (vlTOPp->Op) {
vlTOPp->B = ((IData)(vlTOPp->B) | ((IData)(1U)
<< (IData)(vlTOPp->sar_algorithm__DOT__counter)));
vlTOPp->BN = ((~ ((IData)(1U) << (IData)(vlTOPp->sar_algorithm__DOT__counter)))
& (IData)(vlTOPp->BN));
} else {
if (vlTOPp->Om) {
vlTOPp->B = ((~ ((IData)(1U) << (IData)(vlTOPp->sar_algorithm__DOT__counter)))
& (IData)(vlTOPp->B));
vlTOPp->BN = ((IData)(vlTOPp->BN)
| ((IData)(1U) << (IData)(vlTOPp->sar_algorithm__DOT__counter)));
}
}
vlTOPp->sar_algorithm__DOT__counter = (7U
& ((IData)(1U)
+ (IData)(vlTOPp->sar_algorithm__DOT__counter)));
}
} else {
if (vlTOPp->rst) {
vlTOPp->sar_algorithm__DOT__counter = 0U;
vlTOPp->B = 0U;
vlTOPp->BN = 0U;
vlTOPp->D = 0U;
}
}
}
void Vlng::_eval(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
if (((IData)(vlTOPp->clk) & (~ (IData)(vlTOPp->__Vclklast__TOP__clk)))) {
vlTOPp->_sequent__TOP__1(vlSymsp);
}
// Final
vlTOPp->__Vclklast__TOP__clk = vlTOPp->clk;
}
VL_INLINE_OPT QData Vlng::_change_request(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_change_request\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
return (vlTOPp->_change_request_1(vlSymsp));
}
VL_INLINE_OPT QData Vlng::_change_request_1(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_change_request_1\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
// Change detection
QData __req = false; // Logically a bool
return __req;
}
#ifdef VL_DEBUG
void Vlng::_eval_debug_assertions() {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval_debug_assertions\n"); );
// Body
if (VL_UNLIKELY((Op & 0xfeU))) {
Verilated::overWidthError("Op");}
if (VL_UNLIKELY((En & 0xfeU))) {
Verilated::overWidthError("En");}
if (VL_UNLIKELY((Om & 0xfeU))) {
Verilated::overWidthError("Om");}
if (VL_UNLIKELY((clk & 0xfeU))) {
Verilated::overWidthError("clk");}
if (VL_UNLIKELY((rst & 0xfeU))) {
Verilated::overWidthError("rst");}
}
#endif // VL_DEBUG

View File

@ -0,0 +1,93 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Primary design header
//
// This header should be included by all source files instantiating the design.
// The class here is then constructed to instantiate the design.
// See the Verilator manual for examples.
#ifndef _VLNG_H_
#define _VLNG_H_ // guard
#include "verilated.h"
//==========
class Vlng__Syms;
//----------
VL_MODULE(Vlng) {
public:
// PORTS
// The application code writes and reads these signals to
// propagate new values into/out from the Verilated model.
VL_IN8(clk,0,0);
VL_IN8(Op,0,0);
VL_IN8(En,0,0);
VL_IN8(Om,0,0);
VL_IN8(rst,0,0);
VL_OUT8(B,7,0);
VL_OUT8(BN,7,0);
VL_OUT8(D,7,0);
// LOCAL SIGNALS
// Internals; generally not touched by application code
CData/*2:0*/ sar_algorithm__DOT__counter;
// LOCAL VARIABLES
// Internals; generally not touched by application code
CData/*0:0*/ __Vclklast__TOP__clk;
// INTERNAL VARIABLES
// Internals; generally not touched by application code
Vlng__Syms* __VlSymsp; // Symbol table
// CONSTRUCTORS
private:
VL_UNCOPYABLE(Vlng); ///< Copying not allowed
public:
/// Construct the model; called by application code
/// The special name may be used to make a wrapper with a
/// single model invisible with respect to DPI scope names.
Vlng(const char* name = "TOP");
/// Destroy the model; called (often implicitly) by application code
~Vlng();
// API METHODS
/// Evaluate the model. Application must call when inputs change.
void eval() { eval_step(); }
/// Evaluate when calling multiple units/models per time step.
void eval_step();
/// Evaluate at end of a timestep for tracing, when using eval_step().
/// Application must call after all eval() and before time changes.
void eval_end_step() {}
/// Simulation complete, run final blocks. Application must call on completion.
void final();
// INTERNAL METHODS
private:
static void _eval_initial_loop(Vlng__Syms* __restrict vlSymsp);
public:
void __Vconfigure(Vlng__Syms* symsp, bool first);
private:
static QData _change_request(Vlng__Syms* __restrict vlSymsp);
static QData _change_request_1(Vlng__Syms* __restrict vlSymsp);
void _ctor_var_reset() VL_ATTR_COLD;
public:
static void _eval(Vlng__Syms* __restrict vlSymsp);
private:
#ifdef VL_DEBUG
void _eval_debug_assertions();
#endif // VL_DEBUG
public:
static void _eval_initial(Vlng__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _eval_settle(Vlng__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _initial__TOP__2(Vlng__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _sequent__TOP__1(Vlng__Syms* __restrict vlSymsp);
} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
//----------
#endif // guard

View File

@ -0,0 +1,71 @@
# Verilated -*- Makefile -*-
# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable
#
# Execute this makefile from the object directory:
# make -f Vlng.mk
default: Vlng
### Constants...
# Perl executable (from $PERL)
PERL = perl
# Path to Verilator kit (from $VERILATOR_ROOT)
VERILATOR_ROOT = /usr/share/verilator
# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE)
SYSTEMC_INCLUDE ?=
# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR)
SYSTEMC_LIBDIR ?=
### Switches...
# SystemC output mode? 0/1 (from --sc)
VM_SC = 0
# Legacy or SystemC output mode? 0/1 (from --sc)
VM_SP_OR_SC = $(VM_SC)
# Deprecated
VM_PCLI = 1
# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH)
VM_SC_TARGET_ARCH = linux
### Vars...
# Design prefix (from --prefix)
VM_PREFIX = Vlng
# Module prefix (from --prefix)
VM_MODPREFIX = Vlng
# User CFLAGS (from -CFLAGS on Verilator command line)
VM_USER_CFLAGS = \
-I/usr/local/share/ngspice/scripts/src \
-fpic \
# User LDLIBS (from -LDFLAGS on Verilator command line)
VM_USER_LDLIBS = \
# User .cpp files (from .cpp's on Verilator command line)
VM_USER_CLASSES = \
verilator_main \
verilator_shim \
# User .cpp directories (from .cpp's on Verilator command line)
VM_USER_DIR = \
/usr/local/share/ngspice/scripts/src \
### Default rules...
# Include list of all generated classes
include Vlng_classes.mk
# Include global rules
include $(VERILATOR_ROOT)/include/verilated.mk
### Executable rules... (from --exe)
VPATH += $(VM_USER_DIR)
verilator_main.o: /usr/local/share/ngspice/scripts/src/verilator_main.cpp
$(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPT_FAST) -c -o $@ $<
verilator_shim.o: /usr/local/share/ngspice/scripts/src/verilator_shim.cpp
$(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPT_FAST) -c -o $@ $<
### Link rules... (from --exe)
Vlng: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a
$(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@
# Verilated -*- Makefile -*-

View File

@ -0,0 +1,70 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See Vlng.h for the primary calling header
#include "Vlng.h"
#include "Vlng__Syms.h"
//==========
VL_CTOR_IMP(Vlng) {
Vlng__Syms* __restrict vlSymsp = __VlSymsp = new Vlng__Syms(this, name());
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Reset internal values
// Reset structure values
_ctor_var_reset();
}
void Vlng::__Vconfigure(Vlng__Syms* vlSymsp, bool first) {
if (false && first) {} // Prevent unused
this->__VlSymsp = vlSymsp;
if (false && this->__VlSymsp) {} // Prevent unused
Verilated::timeunit(-12);
Verilated::timeprecision(-12);
}
Vlng::~Vlng() {
VL_DO_CLEAR(delete __VlSymsp, __VlSymsp = NULL);
}
void Vlng::_initial__TOP__2(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_initial__TOP__2\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
vlTOPp->sar_algorithm__DOT__counter = 0U;
}
void Vlng::_eval_initial(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval_initial\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
// Body
vlTOPp->__Vclklast__TOP__clk = vlTOPp->clk;
vlTOPp->_initial__TOP__2(vlSymsp);
}
void Vlng::final() {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::final\n"); );
// Variables
Vlng__Syms* __restrict vlSymsp = this->__VlSymsp;
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
}
void Vlng::_eval_settle(Vlng__Syms* __restrict vlSymsp) {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_eval_settle\n"); );
Vlng* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
}
void Vlng::_ctor_var_reset() {
VL_DEBUG_IF(VL_DBG_MSGF("+ Vlng::_ctor_var_reset\n"); );
// Body
Op = VL_RAND_RESET_I(1);
En = VL_RAND_RESET_I(1);
Om = VL_RAND_RESET_I(1);
clk = VL_RAND_RESET_I(1);
rst = VL_RAND_RESET_I(1);
B = VL_RAND_RESET_I(8);
BN = VL_RAND_RESET_I(8);
D = VL_RAND_RESET_I(8);
sar_algorithm__DOT__counter = VL_RAND_RESET_I(3);
}

View File

@ -0,0 +1,21 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Symbol table implementation internals
#include "Vlng__Syms.h"
#include "Vlng.h"
// FUNCTIONS
Vlng__Syms::Vlng__Syms(Vlng* topp, const char* namep)
// Setup locals
: __Vm_namep(namep)
, __Vm_didInit(false)
// Setup submodule names
{
// Pointer to top level
TOPp = topp;
// Setup each module's pointers to their submodules
// Setup each module's pointer back to symbol table (for public functions)
TOPp->__Vconfigure(this, true);
}

View File

@ -0,0 +1,35 @@
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Symbol table internal header
//
// Internal details; most calling programs do not need this header,
// unless using verilator public meta comments.
#ifndef _VLNG__SYMS_H_
#define _VLNG__SYMS_H_ // guard
#include "verilated.h"
// INCLUDE MODULE CLASSES
#include "Vlng.h"
// SYMS CLASS
class Vlng__Syms : public VerilatedSyms {
public:
// LOCAL STATE
const char* __Vm_namep;
bool __Vm_didInit;
// SUBCELL STATE
Vlng* TOPp;
// CREATORS
Vlng__Syms(Vlng* topp, const char* namep);
~Vlng__Syms() {}
// METHODS
inline const char* name() { return __Vm_namep; }
} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
#endif // guard

View File

@ -0,0 +1 @@
sar_algo_obj_dir/Vlng.cpp sar_algo_obj_dir/Vlng.h sar_algo_obj_dir/Vlng.mk sar_algo_obj_dir/Vlng__Slow.cpp sar_algo_obj_dir/Vlng__Syms.cpp sar_algo_obj_dir/Vlng__Syms.h sar_algo_obj_dir/Vlng__ver.d sar_algo_obj_dir/Vlng_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin sar_algo.v

View File

@ -0,0 +1,47 @@
# Verilated -*- Makefile -*-
# DESCRIPTION: Verilator output: Make include file with class lists
#
# This file lists generated Verilated files, for including in higher level makefiles.
# See Vlng.mk for the caller.
### Switches...
# C11 constructs required? 0/1 (from --threads, --trace-threads or use of classes)
VM_C11 = 0
# Coverage output mode? 0/1 (from --coverage)
VM_COVERAGE = 0
# Parallel builds? 0/1 (from --output-split)
VM_PARALLEL_BUILDS = 0
# Threaded output mode? 0/1/N threads (from --threads)
VM_THREADS = 0
# Tracing output mode? 0/1 (from --trace/--trace-fst)
VM_TRACE = 0
# Tracing threaded output mode? 0/1/N threads (from --trace-thread)
VM_TRACE_THREADS = 0
# Separate FST writer thread? 0/1 (from --trace-fst with --trace-thread > 0)
VM_TRACE_FST_WRITER_THREAD = 0
### Object file lists...
# Generated module classes, fast-path, compile with highest optimization
VM_CLASSES_FAST += \
Vlng \
# Generated module classes, non-fast-path, compile with low/medium optimization
VM_CLASSES_SLOW += \
Vlng__Slow \
# Generated support classes, fast-path, compile with highest optimization
VM_SUPPORT_FAST += \
# Generated support classes, non-fast-path, compile with low/medium optimization
VM_SUPPORT_SLOW += \
Vlng__Syms \
# Global classes, need linked once per executable, fast-path, compile with highest optimization
VM_GLOBAL_FAST += \
verilated \
# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization
VM_GLOBAL_SLOW += \
# Verilated -*- Makefile -*-

View File

@ -0,0 +1 @@
/* Generated code: do not edit. */

View File

@ -0,0 +1,6 @@
/* Generated code: do not edit. */
VL_DATA(8,lk,0,0)
VL_DATA(8,p,0,0)
VL_DATA(8,n,0,0)
VL_DATA(8,m,0,0)
VL_DATA(8,st,0,0)

View File

@ -0,0 +1,4 @@
/* Generated code: do not edit. */
VL_DATA(8,,7,0)
VL_DATA(8,N,7,0)
VL_DATA(8,,7,0)

View File

@ -0,0 +1,4 @@
verilator_main.o: /usr/local/share/ngspice/scripts/src/verilator_main.cpp \
/usr/local/share/ngspice/scripts/src/ngspice/cmtypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/miftypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/cosim.h

View File

@ -0,0 +1,7 @@
verilator_shim.o: /usr/local/share/ngspice/scripts/src/verilator_shim.cpp \
/usr/share/verilator/include/verilated.h \
/usr/share/verilator/include/verilatedos.h Vlng.h \
/usr/local/share/ngspice/scripts/src/ngspice/cmtypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/miftypes.h \
/usr/local/share/ngspice/scripts/src/ngspice/cosim.h outputs.h inouts.h \
inputs.h