Skip to content

Commit ea4e092

Browse files
add SpiceSharpBSIM
1 parent d1745d7 commit ea4e092

2 files changed

Lines changed: 33 additions & 1 deletion

File tree

src/SpiceSharpParser.IntegrationTests/Examples/Extensions/CustomMosfetModelTest.cs

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using SpiceSharpParser.ModelReaders.Netlist.Spice.Readers.EntityGenerators.Components.Semiconductors;
1+
using SpiceSharp.Components;
2+
using SpiceSharpParser.ModelReaders.Netlist.Spice.Readers.EntityGenerators.Components.Semiconductors;
23
using SpiceSharpParser.ModelReaders.Netlist.Spice.Readers.EntityGenerators.Models;
34
using System.IO;
45
using Xunit;
@@ -49,6 +50,36 @@ public void When_CustomMosfetModel2_Used_NoExceptions()
4950
spiceSharpReader.Settings.Mappings.Components.Map("M", mosfetGenerator);
5051

5152

53+
var spiceSharpModel = spiceSharpReader.Read(parseResult.FinalModel);
54+
55+
Assert.False(spiceSharpModel.ValidationResult.HasError);
56+
Assert.False(spiceSharpModel.ValidationResult.HasWarning);
57+
}
58+
59+
60+
[Fact]
61+
public void When_BSIM1_Used_NoExceptions()
62+
{
63+
// Create a model from text file
64+
string path = Path.Combine(Directory.GetCurrentDirectory(), "Examples/Circuits/MosfetExample2.cir");
65+
var netlistContent = File.ReadAllText(path);
66+
var parser = new SpiceNetlistParser();
67+
parser.Settings.Lexing.HasTitle = true;
68+
var parseResult = parser.ParseNetlist(netlistContent);
69+
70+
// Convert to Spice#
71+
var spiceSharpReader = new SpiceSharpReader();
72+
spiceSharpReader.Settings.CaseSensitivity.IsModelTypeCaseSensitive = false;
73+
74+
// custom mosfet models
75+
var modelGenerator = new MosfetModelGenerator();
76+
modelGenerator.AddGenericLevel<BSIM1Model, SpiceSharpBSIM.Components.Semiconductors.BSIM.BSIM1Behaviors.ModelParameters>(4);
77+
spiceSharpReader.Settings.Mappings.Models.Map(new[] { "PMOS", "NMOS" }, modelGenerator);
78+
var mosfetGenerator = new MosfetGenerator();
79+
mosfetGenerator.AddMosfet<SpiceSharp.Components.Mosfet3Model, SpiceSharp.Components.Mosfet3>();
80+
spiceSharpReader.Settings.Mappings.Components.Map("M", mosfetGenerator);
81+
82+
5283
var spiceSharpModel = spiceSharpReader.Read(parseResult.FinalModel);
5384

5485
Assert.False(spiceSharpModel.ValidationResult.HasError);

src/SpiceSharpParser.IntegrationTests/SpiceSharpParser.IntegrationTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
2525
<PackageReference Include="SpiceSharp" Version="3.2.3" />
2626
<PackageReference Include="SpiceSharpBehavioral" Version="3.2.0" />
27+
<PackageReference Include="SpiceSharpBSIM" Version="3.2.0" />
2728
<PackageReference Include="xunit" Version="2.9.2" />
2829
<PackageReference Include="xunit.abstractions" Version="2.0.3" />
2930
<PackageReference Include="xunit.runner.console" Version="2.9.2">

0 commit comments

Comments
 (0)