Silo 0.1.7
dotnet add package Silo --version 0.1.7
NuGet\Install-Package Silo -Version 0.1.7
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Silo" Version="0.1.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Silo --version 0.1.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Silo, 0.1.7"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Silo as a Cake Addin
#addin nuget:?package=Silo&version=0.1.7
// Install Silo as a Cake Tool
#tool nuget:?package=Silo&version=0.1.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Simulated Logic
Silo (Simulated Logic) is a C# framework which allows you to simulate logic systems in code. Silo has many built-in components like gates, ALU's, displays, etc. that will make simulating complex logic systems easier.
Samples
Sample AND gate
using Silo.Components;
using Silo.Gates;
var a = new Switch();
var b = new Switch();
var andGate = new AndGate();
a.AttachTo(andGate, 0);
b.AttachTo(andGate, 1);
a.State = true;
b.State = true;
Console.WriteLine(andGate);
8 bit input
using Silo.Components;
var input = new EightBitInput();
input.State = 200;
Console.WriteLine(input);
8 bit adder
using Silo.Components;
using Silo.Devices;
var inputA = new EightBitInput();
var inputB = new EightBitInput();
var adder = new EightBitAdder();
inputA.AttachTo(adder);
inputB.AttachTo(adder, 8);
inputA.State = 10;
inputB.State = 5;
Console.WriteLine(adder);
var display = new EightBitDisplay();
adder.AttachToAll(display);
Console.WriteLine(display);
D Flip-Flop with clock
using Silo.Components;
using Silo.Memory;
using Silo.Util;
var flipFlop = new DFlipFlop();
var val = new Switch();
var clk = new Clock(Frequency.Parse("1 Hz"));
clk.AttachTo(flipFlop, 1);
val.State = true;
Console.WriteLine(flipFlop);
Thread.Sleep(2000);
Console.WriteLine(flipFlop);
val.State = false;
Console.WriteLine(flipFlop);
Thread.Sleep(2000);
Console.WriteLine(flipFlop);
Counter with clock
using Silo.Components;
using Silo.Memory;
using Silo.Util;
var ctr = new Counter();
var reset = new Button();
var loadOrCount = new Switch();
var upOrDown = new Switch();
var countToggle = new Switch();
var clock = new Clock(1.kHz());
var input = new EightBitInput();
var display = new EightBitDisplay();
reset.AttachTo(ctr, 0);
loadOrCount.AttachTo(ctr, 1);
upOrDown.AttachTo(ctr, 2);
countToggle.AttachTo(ctr, 3);
clock.AttachTo(ctr, 4);
input.AttachTo(ctr, 5);
ctr.AttachRange(display, 1, 8);
loadOrCount.State = true;
input.State = 50;
Thread.Sleep(100); //Wait for clock to cycle
//Ctr output is now 50
loadOrCount.State = false;
upOrDown.State = true;
countToggle.State = true;
Thread.Sleep(100);
//Ctr output is now ~53
upOrDown.State = false;
Thread.Sleep(100);
//Ctr output is now 50
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 is compatible. netcoreapp2.2 is compatible. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 2.1
- No dependencies.
-
.NETCoreApp 2.2
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.