From 784a3defab2ce4211c82644672d8e939008bafb8 Mon Sep 17 00:00:00 2001 From: Hendrik Mennen Date: Sun, 19 Nov 2023 19:22:33 +0100 Subject: [PATCH] improve compile viewmodel --- OneWare.sln.DotSettings | 1 + src/OneWare.IceBreaker/IceBreakerFpga.cs | 12 ++ src/OneWare.IceBreaker/IceBreakerModule.cs | 4 +- .../ViewModels/IceBreakerFpgaViewModel.cs | 11 ++ .../ViewModels/IceBreakerV10EViewModel.cs | 11 -- ...10EView.axaml => IceBreakerFpgaView.axaml} | 112 ++++++------ ...w.axaml.cs => IceBreakerFpgaView.axaml.cs} | 4 +- .../OssCadSuiteIntegrationModule.cs | 4 +- .../Yosys/YosysToolchain.cs | 83 ++++++++- .../Fpga/FpgaBase.cs | 37 ++++ .../Fpga/FpgaNode.cs | 14 ++ .../Fpga/FpgaPin.cs | 14 ++ .../Fpga/IFpga.cs | 8 + .../Helpers/FpgaHelper.cs | 13 ++ .../Models/FpgaModel.cs | 158 ++++++++++++++++ .../Models/FpgaModelBase.cs | 169 ------------------ .../Models/FpgaNodeModel.cs | 21 +++ .../Models/FpgaPinModel.cs | 29 ++- .../Models/NodeModel.cs | 32 ---- .../Models/UniversalFpgaProjectRoot.cs | 18 +- .../Services/FpgaService.cs | 32 ++-- .../Services/IFpgaToolchain.cs | 8 +- .../Services/INodeProvider.cs | 4 +- .../Styles/Components.axaml | 4 +- .../UniversalFpgaProjectManager.cs | 17 +- .../UniversalFpgaProjectCompileViewModel.cs | 145 ++++++--------- .../UniversalFpgaProjectToolBarViewModel.cs | 2 + .../UniversalFpgaProjectCompileView.axaml | 28 +-- .../UniversalFpgaProjectToolBarView.axaml | 4 +- src/OneWare.Vhdl/Parsing/VhdlNodeProvider.cs | 9 +- 30 files changed, 580 insertions(+), 428 deletions(-) create mode 100644 src/OneWare.IceBreaker/IceBreakerFpga.cs create mode 100644 src/OneWare.IceBreaker/ViewModels/IceBreakerFpgaViewModel.cs delete mode 100644 src/OneWare.IceBreaker/ViewModels/IceBreakerV10EViewModel.cs rename src/OneWare.IceBreaker/Views/{IceBreakerV10EView.axaml => IceBreakerFpgaView.axaml} (90%) rename src/OneWare.IceBreaker/Views/{IceBreakerV10EView.axaml.cs => IceBreakerFpgaView.axaml.cs} (56%) create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Fpga/FpgaBase.cs create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Fpga/FpgaNode.cs create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Fpga/FpgaPin.cs create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Fpga/IFpga.cs create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Helpers/FpgaHelper.cs create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Models/FpgaModel.cs delete mode 100644 src/OneWare.UniversalFpgaProjectSystem/Models/FpgaModelBase.cs create mode 100644 src/OneWare.UniversalFpgaProjectSystem/Models/FpgaNodeModel.cs delete mode 100644 src/OneWare.UniversalFpgaProjectSystem/Models/NodeModel.cs diff --git a/OneWare.sln.DotSettings b/OneWare.sln.DotSettings index c831a3cb..9b25ace2 100644 --- a/OneWare.sln.DotSettings +++ b/OneWare.sln.DotSettings @@ -3,5 +3,6 @@ True True + True True True \ No newline at end of file diff --git a/src/OneWare.IceBreaker/IceBreakerFpga.cs b/src/OneWare.IceBreaker/IceBreakerFpga.cs new file mode 100644 index 00000000..b17e1c72 --- /dev/null +++ b/src/OneWare.IceBreaker/IceBreakerFpga.cs @@ -0,0 +1,12 @@ +using OneWare.UniversalFpgaProjectSystem.Fpga; +using OneWare.UniversalFpgaProjectSystem.Models; + +namespace OneWare.IceBreaker; + +public class IceBreakerFpga : FpgaBase +{ + public IceBreakerFpga() + { + LoadFromJson("avares://OneWare.IceBreaker/Assets/IceBreakerV1.0e.json"); + } +} \ No newline at end of file diff --git a/src/OneWare.IceBreaker/IceBreakerModule.cs b/src/OneWare.IceBreaker/IceBreakerModule.cs index b58ab346..9094c00d 100644 --- a/src/OneWare.IceBreaker/IceBreakerModule.cs +++ b/src/OneWare.IceBreaker/IceBreakerModule.cs @@ -15,6 +15,8 @@ public void RegisterTypes(IContainerRegistry containerRegistry) public void OnInitialized(IContainerProvider containerProvider) { - containerProvider.Resolve().AddFpga(); + var fpga = new IceBreakerFpga(); + containerProvider.Resolve().RegisterFpga(fpga); + containerProvider.Resolve().RegisterCustomFpgaModel(fpga); } } \ No newline at end of file diff --git a/src/OneWare.IceBreaker/ViewModels/IceBreakerFpgaViewModel.cs b/src/OneWare.IceBreaker/ViewModels/IceBreakerFpgaViewModel.cs new file mode 100644 index 00000000..c218091f --- /dev/null +++ b/src/OneWare.IceBreaker/ViewModels/IceBreakerFpgaViewModel.cs @@ -0,0 +1,11 @@ +using OneWare.UniversalFpgaProjectSystem.Models; + +namespace OneWare.IceBreaker.ViewModels; + +public class IceBreakerFpgaViewModel : FpgaModel +{ + public IceBreakerFpgaViewModel(IceBreakerFpga fpga) : base(fpga) + { + + } +} \ No newline at end of file diff --git a/src/OneWare.IceBreaker/ViewModels/IceBreakerV10EViewModel.cs b/src/OneWare.IceBreaker/ViewModels/IceBreakerV10EViewModel.cs deleted file mode 100644 index 68e34ceb..00000000 --- a/src/OneWare.IceBreaker/ViewModels/IceBreakerV10EViewModel.cs +++ /dev/null @@ -1,11 +0,0 @@ -using OneWare.UniversalFpgaProjectSystem.Models; - -namespace OneWare.IceBreaker.ViewModels; - -public class IceBreakerV10EViewModel : FpgaModelBase -{ - public IceBreakerV10EViewModel() - { - LoadFromJson("avares://OneWare.IceBreaker/Assets/IceBreakerV1.0e.json"); - } -} \ No newline at end of file diff --git a/src/OneWare.IceBreaker/Views/IceBreakerV10EView.axaml b/src/OneWare.IceBreaker/Views/IceBreakerFpgaView.axaml similarity index 90% rename from src/OneWare.IceBreaker/Views/IceBreakerV10EView.axaml rename to src/OneWare.IceBreaker/Views/IceBreakerFpgaView.axaml index 54ef49da..bb9ebb74 100644 --- a/src/OneWare.IceBreaker/Views/IceBreakerV10EView.axaml +++ b/src/OneWare.IceBreaker/Views/IceBreakerFpgaView.axaml @@ -6,7 +6,7 @@ mc:Ignorable="d" d:DesignHeight="500" d:DesignWidth="1000" - x:Class="OneWare.IceBreaker.Views.IceBreakerV10EView" x:DataType="viewModels:IceBreakerV10EViewModel" + x:Class="OneWare.IceBreaker.Views.IceBreakerFpgaView" x:DataType="viewModels:IceBreakerFpgaViewModel" x:CompileBindings="True"> @@ -64,12 +64,12 @@ -