├── FPGAConf
├── .gitignore
├── fpga
│ ├── quokka.sdc
│ ├── Quokka.qws
│ ├── Verilog
│ │ └── generated
│ │ │ └── Conf
│ │ │ ├── acronyms.txt
│ │ │ └── Quokka.v
│ └── Quokka.qpf
├── ConfDevice
│ ├── watch-arty.cmd
│ ├── watch.cmd
│ ├── watch-artyA35.cmd
│ ├── arty.json
│ ├── verilog.json
│ ├── artyA35.json
│ └── ConfDevice.csproj
├── ConfHost
│ └── ConfHost.csproj
├── arty
│ └── Verilog
│ │ └── generated
│ │ └── Conf
│ │ ├── acronyms.txt
│ │ └── Quokka.v
└── artyA35
│ └── Verilog
│ └── generated
│ └── Conf
│ ├── acronyms.txt
│ └── Quokka.v
├── ROT2U
├── ROT2UFE
│ ├── server
│ │ ├── appsettings.Production.json
│ │ ├── Views
│ │ │ ├── _ViewStart.cshtml
│ │ │ ├── _ViewImports.cshtml
│ │ │ ├── Home
│ │ │ │ └── Index.cshtml
│ │ │ └── Shared
│ │ │ │ ├── _Layout.cshtml
│ │ │ │ └── Error.cshtml
│ │ ├── appsettings.json
│ │ ├── appsettings.Development.json
│ │ ├── Controllers
│ │ │ ├── HomeController.cs
│ │ │ └── SampleDataController.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── ROT2UServer.csproj
│ │ └── Services
│ │ │ ├── BufferService.cs
│ │ │ └── CommsService.cs
│ ├── client
│ │ ├── typedefs
│ │ │ └── react-webcam.d.ts
│ │ ├── dto
│ │ │ ├── report.ts
│ │ │ └── face-api.ts
│ │ ├── components
│ │ │ ├── Layout.tsx
│ │ │ └── storyboard.ts
│ │ ├── routes.tsx
│ │ ├── code
│ │ │ ├── Hello.test.ts
│ │ │ └── Hello.ts
│ │ ├── store
│ │ │ └── index.ts
│ │ └── boot-client.tsx
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ └── models
│ │ │ ├── mf.blend
│ │ │ ├── u.blend
│ │ │ ├── u.blend1
│ │ │ ├── Horn.blend
│ │ │ ├── Horn.blend1
│ │ │ ├── base.blend
│ │ │ ├── base.blend1
│ │ │ ├── bug.blend
│ │ │ ├── bug.blend1
│ │ │ ├── mf.blend1
│ │ │ ├── MG996R.blend
│ │ │ ├── MG996R.blend1
│ │ │ ├── grasper_base.blend
│ │ │ ├── grasper_jaw.blend
│ │ │ ├── grasper_jaw.blend1
│ │ │ ├── grasper_base.blend1
│ │ │ └── 1.mtl
│ ├── tslint.json
│ ├── .editorconfig
│ ├── .vscode
│ │ └── tasks.json
│ ├── tsconfig.json
│ ├── .travis.yml
│ └── webpack.config.js
├── ROT2UDevice
│ ├── vhdl.json
│ ├── verilog.json
│ └── ROT2UDevice.csproj
└── ROT2UDto
│ ├── ROT2UDto.csproj
│ └── ReportDTO.cs
├── VHDL
├── pgm.cmd
├── quokka.sdc
├── Quokka.qws
├── fpu100
│ ├── readme.txt
│ └── bug_report.txt
├── IConcreteExternalPackage1_ExternalEntity.vhd
├── IFPU_OP.vhd
├── Quokka.qpf
└── IConcreteExternalPackage2_ExternalEntity.vhd
├── watch-snake.cmd
├── AES
├── AES
│ ├── verilog.cmd
│ ├── Tools
│ │ └── AssemblyInfo.cs
│ ├── AES.csproj
│ ├── rtl.verilog.json
│ ├── ShiftModule.cs
│ └── AESModule.cs
├── AES.HDL
│ ├── quokka.sdc
│ ├── Verilog.qws
│ ├── Verilog
│ │ └── generated
│ │ │ ├── BoxModule
│ │ │ ├── BoxModule_TopLevel_rconData.hex
│ │ │ └── Quokka.v
│ │ │ ├── AESModule
│ │ │ ├── AESModule_TopLevel_AESModule_box_rconData.hex
│ │ │ └── Quokka.v
│ │ │ ├── SBoxModule
│ │ │ └── Quokka.v
│ │ │ ├── ShiftModule
│ │ │ └── Quokka.v
│ │ │ ├── SBoxTestModule
│ │ │ └── Quokka.v
│ │ │ └── ShiftTestModule
│ │ │ └── Quokka.v
│ ├── templates
│ │ ├── verilog
│ │ │ └── intel
│ │ │ │ └── generic
│ │ │ │ └── ram
│ │ │ │ ├── sdp_rf
│ │ │ │ └── sdp_wf
│ │ └── vhdl
│ │ │ └── intel
│ │ │ └── generic
│ │ │ └── ram
│ │ │ ├── sdp_rf
│ │ │ └── sdp_wf
│ ├── VHDL.qpf
│ ├── Verilog.qpf
│ └── Quokka.v
└── AES.Tests
│ ├── AES.Tests.csproj
│ └── ShiftTest.cs
├── watch-indicators.cmd
├── watch-rot2u.cmd
├── SunTracker
├── SunTracker.Web
│ ├── ClientApp
│ │ ├── src
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── components
│ │ │ │ ├── Home.css
│ │ │ │ ├── NavMenu.css
│ │ │ │ ├── Layout.js
│ │ │ │ ├── Counter.js
│ │ │ │ └── Script.js
│ │ │ ├── custom.css
│ │ │ ├── App.test.js
│ │ │ ├── index.js
│ │ │ └── App.js
│ │ ├── public
│ │ │ ├── favicon.ico
│ │ │ └── manifest.json
│ │ ├── .gitignore
│ │ └── tsconfig.json
│ ├── Pages
│ │ ├── _ViewImports.cshtml
│ │ ├── Error.cshtml.cs
│ │ └── Error.cshtml
│ ├── appsettings.json
│ ├── appsettings.Development.json
│ ├── WeatherForecast.cs
│ ├── API
│ │ └── TrackerController.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ └── Controllers
│ │ └── WeatherForecastController.cs
├── SunTrackerDevice
│ ├── vhdl.json
│ ├── verilog.json
│ ├── DTOs.cs
│ └── SunTrackerDevice.csproj
└── SunTracker.Calibrate
│ └── SunTracker.Calibrate.csproj
├── watch-orbiter.cmd
├── tutorials
├── controllers
│ ├── watch.cmd
│ ├── verilog.json
│ ├── controllers.csproj
│ ├── TutorialsDataSource.cs
│ ├── T00Blinky.cs
│ ├── T01UART.cs
│ └── T02SharedUART.cs
└── hdl
│ └── verilog
│ └── generated
│ └── Tutorials
│ ├── acronyms.txt
│ └── Quokka.v
├── BumperHero
├── Quartus
│ └── BumperHero
│ │ ├── Quokka.sdc
│ │ ├── BumperHero.qws
│ │ └── BumperHero.qpf
├── BHDto
│ ├── BHDto.csproj
│ └── Objects.cs
├── BHMobile
│ ├── BHMobile.Android
│ │ ├── Resources
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── Icon.png
│ │ │ │ └── launcher_foreground.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── icon.png
│ │ │ │ └── launcher_foreground.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── Icon.png
│ │ │ │ └── launcher_foreground.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── Icon.png
│ │ │ │ └── launcher_foreground.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── Icon.png
│ │ │ │ └── launcher_foreground.png
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── icon.xml
│ │ │ │ └── icon_round.xml
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ └── layout
│ │ │ │ ├── Toolbar.axml
│ │ │ │ └── Tabbar.axml
│ │ ├── Properties
│ │ │ ├── AndroidManifest.xml
│ │ │ └── AssemblyInfo.cs
│ │ ├── Assets
│ │ │ └── AboutAssets.txt
│ │ └── MainActivity.cs
│ └── BHMobile
│ │ ├── App.xaml
│ │ ├── BHMobile.csproj
│ │ └── MainPage.xaml
└── BHDevice
│ ├── vhdl.json
│ ├── verilog.json
│ ├── BHDevice.csproj
│ └── Filters.cs
├── Docs
└── Quokka Whitepaper.pdf
├── DTOs
├── DTOs.csproj
└── DTOs.cs
├── Indicators.Tests
├── Simulator
│ ├── ISimulationIteration.cs
│ └── Transition.cs
└── Indicators.Tests.csproj
├── Fourier
├── vhdl.json
├── verilog.json
├── Fourier.csproj
└── Fourier
│ ├── Types.cs
│ ├── Diag.cs
│ ├── GeneratorTools.cs
│ └── DFT.cs
├── QuokkaCLI
├── Properties
│ └── launchSettings.json
├── QuokkaCLI.csproj
└── Program.cs
├── Orbiter
├── OrbiterDTO
│ ├── KeysDTO.cs
│ └── OrbiterDTO.csproj
├── OrbiterDevice
│ ├── vhdl.json
│ ├── verilog.json
│ └── OrbiterDevice.csproj
└── OrbiterHost
│ ├── packages.config
│ ├── App.config
│ └── Properties
│ └── AssemblyInfo.cs
├── SensorsBoard
├── Device
│ ├── vhdl.json
│ ├── verilog.json
│ └── Device.csproj
└── Quartus
│ └── SensorsBoard
│ ├── Quokka.qws
│ └── Quokka.qpf
├── OrbitalCalc
├── FPGA.OrbitalCalc
│ ├── Constants.cs
│ └── FPGA.OrbitalCalc.csproj
├── FPGA.OrbitalCalc.Controllers
│ ├── FPGA.OrbitalCalc.Controllers.csproj
│ ├── vhdl.json
│ └── verilog.json
└── FPGA.OrbitalCalc.Tests
│ ├── OrbitalCalcUnitTests.cs
│ └── FPGA.OrbitalCalc.Tests.csproj
├── Drivers
├── Drivers.csproj
├── QuokkaBoard.cs
├── IsAlive.cs
├── MG996R.cs
├── MCP49X2.cs
├── SPI.cs
├── FPU
│ └── FPUInterface.cs
└── JSON.cs
├── Indicators
├── Indicators.csproj
├── vhdl.json
├── verilog.json
├── Peripherals.cs
└── DataTypes.cs
├── KeccakTest
├── KeccakTest.csproj
├── vhdl.json
└── verilog.json
├── SnakeGame
├── SnakeGame.csproj
├── vhdl.json
├── verilog.json
├── Exceptions.cs
├── Diagnostics.cs
├── RandomValueGenerator.cs
└── DataTypes.cs
├── FunctionalTest
├── vhdl.json
├── verilog.json
├── FunctionalTest.csproj
├── CombinationalControllers.cs
├── TryControllers
│ ├── Shared
│ │ └── TryControllers_Exceptions.cs
│ ├── TryControllers_SmokeTest.cs
│ ├── Flat
│ │ ├── TryControllers_TryFinally.cs
│ │ ├── TryControllers_TryCatchAll.cs
│ │ ├── TryControllers_TryCatchExplicit.cs
│ │ ├── TryControllers_TryCatchAllFinally.cs
│ │ └── TryControllers_TryCatchExcplicitFinally.cs
│ └── Nested
│ │ ├── TryControllers_TryCatchAll_TryCatchAll.cs
│ │ ├── TryControllers_TryCatchAll_ReturnRethrow.cs
│ │ ├── TryControllers_TryCatchAll_TryCatchSome.cs
│ │ ├── TryControllers_TryCatchBase_TryCatchSome.cs
│ │ ├── TryControllers_TryCatchAllFinally_TryCatchAll.cs
│ │ └── TryControllers_TryCatchAll_TryCatchAllFinally.cs
├── FloatControllers
│ ├── FloatControllers_Cast_FloatToInt.cs
│ ├── FloatControllers_Cast_IntToFloat.cs
│ ├── FloatControllers_FloatRoundTrip.cs
│ ├── FloatControllers_FloatRoundTrip_Stream.cs
│ ├── FloatControllers_Cast_Return_Expression.cs
│ ├── FloatControllers_InferredFPU.cs
│ ├── FloatControllers_Sim.cs
│ ├── FloatControllers_FloatOp.cs
│ ├── FloatControllers_InferredFPU_Sim.cs
│ ├── FloatControllers_Cast_Inline.cs
│ └── FloatControllers_FloatRoundTrip_Loop.cs
├── BidirController.cs
├── SequentialMathControllers
│ ├── FibonacciController.cs
│ └── IsPrimeController.cs
├── DividerController.cs
├── DictionaryController.cs
└── SupportedFeaturesControllers.cs
├── Compat
└── EvaluationCompat
│ └── EvaluationCompat.csproj
├── Trigonometry
├── FPGA.Trigonometry
│ ├── FPGA.Trigonometry.csproj
│ ├── Translation.cs
│ ├── Constants.cs
│ └── Lib.cs
├── FPGA.Trigonometry.Controllers
│ ├── FPGA.Trigonometry.Controllers.csproj
│ ├── vhdl.json
│ └── verilog.json
└── FPGA.Trigonometry.Tests
│ ├── FPGA.Trigonometry.Tests.csproj
│ └── TestConverters.cs
├── VRCamera
└── VRCameraController
│ ├── vhdl.json
│ ├── verilog.json
│ └── VRCameraController.csproj
├── Verilog
└── IConcreteExternalPackage1_ExternalEntity.v
├── SnakeGame.Tests
└── SnakeGame.Tests.csproj
├── Fourier.Tests
├── ValidationTests.cs
├── Fourier.Tests.csproj
├── FFTTests.cs
├── Boilerplate.cs
├── DFTTests.cs
└── SignalTools.cs
├── Protobuf.UnitTests
└── Protobuf.UnitTests.csproj
└── run-all.cmd
/FPGAConf/.gitignore:
--------------------------------------------------------------------------------
1 | **/db/**/*
2 | config.json
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/appsettings.Production.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/typedefs/react-webcam.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'react-webcam';
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/VHDL/pgm.cmd:
--------------------------------------------------------------------------------
1 | C:\altera\91sp2\quartus\bin\quartus_pgm.exe -c 1 -m JTAG -o p;Quokka.sof
--------------------------------------------------------------------------------
/watch-snake.cmd:
--------------------------------------------------------------------------------
1 | cd QuokkaCLI
2 | dotnet run -s "..\SnakeGame\vhdl.json" -w
3 | cd ..
4 |
--------------------------------------------------------------------------------
/AES/AES/verilog.cmd:
--------------------------------------------------------------------------------
1 | dotnet run --project ../../QuokkaCLI/QuokkaCLI.csproj -- rtl.verilog.json -w
--------------------------------------------------------------------------------
/VHDL/quokka.sdc:
--------------------------------------------------------------------------------
1 | create_clock -name Clock -period 20 [get_ports Clock]
2 | derive_clock_uncertainty
--------------------------------------------------------------------------------
/watch-indicators.cmd:
--------------------------------------------------------------------------------
1 | cd QuokkaCLI
2 | dotnet run -s "..\Indicators\vhdl.json" -w
3 | cd ..
4 |
--------------------------------------------------------------------------------
/watch-rot2u.cmd:
--------------------------------------------------------------------------------
1 | cd QuokkaCLI
2 | dotnet run -s "..\Rot2U\Rot2UDevice\vhdl.json" -w
3 | cd ..
4 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/watch-orbiter.cmd:
--------------------------------------------------------------------------------
1 | cd QuokkaCLI
2 | dotnet run -s "..\Orbiter\OrbiterDevice\vhdl.json" -w
3 | cd ..
4 |
--------------------------------------------------------------------------------
/AES/AES.HDL/quokka.sdc:
--------------------------------------------------------------------------------
1 | create_clock -name Clock -period 20 [get_ports Clock]
2 | derive_clock_uncertainty
--------------------------------------------------------------------------------
/FPGAConf/fpga/quokka.sdc:
--------------------------------------------------------------------------------
1 | create_clock -name Clock -period 20 [get_ports Clock]
2 | derive_clock_uncertainty
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/watch-arty.cmd:
--------------------------------------------------------------------------------
1 | dotnet run --project ../../QuokkaCLI/QuokkaCLI.csproj -- -s arty.json -w
2 |
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/watch.cmd:
--------------------------------------------------------------------------------
1 | dotnet run --project ../../QuokkaCLI/QuokkaCLI.csproj -- -s verilog.json -w
2 |
--------------------------------------------------------------------------------
/tutorials/controllers/watch.cmd:
--------------------------------------------------------------------------------
1 | dotnet run --project ../../QuokkaCLI/QuokkaCLI.csproj -- -s verilog.json -w
2 |
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/watch-artyA35.cmd:
--------------------------------------------------------------------------------
1 | dotnet run --project ../../QuokkaCLI/QuokkaCLI.csproj -- -s artyA35.json -w
2 |
--------------------------------------------------------------------------------
/BumperHero/Quartus/BumperHero/Quokka.sdc:
--------------------------------------------------------------------------------
1 | create_clock -name Clock -period 20 [get_ports Clock]
2 | derive_clock_uncertainty
--------------------------------------------------------------------------------
/Docs/Quokka Whitepaper.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/Docs/Quokka Whitepaper.pdf
--------------------------------------------------------------------------------
/AES/AES/Tools/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly: InternalsVisibleTo("AES.Tests")]
4 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Warning"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/mf.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/mf.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/u.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/u.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/u.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/u.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/Horn.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/Horn.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/Horn.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/Horn.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/base.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/base.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/base.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/base.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/bug.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/bug.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/bug.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/bug.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/mf.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/mf.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/MG996R.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/MG996R.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/MG996R.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/MG996R.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/grasper_base.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/grasper_base.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/grasper_jaw.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/grasper_jaw.blend
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/grasper_jaw.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/grasper_jaw.blend1
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/grasper_base.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/ROT2U/ROT2UFE/wwwroot/models/grasper_base.blend1
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/Pages/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using SunTracker.Web
2 | @namespace SunTracker.Web.Pages
3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using Server
2 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
3 | @addTagHelper *, Microsoft.AspNetCore.SpaServices
4 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/SunTracker/SunTracker.Web/ClientApp/public/favicon.ico
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Warning"
5 | }
6 | },
7 | "AllowedHosts": "*"
8 | }
9 |
--------------------------------------------------------------------------------
/DTOs/DTOs.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BumperHero/BHDto/BHDto.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-hdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-hdpi/Icon.png
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-mdpi/icon.png
--------------------------------------------------------------------------------
/Indicators.Tests/Simulator/ISimulationIteration.cs:
--------------------------------------------------------------------------------
1 | namespace Quokka.Simulator
2 | {
3 | public interface ISimulationIteration
4 | {
5 | uint Iteration { get; set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xhdpi/Icon.png
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxhdpi/Icon.png
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxxhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxxhdpi/Icon.png
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Views/Home/Index.cshtml:
--------------------------------------------------------------------------------
1 |
Loading...
2 |
3 |
6 |
7 |
--------------------------------------------------------------------------------
/VHDL/Quokka.qws:
--------------------------------------------------------------------------------
1 | [ProjectWorkspace]
2 | ptn_Child1=Frames
3 | [ProjectWorkspace.Frames]
4 | ptn_Child1=ChildFrames
5 | [ProjectWorkspace.Frames.ChildFrames]
6 | ptn_Child1=Document-0
7 | ptn_Child2=Document-1
8 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["tslint:latest", "tslint-react"],
3 | "rules": {
4 | // override tslint-react rules here
5 | "jsx-wrap-multiline": false,
6 | "quotemark": false
7 | }
8 | }
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog.qws:
--------------------------------------------------------------------------------
1 | [ProjectWorkspace]
2 | ptn_Child1=Frames
3 | [ProjectWorkspace.Frames]
4 | ptn_Child1=ChildFrames
5 | [ProjectWorkspace.Frames.ChildFrames]
6 | ptn_Child1=Document-0
7 | ptn_Child2=Document-1
8 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/dto/report.ts:
--------------------------------------------------------------------------------
1 | export class ReportDTO {
2 | public colors: number[] = [];
3 | public servos: number[] = [];
4 | }
5 |
6 | export class ImageDTO {
7 | public Base64Image: string = "";
8 | }
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/BoxModule/BoxModule_TopLevel_rconData.hex:
--------------------------------------------------------------------------------
1 | 8D // @0
2 | 01 // @1
3 | 02 // @2
4 | 04 // @3
5 | 08 // @4
6 | 10 // @5
7 | 20 // @6
8 | 40 // @7
9 | 80 // @8
10 | 1B // @9
11 | 36 // @A
12 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-hdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-hdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-mdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-mdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Debug",
5 | "System": "Information",
6 | "Microsoft": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xhdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xhdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxhdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EvgenyMuryshkin/QuokkaEvaluation/HEAD/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Debug",
5 | "System": "Information",
6 | "Microsoft": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/AESModule/AESModule_TopLevel_AESModule_box_rconData.hex:
--------------------------------------------------------------------------------
1 | 8D // @0
2 | 01 // @1
3 | 02 // @2
4 | 04 // @3
5 | 08 // @4
6 | 10 // @5
7 | 20 // @6
8 | 40 // @7
9 | 80 // @8
10 | 1B // @9
11 | 36 // @A
12 |
--------------------------------------------------------------------------------
/BumperHero/Quartus/BumperHero/BumperHero.qws:
--------------------------------------------------------------------------------
1 | [ProjectWorkspace]
2 | ptn_Child1=Frames
3 | [ProjectWorkspace.Frames]
4 | ptn_Child1=ChildFrames
5 | [ProjectWorkspace.Frames.ChildFrames]
6 | ptn_Child1=Document-0
7 | ptn_Child2=Document-1
8 |
--------------------------------------------------------------------------------
/Fourier/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Fourier",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "VHDL",
10 | "ProjectLocation": "../VHDL"
11 | }
--------------------------------------------------------------------------------
/Fourier/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Fourier",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../Verilog"
11 | }
--------------------------------------------------------------------------------
/QuokkaCLI/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Quokka.LocalCLI": {
4 | "commandName": "Project",
5 | "commandLineArgs": "-s C:\\code\\QuokkaEvaluation\\SensorsBoard\\Device\\verilog.json"
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/Orbiter/OrbiterDTO/KeysDTO.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using System;
3 |
4 | namespace OrbiterDTO
5 | {
6 | public struct KeysDTO
7 | {
8 | public KeypadKeyCode KeyCode;
9 | public ushort X;
10 | public ushort Y;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/SensorsBoard/Device/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "SensorsBoard",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "VHDL",
10 | "ProjectLocation": "../VHDL"
11 | }
--------------------------------------------------------------------------------
/SunTracker/SunTrackerDevice/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Sun",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "VHDL",
10 | "ProjectLocation": "../../VHDL"
11 | }
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/arty.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Conf",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../arty/Verilog"
11 | }
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Conf",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../fpga/Verilog"
11 | }
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/components/Layout.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export class Layout extends React.Component<{}, {}> {
4 | public render() {
5 | return
6 | { this.props.children }
7 |
;
8 | }
9 | }
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/artyA35.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Conf",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../artyA35/Verilog"
11 | }
--------------------------------------------------------------------------------
/SensorsBoard/Device/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "SensorsBoard",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../Verilog"
11 | }
--------------------------------------------------------------------------------
/SunTracker/SunTrackerDevice/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Sun",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../../Verilog"
11 | }
--------------------------------------------------------------------------------
/tutorials/controllers/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Tutorials",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "HDL": "Verilog",
10 | "ProjectLocation": "../hdl/verilog"
11 | }
--------------------------------------------------------------------------------
/AES/AES.HDL/templates/verilog/intel/generic/ram/sdp_rf:
--------------------------------------------------------------------------------
1 | // inferred simple dual port RAM with read-first behaviour
2 | always @ (posedge <>)
3 | begin
4 | if (<>)
5 | <>[<>] <= <>;
6 |
7 | <> <= <>[<>];
8 | end
--------------------------------------------------------------------------------
/AES/AES.HDL/templates/verilog/intel/generic/ram/sdp_wf:
--------------------------------------------------------------------------------
1 | // inferred simple dual port RAM with write-first behaviour
2 | always @ (posedge <>)
3 | begin
4 | if (<>)
5 | <>[<>] = <>;
6 |
7 | <> <= <>[<>];
8 | end
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc/Constants.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace FPGA.OrbitalCalc
4 | {
5 | public static class FPGAOrbitalCalcConstants
6 | {
7 | public const float G = (float)(6.67430e-11);
8 | public const float TwoG = 2 * G;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/routes.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { Route } from 'react-router-dom';
3 | import { Layout } from './components/Layout';
4 | import LED from './components/LED';
5 |
6 | export const routes =
7 |
8 | ;
--------------------------------------------------------------------------------
/Fourier/Fourier.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 4
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.md]
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/SunTracker/SunTrackerDevice/DTOs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace SunTrackerDevice
6 | {
7 | public struct SetServos
8 | {
9 | public byte autoRun;
10 | public byte s0, s1, s2, s3;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Drivers/Drivers.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Indicators/Indicators.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/KeccakTest/KeccakTest.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UDevice/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "ROT2U",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../../VHDL"
15 | }
--------------------------------------------------------------------------------
/SnakeGame/SnakeGame.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/components/Home.css:
--------------------------------------------------------------------------------
1 | .servo-value-slider {
2 | width: 700px;
3 | height: 25px;
4 | padding: 5px;
5 | }
6 |
7 | .servo-value {
8 | width: 50px;
9 | height: 25px;
10 | padding: 5px;
11 | }
12 |
13 | .script-run {
14 | display: block;
15 | }
--------------------------------------------------------------------------------
/Orbiter/OrbiterDevice/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Orbiter",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../../VHDL"
15 | }
--------------------------------------------------------------------------------
/ROT2U/ROT2UDto/ROT2UDto.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/wwwroot/models/1.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'None'
2 | # Material Count: 1
3 |
4 | newmtl Material
5 | Ns 96.078431
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.640000 0.640000 0.640000
8 | Ks 0.500000 0.500000 0.500000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/custom.css:
--------------------------------------------------------------------------------
1 | /* Provide sufficient contrast against white background */
2 | a {
3 | color: #0366d6;
4 | }
5 |
6 | code {
7 | color: #E01A76;
8 | }
9 |
10 | .btn-primary {
11 | color: #fff;
12 | background-color: #1b6ec2;
13 | border-color: #1861ac;
14 | }
15 |
--------------------------------------------------------------------------------
/FPGAConf/ConfDevice/ConfDevice.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Orbiter/OrbiterDTO/OrbiterDTO.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Orbiter/OrbiterDevice/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Orbiter",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../../Verilog"
15 | }
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/code/Hello.test.ts:
--------------------------------------------------------------------------------
1 | declare var jest, describe, it, expect;
2 |
3 | import { Hello } from './Hello';
4 |
5 | describe('Hello Class', () => {
6 | it('should throw an error', () => {
7 | expect.assertions(1);
8 | expect(() => new Hello()).toThrowError('Hello error!')
9 | });
10 | });
--------------------------------------------------------------------------------
/tutorials/controllers/controllers.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Indicators/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Indicators",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../VHDL"
15 | }
--------------------------------------------------------------------------------
/KeccakTest/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "KeccakTests",
3 | "Configurations": [
4 | {
5 | "Name": "NEB",
6 | "ClockFrequency": 24000000
7 | },
8 | {
9 | "Name": "BIG",
10 | "ClockFrequency": 24000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../VHDL"
15 | }
--------------------------------------------------------------------------------
/FunctionalTest/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "FncTests",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "NEB",
10 | "ClockFrequency": 24000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../VHDL"
15 | }
--------------------------------------------------------------------------------
/SnakeGame/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "SnakeGame",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../VHDL"
15 | }
16 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Compat/EvaluationCompat/EvaluationCompat.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/FunctionalTest/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "FncTests",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "NEB",
10 | "ClockFrequency": 24000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../Verilog"
15 | }
--------------------------------------------------------------------------------
/Indicators/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Indicators",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../Verilog"
15 | }
--------------------------------------------------------------------------------
/KeccakTest/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "KeccakTests",
3 | "Configurations": [
4 | {
5 | "Name": "NEB",
6 | "ClockFrequency": 24000000
7 | },
8 | {
9 | "Name": "BIG",
10 | "ClockFrequency": 24000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../Verilog"
15 | }
--------------------------------------------------------------------------------
/SnakeGame/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "SnakeGame",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../Verilog"
15 | }
--------------------------------------------------------------------------------
/SunTracker/SunTrackerDevice/SunTrackerDevice.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry/FPGA.Trigonometry.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/BumperHero/BHDevice/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "BumperHero",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../../VHDL"
15 | }
--------------------------------------------------------------------------------
/ROT2U/ROT2UDevice/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "ROT2U",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../../Verilog"
15 | }
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-anydpi-v26/icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/QuokkaCLI/QuokkaCLI.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | netcoreapp3.1
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/BumperHero/BHDevice/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "BumperHero",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../../Verilog"
15 | }
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/mipmap-anydpi-v26/icon_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 | #3F51B5
5 | #303F9F
6 | #FF4081
7 |
8 |
--------------------------------------------------------------------------------
/VRCamera/VRCameraController/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "VRCameraController",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "VHDL",
14 | "ProjectLocation": "../../VHDL"
15 | }
--------------------------------------------------------------------------------
/VRCamera/VRCameraController/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "VRCameraController",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Test",
10 | "ClockFrequency": 50000000
11 | }
12 | ],
13 | "HDL": "Verilog",
14 | "ProjectLocation": "../../Verilog"
15 | }
--------------------------------------------------------------------------------
/AES/AES/AES.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/AES/AES.HDL/templates/vhdl/intel/generic/ram/sdp_rf:
--------------------------------------------------------------------------------
1 | -- inferred simple dual port RAM with read-first behaviour
2 | process (<>)
3 | begin
4 | if rising_edge(<>) then
5 | if (<> = '1') then
6 | <>(TO_INTEGER(<>)) <= <>;
7 | end if;
8 | <> <= <>(TO_INTEGER(<>));
9 | end if;
10 | end process;
--------------------------------------------------------------------------------
/AES/AES/rtl.verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "Modules",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | }
8 | ],
9 | "RTL": {
10 | "TemplatesPath": "../AES.HDL/templates",
11 | "Vendor": "intel",
12 | "Device": "generic"
13 | },
14 | "HDL": "Verilog",
15 | "ProjectLocation": "../AES.HDL/Verilog/generated"
16 | }
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/components/NavMenu.css:
--------------------------------------------------------------------------------
1 | a.navbar-brand {
2 | white-space: normal;
3 | text-align: center;
4 | word-break: break-all;
5 | }
6 |
7 | html {
8 | font-size: 14px;
9 | }
10 | @media (min-width: 768px) {
11 | html {
12 | font-size: 16px;
13 | }
14 | }
15 |
16 | .box-shadow {
17 | box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
18 | }
19 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Properties/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/WeatherForecast.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SunTracker.Web
4 | {
5 | public class WeatherForecast
6 | {
7 | public DateTime Date { get; set; }
8 |
9 | public int TemperatureC { get; set; }
10 |
11 | public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
12 |
13 | public string Summary { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [
4 | {
5 | "taskName": "build",
6 | "command": "dotnet",
7 | "type": "process",
8 | "args": [
9 | "build",
10 | "${workspaceFolder}/server.csproj"
11 | ],
12 | "problemMatcher": "$msCompile"
13 | }
14 | ]
15 | }
--------------------------------------------------------------------------------
/SensorsBoard/Device/Device.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # testing
7 | /coverage
8 |
9 | # production
10 | /build
11 |
12 | # misc
13 | .DS_Store
14 | .env.local
15 | .env.development.local
16 | .env.test.local
17 | .env.production.local
18 |
19 | npm-debug.log*
20 | yarn-debug.log*
21 | yarn-error.log*
22 |
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc/FPGA.OrbitalCalc.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UDevice/ROT2UDevice.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc.Controllers/FPGA.OrbitalCalc.Controllers.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "SunTracker.Web",
3 | "name": "SunTracker.Web",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": "./index.html",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc.Controllers/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "OrbitalCalc",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Sim",
10 | "ClockFrequency": 100000
11 | },
12 | {
13 | "Name": "NEB",
14 | "ClockFrequency": 24000000
15 | }
16 | ],
17 | "HDL": "VHDL",
18 | "ProjectLocation": "../../VHDL"
19 | }
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry.Controllers/FPGA.Trigonometry.Controllers.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry.Controllers/vhdl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "TrigTests",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Sim",
10 | "ClockFrequency": 100000
11 | },
12 | {
13 | "Name": "NEB",
14 | "ClockFrequency": 24000000
15 | }
16 | ],
17 | "HDL": "VHDL",
18 | "ProjectLocation": "../../VHDL"
19 | }
--------------------------------------------------------------------------------
/VRCamera/VRCameraController/VRCameraController.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc.Controllers/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "OrbitalCalc",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Sim",
10 | "ClockFrequency": 100000
11 | },
12 | {
13 | "Name": "NEB",
14 | "ClockFrequency": 24000000
15 | }
16 | ],
17 | "HDL": "Verilog",
18 | "ProjectLocation": "../../Verilog"
19 | }
--------------------------------------------------------------------------------
/ROT2U/ROT2UDto/ReportDTO.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 |
4 | namespace LEDDto
5 | {
6 | public class ReportDTO
7 | {
8 | [JsonProperty(PropertyName = "colors")]
9 | public uint[] Colors { get; set; }
10 |
11 | [JsonProperty(PropertyName = "servos")]
12 | public uint[] Servos { get; set; }
13 | }
14 |
15 | public class ImageDTO
16 | {
17 | public string Base64Image { get; set; }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry.Controllers/verilog.json:
--------------------------------------------------------------------------------
1 | {
2 | "Project": "TrigTests",
3 | "Configurations": [
4 | {
5 | "Name": "Quokka",
6 | "ClockFrequency": 50000000
7 | },
8 | {
9 | "Name": "Sim",
10 | "ClockFrequency": 100000
11 | },
12 | {
13 | "Name": "NEB",
14 | "ClockFrequency": 24000000
15 | }
16 | ],
17 | "HDL": "Verilog",
18 | "ProjectLocation": "../../Verilog"
19 | }
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry/Translation.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Linq;
4 |
5 | namespace FPGA.Trigonometry
6 | {
7 | [OnTranslation]
8 | public static class FPGATrigonometryTranslation
9 | {
10 | public static float[] FactorialArray()
11 | {
12 | return Enumerable.Range(0, 10).Select(i => (float)SequentialMath.Factorial(i)).ToArray();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Indicators.Tests/Simulator/Transition.cs:
--------------------------------------------------------------------------------
1 | namespace Quokka.Simulator
2 | {
3 | public class Transition
4 | {
5 | public Transition(uint iteration, T from, T to)
6 | {
7 | Iteration = iteration;
8 | From = from;
9 | To = to;
10 | }
11 |
12 | public uint Iteration { get; set; }
13 | public T From { get; set; }
14 | public T To { get; set; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Fourier/Fourier/Types.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace FPGA.Fourier
4 | {
5 | public struct ComplexFloat
6 | {
7 | public float Re;
8 | public float Im;
9 |
10 | public override string ToString()
11 | {
12 | return $"{Re} {(Im >= 0 ? "+" : "-")} {Math.Abs(Im)}i";
13 | }
14 | }
15 |
16 | public enum Direction
17 | {
18 | Forward = 1,
19 | Backward = -1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VHDL/fpu100/readme.txt:
--------------------------------------------------------------------------------
1 | The Compilation order is:
2 |
3 | fpupack.vhd
4 | pre_norm_addsub.vhd
5 | addsub_28.vhd
6 | post_norm_addsub.vhd
7 | pre_norm_mul.vhd
8 | mul_24.vhd
9 | vcom serial_mul.vhd
10 | post_norm_mul.vhd
11 | pre_norm_div.vhd
12 | serial_div.vhd
13 | post_norm_div.vhd
14 | pre_norm_sqrt.vhd
15 | sqrt.vhd
16 | post_norm_sqrt.vhd
17 | comppack.vhd
18 | fpu.vhd
19 |
20 | ***For simulation ****
21 | To run the simulation read readme.txt in folder test_bench.
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import { MemoryRouter } from 'react-router-dom';
4 | import App from './App';
5 |
6 | it('renders without crashing', async () => {
7 | const div = document.createElement('div');
8 | ReactDOM.render(
9 |
10 |
11 | , div);
12 | await new Promise(resolve => setTimeout(resolve, 1000));
13 | });
14 |
--------------------------------------------------------------------------------
/FunctionalTest/FunctionalTest.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/layout/Toolbar.axml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
--------------------------------------------------------------------------------
/AES/AES.HDL/templates/vhdl/intel/generic/ram/sdp_wf:
--------------------------------------------------------------------------------
1 | -- inferred simple dual port RAM with write-first behaviour
2 | signal <>_reg: unsigned(<> downto 1);
3 | process (<>)
4 | begin
5 | if rising_edge(<>) then
6 | if (<> = '1') then
7 | <>(TO_INTEGER(<>)) <= <>;
8 | end if;
9 | <>_reg <= <>;
10 | end if;
11 | <> <= <>(TO_INTEGER(<>_reg));
12 | end process;
--------------------------------------------------------------------------------
/BumperHero/BHDevice/BHDevice.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/BumperHero/BHDto/Objects.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace BHDto
4 | {
5 | public enum ProximityState : byte
6 | {
7 | Measuring,
8 | Safe,
9 | Warning,
10 | Alert
11 | }
12 |
13 | public struct ReportDTO
14 | {
15 | public ushort Idx;
16 | public ushort Cur;
17 | public ushort Ave;
18 | public ushort Max;
19 | public ProximityState Prx;
20 | public ushort Gone;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/SnakeGame/Exceptions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace SnakeGame
6 | {
7 | public class SnakeGameException : Exception { }
8 |
9 | public class CrashedException : SnakeGameException { }
10 |
11 | public class CrashedInWallException : CrashedException { }
12 |
13 | public class CrashedInSnakeException : CrashedException { }
14 |
15 | public class GameCompletedException : SnakeGameException { }
16 | }
17 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/components/Layout.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { Container } from 'reactstrap';
3 | import { NavMenu } from './NavMenu';
4 |
5 | export class Layout extends Component {
6 | static displayName = Layout.name;
7 |
8 | render () {
9 | return (
10 |
11 |
12 |
13 | {this.props.children}
14 |
15 |
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Orbiter/OrbiterDevice/OrbiterDevice.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Verilog/IConcreteExternalPackage1_ExternalEntity.v:
--------------------------------------------------------------------------------
1 | // first implementation
2 | module work_IConcreteExternalPackage1_ExternalEntity (
3 | Clock,
4 | Reset,
5 | InSignal,
6 | OutSignal,
7 | InTrigger,
8 | OutReady
9 | );
10 | input wire Clock;
11 | input wire Reset;
12 | input wire unsigned [8:1] InSignal;
13 | output wire unsigned [8:1] OutSignal;
14 | input wire InTrigger;
15 | output wire OutReady;
16 |
17 | assign OutSignal = InSignal + 1;
18 | assign OutReady = 1;
19 | endmodule
20 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "module": "es2015",
5 | "moduleResolution": "node",
6 | "target": "es6",
7 | "jsx": "react",
8 | "experimentalDecorators": true,
9 | "sourceMap": true,
10 | "skipDefaultLibCheck": true,
11 | "strict": false,
12 | "lib": ["es6", "dom"],
13 | "types": ["webpack-env"],
14 | "noImplicitAny": false
15 | },
16 | "exclude": [
17 | "bin",
18 | "node_modules"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Views/Shared/_Layout.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | @ViewData["Title"] - Server
7 |
8 |
9 |
10 |
11 |
12 |
13 | @RenderBody()
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry/Constants.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace FPGA.Trigonometry
4 | {
5 | public static class FPGATrigonometryConstants
6 | {
7 | public const float TwoPI = (float)(2 * Math.PI);
8 | public const float PI = (float)Math.PI;
9 | public const float HalfPI = (float)(Math.PI / 2);
10 | public const float ThreeHalfPI = (float)(3 * Math.PI / 2);
11 |
12 | public static float[] Factorials = FPGATrigonometryTranslation.FactorialArray();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: required
2 | dist: trusty
3 | language: node_js
4 | node_js:
5 | - '9'
6 | addons:
7 | apt:
8 | packages:
9 | - libunwind8
10 | os:
11 | - linux
12 | - osx
13 | osx_image: xcode9.3
14 | before_install:
15 | - export DOTNET_INSTALL_DIR="$PWD/.dotnetcli"
16 | - git clone https://github.com/dotnet/cli.git
17 | - ./cli/scripts/obtain/dotnet-install.sh --channel release/2.1 --install-dir "$DOTNET_INSTALL_DIR"
18 | - export PATH="$DOTNET_INSTALL_DIR:$PATH"
19 | script:
20 | - npm run publish
21 |
--------------------------------------------------------------------------------
/FunctionalTest/CombinationalControllers.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Collections;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Controllers
9 | {
10 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
11 | public static class CombinationalControllers
12 | {
13 | public static ulong Aggregator(uint a, uint b)
14 | {
15 | BitArray arr;
16 | return a * b;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/API/TrackerController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using Microsoft.AspNetCore.Http;
6 | using Microsoft.AspNetCore.Mvc;
7 |
8 | namespace SunTracker.Web.API
9 | {
10 | [Route("api/[controller]")]
11 | [ApiController]
12 | public class TrackerController : ControllerBase
13 | {
14 | [HttpGet("test")]
15 | public IActionResult Test()
16 | {
17 | return Ok("123");
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Calibrate/SunTracker.Calibrate.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | netcoreapp3.1
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tutorials/controllers/TutorialsDataSource.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System.Text;
3 |
4 | namespace Tutorials
5 | {
6 | [OnTranslation]
7 | public static class TutorialsDataSource
8 | {
9 | public static byte[] HelloWorldBytes()
10 | {
11 | return Encoding.ASCII.GetBytes("Hello World!\n");
12 | }
13 |
14 | public static byte[] HelloWorldBytesFromHandler(uint index)
15 | {
16 | return Encoding.ASCII.GetBytes($"{index}: Hello World from handler!\n");
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Shared/TryControllers_Exceptions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Controllers
6 | {
7 | public class Exception1 : Exception { }
8 |
9 | public class Exception2 : Exception { }
10 |
11 | public class Exception3 : Exception { }
12 |
13 | public class Exception4 : Exception { }
14 |
15 | public class BaseException : Exception { }
16 |
17 | public class DerivedException1 : BaseException { }
18 |
19 | public class DerivedException2 : BaseException { }
20 | }
21 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/dto/face-api.ts:
--------------------------------------------------------------------------------
1 | export interface IFaceAPIResponse {
2 | faceAttributes: {
3 | emotion: {
4 | anger: number,
5 | contempt: number,
6 | disgust: number,
7 | fear: number,
8 | happiness: number,
9 | neutral: number,
10 | sadness: number,
11 | surprise: number
12 | }
13 | age: number,
14 | },
15 | faceRectangle: {
16 | top: number,
17 | left: number,
18 | bottom: number,
19 | right: number
20 | }
21 | }
--------------------------------------------------------------------------------
/Orbiter/OrbiterHost/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/layout/Tabbar.axml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/Drivers/QuokkaBoard.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Drivers
6 | {
7 | public static class QuokkaBoard
8 | {
9 | public static void InputBank(FPGA.OutputSignal bank)
10 | {
11 | FPGA.Config.Default(out bank, false);
12 | FPGA.Config.Suppress("W0002", bank);
13 | }
14 |
15 | public static void OutputBank(FPGA.OutputSignal bank)
16 | {
17 | FPGA.Config.Default(out bank, true);
18 | FPGA.Config.Suppress("W0002", bank);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FPGAConf/ConfHost/ConfHost.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | netcoreapp3.1
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/index.js:
--------------------------------------------------------------------------------
1 | import 'bootstrap/dist/css/bootstrap.css';
2 | import React from 'react';
3 | import ReactDOM from 'react-dom';
4 | import { BrowserRouter } from 'react-router-dom';
5 | import App from './App';
6 | import registerServiceWorker from './registerServiceWorker';
7 |
8 | const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');
9 | const rootElement = document.getElementById('root');
10 |
11 | ReactDOM.render(
12 |
13 |
14 | ,
15 | rootElement);
16 |
17 | registerServiceWorker();
18 |
19 |
--------------------------------------------------------------------------------
/Drivers/IsAlive.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Drivers
7 | {
8 | public static class IsAlive
9 | {
10 | public static void Blink(FPGA.OutputSignal LED)
11 | {
12 | bool internalAlive = false;
13 | FPGA.Config.Link(internalAlive, LED);
14 |
15 | Sequential aliveHandler = () =>
16 | {
17 | internalAlive = !internalAlive;
18 | };
19 |
20 | FPGA.Config.OnTimer(TimeSpan.FromSeconds(1), aliveHandler);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Orbiter/OrbiterHost/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Indicators.Tests/Indicators.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/SnakeGame.Tests/SnakeGame.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Fourier.Tests/ValidationTests.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.TestTools.UnitTesting;
2 | using System;
3 |
4 | namespace Fourier.Tests
5 | {
6 | [TestClass]
7 | public class ValidationTests
8 | {
9 | [TestMethod]
10 | public void FloatAreEqual()
11 | {
12 | Validation.AssertFloatEqual(1f, 1f + Validation.Epsilon * 0.9f);
13 | }
14 |
15 | [TestMethod]
16 | public void FloatAreNotEqual()
17 | {
18 | Assert.ThrowsException(() => Validation.AssertFloatEqual(1f, 1f + Validation.Epsilon * 1.1f));
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Controllers/HomeController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Microsoft.AspNetCore.Mvc;
7 |
8 | namespace Server.Controllers
9 | {
10 | public class HomeController : Controller
11 | {
12 | public IActionResult Index()
13 | {
14 | return View();
15 | }
16 |
17 | public IActionResult Error()
18 | {
19 | ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
20 | return View();
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "noEmit": true,
20 | "jsx": "preserve"
21 | },
22 | "include": [
23 | "src"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/VHDL/fpu100/bug_report.txt:
--------------------------------------------------------------------------------
1 | ==fpu_v16==
2 | 1) Corrected an embarrassing sytax error in "tb_fpu.vhd": start_i <= 0 to start_i <= '0'
3 | 2) In "serial_div.vhd" and "sqrt.vhd": unused bits in some signals were initialized.
4 | 3)Not need line in "fpusim.bat" was removed.
5 |
6 | ==fpu_v17==
7 | 1)Corrected bug related to adding two denormalized operands.
8 |
9 | ==fpu_v18==
10 | 1)post_norm_addsub.vhd: Restructured and fixed a bug
11 | 2)fpu.vhd: Altered add/sub COUNT
12 | 3)tb_fpu.vhd: Added some boundary values.
13 |
14 | ==fpu_v19== 26. April 2007
15 | 1)A minor bug was found and corrected when the serial multiplier is used (thanks to Chris Basson!)
16 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/code/Hello.ts:
--------------------------------------------------------------------------------
1 | interface FooInterface {
2 | foo: string;
3 | bar: number; // This interface should be stripped and the line numbers should still fit.
4 | }
5 |
6 | export class Hello {
7 | constructor() {
8 | const greeting = `
9 | this
10 | is
11 | a
12 | multiline
13 | greeting
14 | `;
15 |
16 | this.unexcuted(() => {});
17 |
18 | throw new Error('Hello error!');
19 | }
20 |
21 | public unexcuted(action: () => void = () => {}): void { // tslint:disable-line
22 | if (action) {
23 | action();
24 | } else {
25 | console.log('unexcuted');
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/TryControllers_SmokeTest.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_SmokeTest
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.SmokeTest);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Flat/TryControllers_TryFinally.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryFinally
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryFinally);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Flat/TryControllers_TryCatchAll.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAll
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAll);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AES/AES.Tests/AES.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Flat/TryControllers_TryCatchExplicit.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchExplicit
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchExplicit);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FPGAConf/fpga/Quokka.qws:
--------------------------------------------------------------------------------
1 | [ProjectWorkspace]
2 | ptn_Child1=Frames
3 | [ProjectWorkspace.Frames]
4 | ptn_Child1=ChildFrames
5 | [ProjectWorkspace.Frames.ChildFrames]
6 | ptn_Child1=Document-0
7 | ptn_Child2=Document-1
8 | ptn_Child3=Document-2
9 | [ProjectWorkspace.Frames.ChildFrames.Document-1]
10 | ptn_Child1=ViewFrame-0
11 | [ProjectWorkspace.Frames.ChildFrames.Document-1.ViewFrame-0]
12 | DocPathName=Verilog/generated/Conf/Quokka_MainController_TopLevel.v
13 | DocumentCLSID={84678d98-dc76-11d0-a0d8-0020affa5bde}
14 | IsChildFrameDetached=False
15 | IsActiveChildFrame=False
16 | ptn_Child1=StateMap
17 | [ProjectWorkspace.Frames.ChildFrames.Document-1.ViewFrame-0.StateMap]
18 | AFC_IN_REPORT=False
19 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Flat/TryControllers_TryCatchAllFinally.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAllFinally
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAllFinally);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Fourier/Fourier/Diag.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace FPGA.Fourier
7 | {
8 | public enum FPUTimingType : byte
9 | {
10 | None,
11 | Add,
12 | Sub,
13 | Mul,
14 | Div
15 | }
16 |
17 | public static class Diag
18 | {
19 | [Inlined]
20 | public static void ClockCounter(FPGA.Register value)
21 | {
22 | Func nextClockCounter = () => value + 1;
23 | Func clockCounterWE = () => true;
24 |
25 | FPGA.Config.RegisterOverride(value, nextClockCounter, clockCounterWE);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Nested/TryControllers_TryCatchAll_TryCatchAll.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAll_TryCatchAll
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAll_TryCatchAll);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/tutorials/controllers/T00Blinky.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System;
5 | using System.Threading.Tasks;
6 |
7 | namespace Tutorials
8 | {
9 | [BoardConfig(Name = "Quokka")]
10 | public static class T00BlinkyController
11 | {
12 | public static async Task Aggregator(OutputSignal LED1)
13 | {
14 | bool internalAlive = false;
15 | Config.Link(internalAlive, LED1);
16 |
17 | Sequential aliveHandler = () =>
18 | {
19 | internalAlive = !internalAlive;
20 | };
21 |
22 | Config.OnTimer(TimeSpan.FromSeconds(1), aliveHandler);
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Flat/TryControllers_TryCatchExcplicitFinally.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchExcplicitFinally
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchExplicitFinally);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Nested/TryControllers_TryCatchAll_ReturnRethrow.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAll_ReturnRethrow
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAll_ReturnRethrow);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Nested/TryControllers_TryCatchAll_TryCatchSome.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAll_TryCatchSome
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAll_TryCatchSome);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Nested/TryControllers_TryCatchBase_TryCatchSome.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchBase_TryCatchSome
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchBase_TryCatchSome);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VHDL/IConcreteExternalPackage1_ExternalEntity.vhd:
--------------------------------------------------------------------------------
1 | -- first implementation
2 | library ieee;
3 | use ieee.std_logic_1164.all;
4 | use ieee.numeric_std.all;
5 |
6 | entity IConcreteExternalPackage1_ExternalEntity is
7 | port(
8 | Clock: in std_logic;
9 | Reset: in std_logic;
10 | InSignal: in unsigned(8 downto 1);
11 | OutSignal: out unsigned(8 downto 1);
12 | InTrigger: in std_logic;
13 | OutReady: out std_logic
14 | );
15 | end entity IConcreteExternalPackage1_ExternalEntity;
16 |
17 | architecture rtl of IConcreteExternalPackage1_ExternalEntity is
18 |
19 | begin
20 | -- forward incoming data to output, always ready
21 | OutSignal <= InSignal + 1;
22 | OutReady <= '1';
23 | end architecture rtl;
24 |
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc.Tests/OrbitalCalcUnitTests.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.TestTools.UnitTesting;
2 |
3 | namespace FPGA.OrbitalCalc.Tests
4 | {
5 | [TestClass]
6 | public class UnitTests
7 | {
8 | [TestMethod]
9 | public void VInclination()
10 | {
11 | var R = 6371e+3f;
12 | var M = 5.972e+24f;
13 | var Inc = 0.4974188f;
14 | var nonOptimized = FPGAOrbitalCalc.DeltaVInclinationOrbit(M, R + 100e+3f, R + 1000e3f, Inc);
15 | var optimized = FPGAOrbitalCalc.DeltaVInclinationOrbitOptimized(M, R + 100e+3f, R + 1000e3f, Inc);
16 |
17 | Assert.AreEqual(nonOptimized, optimized);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using Microsoft.AspNetCore;
6 | using Microsoft.AspNetCore.Hosting;
7 | using Microsoft.Extensions.Configuration;
8 | using Microsoft.Extensions.Logging;
9 |
10 | namespace SunTracker.Web
11 | {
12 | public class Program
13 | {
14 | public static void Main(string[] args)
15 | {
16 | CreateWebHostBuilder(args).Build().Run();
17 | }
18 |
19 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
20 | WebHost.CreateDefaultBuilder(args)
21 | .UseStartup();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/store/index.ts:
--------------------------------------------------------------------------------
1 | // The top-level state object
2 | export interface ApplicationState {
3 | }
4 |
5 | // Whenever an action is dispatched, Redux will update each top-level application state property using
6 | // the reducer with the matching name. It's important that the names match exactly, and that the reducer
7 | // acts on the corresponding ApplicationState property type.
8 | export const reducers = {
9 | };
10 |
11 | // This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are
12 | // correctly typed to match your store.
13 | export interface AppThunkAction {
14 | (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;
15 | }
16 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Assets/AboutAssets.txt:
--------------------------------------------------------------------------------
1 | Any raw assets you want to be deployed with your application can be placed in
2 | this directory (and child directories) and given a Build Action of "AndroidAsset".
3 |
4 | These files will be deployed with you package and will be accessible using Android's
5 | AssetManager, like this:
6 |
7 | public class ReadAsset : Activity
8 | {
9 | protected override void OnCreate (Bundle bundle)
10 | {
11 | base.OnCreate (bundle);
12 |
13 | InputStream input = Assets.Open ("my_asset.txt");
14 | }
15 | }
16 |
17 | Additionally, some Android functions will automatically load asset files:
18 |
19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
20 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Nested/TryControllers_TryCatchAllFinally_TryCatchAll.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAllFinally_TryCatchAll
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAllFinally_TryCatchAll);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/FunctionalTest/TryControllers/Nested/TryControllers_TryCatchAll_TryCatchAllFinally.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Controllers
6 | {
7 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
8 | public static class TryControllers_TryCatchAll_TryCatchAllFinally
9 | {
10 | public static async Task Aggregator(
11 | FPGA.InputSignal RXD,
12 | FPGA.OutputSignal TXD
13 | )
14 | {
15 | TryControllers_Blocks.Bootstrap(
16 | RXD,
17 | TXD,
18 | Controllers.TryControllers_Blocks.TryCatchAll_TryCatchAllFinally);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/SensorsBoard/Quartus/SensorsBoard/Quokka.qws:
--------------------------------------------------------------------------------
1 | [ProjectWorkspace]
2 | ptn_Child1=Frames
3 | [ProjectWorkspace.Frames]
4 | ptn_Child1=ChildFrames
5 | [ProjectWorkspace.Frames.ChildFrames]
6 | ptn_Child1=Document-0
7 | ptn_Child2=Document-1
8 | ptn_Child3=Document-2
9 | ptn_Child4=Document-3
10 | [ProjectWorkspace.Frames.ChildFrames.Document-1]
11 | ptn_Child1=ViewFrame-0
12 | [ProjectWorkspace.Frames.ChildFrames.Document-1.ViewFrame-0]
13 | DocPathName=generated/SensorsBoard/Quokka_Device_TopLevel.vhdl
14 | DocumentCLSID={ca385d57-a4c7-11d1-a098-0020affa43f2}
15 | IsChildFrameDetached=False
16 | IsActiveChildFrame=False
17 | ptn_Child1=StateMap
18 | [ProjectWorkspace.Frames.ChildFrames.Document-1.ViewFrame-0.StateMap]
19 | AFC_IN_REPORT=False
20 |
--------------------------------------------------------------------------------
/Protobuf.UnitTests/Protobuf.UnitTests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Microsoft.AspNetCore;
7 | using Microsoft.AspNetCore.Hosting;
8 | using Microsoft.Extensions.Configuration;
9 | using Microsoft.Extensions.Logging;
10 |
11 | namespace Server
12 | {
13 | public class Program
14 | {
15 | public static void Main(string[] args)
16 | {
17 | BuildWebHost(args).Run();
18 | }
19 |
20 | public static IWebHost BuildWebHost(string[] args) =>
21 | WebHost.CreateDefaultBuilder(args)
22 | .UseWebRoot("../wwwroot")
23 | .UseStartup()
24 | .Build();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:59323/",
7 | "sslPort": 0
8 | }
9 | },
10 | "profiles": {
11 | "IIS Express": {
12 | "commandName": "IISExpress",
13 | "launchBrowser": true,
14 | "environmentVariables": {
15 | "ASPNETCORE_ENVIRONMENT": "Development"
16 | }
17 | },
18 | "server": {
19 | "commandName": "Project",
20 | "launchBrowser": true,
21 | "environmentVariables": {
22 | "ASPNETCORE_ENVIRONMENT": "Development"
23 | },
24 | "applicationUrl": "http://localhost:59324/"
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/Fourier.Tests/Fourier.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/App.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { Route } from 'react-router';
3 | import { Layout } from './components/Layout';
4 | import { Home } from './components/Home';
5 | import { FetchData } from './components/FetchData';
6 | import { Counter } from './components/Counter';
7 | import { Script } from './components/Script';
8 | import './custom.css'
9 |
10 | export default class App extends Component {
11 | static displayName = App.name;
12 |
13 | render () {
14 | return (
15 |
16 |
17 |
18 |
19 |
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:53525",
7 | "sslPort": 44301
8 | }
9 | },
10 | "profiles": {
11 | "IIS Express": {
12 | "commandName": "IISExpress",
13 | "launchBrowser": true,
14 | "environmentVariables": {
15 | "ASPNETCORE_ENVIRONMENT": "Development"
16 | }
17 | },
18 | "SunTracker.Web": {
19 | "commandName": "Project",
20 | "launchBrowser": true,
21 | "applicationUrl": "https://localhost:5001;http://localhost:5000",
22 | "environmentVariables": {
23 | "ASPNETCORE_ENVIRONMENT": "Development"
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Fourier.Tests/FFTTests.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Fourier;
2 | using Microsoft.VisualStudio.TestTools.UnitTesting;
3 | using System;
4 | using System.Linq;
5 |
6 | namespace Fourier.Tests
7 | {
8 | [TestClass]
9 | public class FFTTests
10 | {
11 | Boilerplate _bp = new Boilerplate();
12 |
13 | [TestMethod]
14 | public void ForwardQuokkaFFT()
15 | {
16 | var sourceSignal = _bp.TestSignal();
17 |
18 | var referenceDFT = sourceSignal.ToArray();
19 | Reference.DFT(referenceDFT, Direction.Forward);
20 |
21 | ComplexFloat[] quokkaFFT = _bp.ZeroSignal;
22 | FFT.Transform(_bp.Bits, sourceSignal, quokkaFFT, Direction.Forward);
23 |
24 | Validation.AssertSpectres(referenceDFT, quokkaFFT, true, false);
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/BumperHero/BHDevice/Filters.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace BHDevice
7 | {
8 | public static class Filters
9 | {
10 | public static void Average(ushort[] buff, out ushort average)
11 | {
12 | uint sum = 0;
13 | for (int i = 0; i < buff.Length; i++)
14 | {
15 | ushort tmp = 0;
16 | tmp = buff[i];
17 | sum += tmp;
18 | }
19 |
20 | uint result = 0, remainder = 0;
21 | // TODO: length accessor in cast
22 | //uint denominator = (uint)buff.Length;
23 | SequentialMath.DivideUnsigned(sum, 10, out result, out remainder);
24 | average = (ushort)result;
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry.Tests/FPGA.Trigonometry.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile/BHMobile.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v7.1\Mono.Android.dll
20 |
21 |
22 |
--------------------------------------------------------------------------------
/OrbitalCalc/FPGA.OrbitalCalc.Tests/FPGA.OrbitalCalc.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/components/Counter.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 |
3 | export class Counter extends Component {
4 | static displayName = Counter.name;
5 |
6 | constructor(props) {
7 | super(props);
8 | this.state = { currentCount: 0 };
9 | this.incrementCounter = this.incrementCounter.bind(this);
10 | }
11 |
12 | incrementCounter() {
13 | this.setState({
14 | currentCount: this.state.currentCount + 1
15 | });
16 | }
17 |
18 | render() {
19 | return (
20 |
21 |
Counter
22 |
23 |
This is a simple example of a React component.
24 |
25 |
Current count: {this.state.currentCount}
26 |
27 |
Increment
28 |
29 | );
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/DTOs/DTOs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace DTOs
6 | {
7 | public struct DividerRequest
8 | {
9 | public ulong Numerator;
10 | public ulong Denominator;
11 | }
12 |
13 | public struct DividerResponse
14 | {
15 | public ulong Result;
16 | public ulong Remainder;
17 | }
18 |
19 | public struct RoundTrip
20 | {
21 | public byte b;
22 | public ushort us;
23 | public uint ui;
24 | public ulong ul;
25 | }
26 |
27 | public struct IsPrimeRequest
28 | {
29 | public uint value;
30 | }
31 |
32 | public struct IsPrimeResponse
33 | {
34 | public uint value;
35 | public byte result;
36 | }
37 |
38 | public struct BidirResponse
39 | {
40 | public byte dir;
41 | public byte value;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/ClientApp/src/components/Script.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 |
3 | export class Script extends Component {
4 | static displayName = Script.name;
5 |
6 | constructor(props) {
7 | super(props);
8 | this.state = { currentCount: 0 };
9 | this.incrementCounter = this.incrementCounter.bind(this);
10 | }
11 |
12 | incrementCounter() {
13 | this.setState({
14 | currentCount: this.state.currentCount + 1
15 | });
16 | }
17 |
18 | render() {
19 | return (
20 |
21 |
Script control
22 |
23 |
This is a simple example of a React component.
24 |
25 |
Current count: {this.state.currentCount}
26 |
27 |
Increment
28 |
29 | );
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/SnakeGame/Diagnostics.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace SnakeGame
7 | {
8 | public static class Diagnostics
9 | {
10 | public static void ReportState(
11 | GameControlsState controlsState,
12 | eDirectionType nextDirectionFromKeypad,
13 | eDirectionType nextDirectionFromJoystick,
14 | eDirectionType nextDirection,
15 | FPGA.Signal TXD
16 | )
17 | {
18 | SnakeDBG dbg = new SnakeDBG();
19 | dbg.C1 = controlsState.adcChannel1;
20 | dbg.C2 = controlsState.adcChannel2;
21 |
22 | dbg.KD = nextDirectionFromKeypad;
23 | dbg.JD = nextDirectionFromJoystick;
24 | dbg.ND = nextDirection;
25 |
26 | JSON.SerializeToUART(ref dbg, TXD);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/ROT2UServer.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 | true
6 | Latest
7 | false
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using Android.App;
4 | using Android.Content.PM;
5 | using Android.Runtime;
6 | using Android.Views;
7 | using Android.Widget;
8 | using Android.OS;
9 |
10 | namespace BHMobile.Droid
11 | {
12 | [Activity(Label = "BHMobile", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
13 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
14 | {
15 | protected override void OnCreate(Bundle bundle)
16 | {
17 | TabLayoutResource = Resource.Layout.Tabbar;
18 | ToolbarResource = Resource.Layout.Toolbar;
19 |
20 | base.OnCreate(bundle);
21 |
22 | global::Xamarin.Forms.Forms.Init(this, bundle);
23 | LoadApplication(new App());
24 | }
25 | }
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry.Tests/TestConverters.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace TestTools
9 | {
10 | // TODO: move to public library
11 | public static class TestConverters
12 | {
13 | public static string ToHexFloat(byte[] data)
14 | {
15 | return string.Join("", data.Reverse().Select(v => v.ToString("X02")));
16 | }
17 |
18 | public static byte[] ToByteArray(float f)
19 | {
20 | return BitConverter.GetBytes(f);
21 | }
22 |
23 | public static float FloatFromByteArray(byte[] data)
24 | {
25 | return BitConverter.ToSingle(data);
26 | }
27 |
28 | public static int Int32FromByteArray(byte[] data)
29 | {
30 | return BitConverter.ToInt32(data);
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Views/Shared/Error.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Error";
3 | }
4 |
5 | Error.
6 | An error occurred while processing your request.
7 |
8 | @if (!string.IsNullOrEmpty((string)ViewData["RequestId"]))
9 | {
10 |
11 | Request ID: @ViewData["RequestId"]
12 |
13 | }
14 |
15 | Development Mode
16 |
17 | Swapping to Development environment will display more detailed information about the error that occurred.
18 |
19 |
20 | Development environment should not be enabled in deployed applications , as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development , and restarting the application.
21 |
22 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/Pages/Error.cshtml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Microsoft.AspNetCore.Mvc;
7 | using Microsoft.AspNetCore.Mvc.RazorPages;
8 | using Microsoft.Extensions.Logging;
9 |
10 | namespace SunTracker.Web.Pages
11 | {
12 | [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
13 | public class ErrorModel : PageModel
14 | {
15 | private readonly ILogger _logger;
16 |
17 | public ErrorModel(ILogger logger)
18 | {
19 | _logger = logger;
20 | }
21 |
22 | public string RequestId { get; set; }
23 |
24 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
25 |
26 | public void OnGet()
27 | {
28 | RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/Pages/Error.cshtml:
--------------------------------------------------------------------------------
1 | @page
2 | @model ErrorModel
3 | @{
4 | ViewData["Title"] = "Error";
5 | }
6 |
7 | Error.
8 | An error occurred while processing your request.
9 |
10 | @if (Model.ShowRequestId)
11 | {
12 |
13 | Request ID: @Model.RequestId
14 |
15 | }
16 |
17 | Development Mode
18 |
19 | Swapping to the Development environment displays detailed information about the error that occurred.
20 |
21 |
22 | The Development environment shouldn't be enabled for deployed applications.
23 | It can result in displaying sensitive information from exceptions to end users.
24 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development
25 | and restarting the app.
26 |
27 |
--------------------------------------------------------------------------------
/SnakeGame/RandomValueGenerator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace SnakeGame
6 | {
7 | public static class RandomValueGenerator
8 | {
9 | public static void MakeRandomValue(
10 | GameControlsState controlsState,
11 | FPGA.Register randomValue)
12 | {
13 | FPGA.Register tickCounter = 0;
14 | Func nextTickCounter = () => (byte)(tickCounter + 1);
15 | Func tickCounterWE = () => controlsState.keyCode != Drivers.KeypadKeyCode.None;
16 |
17 | FPGA.Config.RegisterOverride(tickCounter, nextTickCounter, tickCounterWE);
18 |
19 | FPGA.Register randomCounterWE = true;
20 |
21 | Func nextRandomCounter = () => tickCounter + randomValue + controlsState.adcChannel1 + controlsState.adcChannel2;
22 | FPGA.Config.RegisterOverride(randomValue, nextRandomCounter, randomCounterWE);
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/FPGAConf/arty/Verilog/generated/Conf/acronyms.txt:
--------------------------------------------------------------------------------
1 | MC: C:\code\QuokkaEvaluation\FPGAConf\ConfDevice\MainController.cs
2 | ADCS: C:\code\QuokkaEvaluation\Drivers\ADC102S021.cs
3 | HCSR: C:\code\QuokkaEvaluation\Drivers\HCSR04.cs
4 | IA: C:\code\QuokkaEvaluation\Drivers\IsAlive.cs
5 | JSON: C:\code\QuokkaEvaluation\Drivers\JSON.cs
6 | K: C:\code\QuokkaEvaluation\Drivers\Keypad4x4.cs
7 | L: C:\code\QuokkaEvaluation\Drivers\L298.cs
8 | MCPX: C:\code\QuokkaEvaluation\Drivers\MCP49X2.cs
9 | MGR: C:\code\QuokkaEvaluation\Drivers\MG996R.cs
10 | QB: C:\code\QuokkaEvaluation\Drivers\QuokkaBoard.cs
11 | SM: C:\code\QuokkaEvaluation\Drivers\SequentialMath.cs
12 | SS: C:\code\QuokkaEvaluation\Drivers\SevenSegment.cs
13 | SPI: C:\code\QuokkaEvaluation\Drivers\SPI.cs
14 | UART: C:\code\QuokkaEvaluation\Drivers\UART.cs
15 | WSB: C:\code\QuokkaEvaluation\Drivers\WS2812B.cs
16 | FPU: C:\code\QuokkaEvaluation\Drivers\FPU\FPU.cs
17 | FPUI: C:\code\QuokkaEvaluation\Drivers\FPU\FPUInterface.cs
18 | QP: C:\code\QuokkaEvaluation\Drivers\Protobuf\QProtobuf.cs
19 |
--------------------------------------------------------------------------------
/FPGAConf/fpga/Verilog/generated/Conf/acronyms.txt:
--------------------------------------------------------------------------------
1 | MC: C:\code\QuokkaEvaluation\FPGAConf\ConfDevice\MainController.cs
2 | ADCS: C:\code\QuokkaEvaluation\Drivers\ADC102S021.cs
3 | HCSR: C:\code\QuokkaEvaluation\Drivers\HCSR04.cs
4 | IA: C:\code\QuokkaEvaluation\Drivers\IsAlive.cs
5 | JSON: C:\code\QuokkaEvaluation\Drivers\JSON.cs
6 | K: C:\code\QuokkaEvaluation\Drivers\Keypad4x4.cs
7 | L: C:\code\QuokkaEvaluation\Drivers\L298.cs
8 | MCPX: C:\code\QuokkaEvaluation\Drivers\MCP49X2.cs
9 | MGR: C:\code\QuokkaEvaluation\Drivers\MG996R.cs
10 | QB: C:\code\QuokkaEvaluation\Drivers\QuokkaBoard.cs
11 | SM: C:\code\QuokkaEvaluation\Drivers\SequentialMath.cs
12 | SS: C:\code\QuokkaEvaluation\Drivers\SevenSegment.cs
13 | SPI: C:\code\QuokkaEvaluation\Drivers\SPI.cs
14 | UART: C:\code\QuokkaEvaluation\Drivers\UART.cs
15 | WSB: C:\code\QuokkaEvaluation\Drivers\WS2812B.cs
16 | FPU: C:\code\QuokkaEvaluation\Drivers\FPU\FPU.cs
17 | FPUI: C:\code\QuokkaEvaluation\Drivers\FPU\FPUInterface.cs
18 | QP: C:\code\QuokkaEvaluation\Drivers\Protobuf\QProtobuf.cs
19 |
--------------------------------------------------------------------------------
/FPGAConf/artyA35/Verilog/generated/Conf/acronyms.txt:
--------------------------------------------------------------------------------
1 | MC: C:\code\QuokkaEvaluation\FPGAConf\ConfDevice\MainController.cs
2 | ADCS: C:\code\QuokkaEvaluation\Drivers\ADC102S021.cs
3 | HCSR: C:\code\QuokkaEvaluation\Drivers\HCSR04.cs
4 | IA: C:\code\QuokkaEvaluation\Drivers\IsAlive.cs
5 | JSON: C:\code\QuokkaEvaluation\Drivers\JSON.cs
6 | K: C:\code\QuokkaEvaluation\Drivers\Keypad4x4.cs
7 | L: C:\code\QuokkaEvaluation\Drivers\L298.cs
8 | MCPX: C:\code\QuokkaEvaluation\Drivers\MCP49X2.cs
9 | MGR: C:\code\QuokkaEvaluation\Drivers\MG996R.cs
10 | QB: C:\code\QuokkaEvaluation\Drivers\QuokkaBoard.cs
11 | SM: C:\code\QuokkaEvaluation\Drivers\SequentialMath.cs
12 | SS: C:\code\QuokkaEvaluation\Drivers\SevenSegment.cs
13 | SPI: C:\code\QuokkaEvaluation\Drivers\SPI.cs
14 | UART: C:\code\QuokkaEvaluation\Drivers\UART.cs
15 | WSB: C:\code\QuokkaEvaluation\Drivers\WS2812B.cs
16 | FPU: C:\code\QuokkaEvaluation\Drivers\FPU\FPU.cs
17 | FPUI: C:\code\QuokkaEvaluation\Drivers\FPU\FPUInterface.cs
18 | QP: C:\code\QuokkaEvaluation\Drivers\Protobuf\QProtobuf.cs
19 |
--------------------------------------------------------------------------------
/run-all.cmd:
--------------------------------------------------------------------------------
1 | cd QuokkaCLI
2 | dotnet run -s "../FunctionalTest/vhdl.json"
3 | dotnet run -s "../FunctionalTest/verilog.json"
4 | dotnet run -s "../KeccakTest/vhdl.json"
5 | dotnet run -s "../KeccakTest/verilog.json"
6 | dotnet run -s "../SnakeGame/vhdl.json"
7 | dotnet run -s "../SnakeGame/verilog.json"
8 | dotnet run -s "../SensorsBoard/Device/vhdl.json"
9 | dotnet run -s "../SensorsBoard/Device/verilog.json"
10 | dotnet run -s "../BumperHero/BHDevice/vhdl.json"
11 | dotnet run -s "../BumperHero/BHDevice/verilog.json"
12 | dotnet run -s "../SunTracker/SunTrackerDevice/vhdl.json"
13 | dotnet run -s "../SunTracker/SunTrackerDevice/verilog.json"
14 | dotnet run -s "../Fourier/vhdl.json"
15 | dotnet run -s "../Fourier/verilog.json"
16 | dotnet run -s "../OrbitalCalc/FPGA.OrbitalCalc.Controllers/vhdl.json"
17 | dotnet run -s "../OrbitalCalc/FPGA.OrbitalCalc.Controllers/verilog.json"
18 | dotnet run -s "../Trigonometry/FPGA.Trigonometry.Controllers/vhdl.json"
19 | dotnet run -s "../Trigonometry/FPGA.Trigonometry.Controllers/verilog.json"
20 | cd ..
21 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Services/BufferService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Concurrent;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 |
7 | namespace server.Services
8 | {
9 | public class BufferService
10 | {
11 | ConcurrentDictionary Outgoing = new ConcurrentDictionary();
12 |
13 | public BufferService()
14 | {
15 | //LED
16 | SetData(1, Enumerable.Range(0, 256).Select(i => (byte)0).ToArray());
17 | // SERVOS
18 | SetData(2, Enumerable.Range(0, 5).Select(i => (byte)0).ToArray());
19 | }
20 |
21 | public void SetData(byte address, byte[] data)
22 | {
23 | Outgoing.AddOrUpdate(address, data, (key, value) => data);
24 | }
25 |
26 | public byte[] GetData(byte address)
27 | {
28 | Outgoing.TryGetValue(address, out byte[] data);
29 | return data ?? Array.Empty();
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/tutorials/controllers/T01UART.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System;
5 | using System.Threading.Tasks;
6 |
7 | namespace Tutorials
8 | {
9 | [BoardConfig(Name = "Quokka")]
10 | public static class T01UARTController
11 | {
12 | public static async Task Aggregator(
13 | OutputSignal LED1,
14 | OutputSignal TXD)
15 | {
16 | IsAlive.Blink(LED1);
17 |
18 | Sequential handler = () =>
19 | {
20 | byte[] data = TutorialsDataSource.HelloWorldBytes();
21 |
22 | while (true)
23 | {
24 | for (byte i = 0; i < data.Length; i++)
25 | {
26 | byte b = data[i];
27 | UART.Write(115200, b, TXD);
28 | }
29 | Runtime.Delay(TimeSpan.FromSeconds(1));
30 | }
31 | };
32 |
33 | Config.OnStartup(handler);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_Cast_FloatToInt.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/
9 | [BoardConfig(Name = "Quokka")]
10 | public static class FloatControllers_Cast_FloatToInt
11 | {
12 | public static async Task Aggregator(
13 | FPGA.InputSignal RXD,
14 | FPGA.OutputSignal TXD
15 | )
16 | {
17 | const uint baud = 115200;
18 |
19 | Sequential handler = () =>
20 | {
21 | FPU.FPUCastNoSync();
22 |
23 | while (true)
24 | {
25 | float data = 0;
26 | UART.ReadFloat(baud, RXD, out data);
27 |
28 | var floatCast = (long)data;
29 |
30 | UART.WriteUnsigned64(baud, (ulong)floatCast, TXD);
31 | }
32 | };
33 |
34 | FPGA.Config.OnStartup(handler);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Fourier.Tests/Boilerplate.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Fourier;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | namespace Fourier.Tests
8 | {
9 | public class Boilerplate
10 | {
11 | public uint Bits = 10;
12 | public uint ArrayLength => GeneratorTools.ArrayLength(Bits);
13 | public uint NumberOfSamples => ArrayLength;
14 | public IEnumerable Range => Enumerable.Range(0, (int)ArrayLength).Select(i => (uint)i);
15 |
16 |
17 | public ComplexFloat[] ZeroSignal => SignalTools.ZeroComplex(NumberOfSamples);
18 |
19 | public ComplexFloat[] TestSignal()
20 | {
21 | var freq30 = SignalTools.PeriodicComplex(30, ArrayLength, NumberOfSamples);
22 | var freq40 = SignalTools.PeriodicComplex(40, ArrayLength, NumberOfSamples);
23 | var freq50 = SignalTools.PeriodicComplex(50, ArrayLength, NumberOfSamples);
24 |
25 | var sourceSignal = SignalTools.Combine(freq30, freq40, freq50);
26 |
27 | return sourceSignal;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AES/AES/ShiftModule.cs:
--------------------------------------------------------------------------------
1 | using Quokka.RTL;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Reflection.Metadata.Ecma335;
5 | using System.Text;
6 |
7 | namespace AES
8 | {
9 | public class ShiftModuleInputs
10 | {
11 | public RTLBitArray Value = new RTLBitArray().Resized(128);
12 | }
13 |
14 | public class ShiftModule : RTLCombinationalModule
15 | {
16 | public RTLBitArray Result
17 | {
18 | get
19 | {
20 | var row3 = Inputs.Value[127, 96];
21 | var row2 = Inputs.Value[95, 64];
22 | var row1 = Inputs.Value[63, 32];
23 | var row0 = Inputs.Value[31, 0];
24 |
25 | return new RTLBitArray(
26 | new RTLBitArray(row3[7, 0], row3[31, 8]),
27 | new RTLBitArray(row2[7, 0], row2[31, 8]),
28 | new RTLBitArray(row1[7, 0], row1[31, 8]),
29 | new RTLBitArray(row0[7, 0], row0[31, 8])
30 | );
31 | }
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_Cast_IntToFloat.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/
9 | [BoardConfig(Name = "Quokka")]
10 | public static class FloatControllers_Cast_IntToFloat
11 | {
12 | public static async Task Aggregator(
13 | FPGA.InputSignal RXD,
14 | FPGA.OutputSignal TXD
15 | )
16 | {
17 | const uint baud = 115200;
18 |
19 | Sequential handler = () =>
20 | {
21 | FPU.FPUCastNoSync();
22 |
23 | while (true)
24 | {
25 | ulong data = 0;
26 | UART.ReadUnsigned64(baud, RXD, ref data);
27 |
28 | var floatCast = (float)(long)data;
29 | UART.WriteFloat(baud, floatCast, TXD);
30 | }
31 | };
32 |
33 | FPGA.Config.OnStartup(handler);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/QuokkaCLI/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Runtime.InteropServices;
4 | using Quokka.Core.Bootstrap;
5 | using Quokka.RTL;
6 |
7 | namespace QuokkaCLI
8 | {
9 | class Program
10 | {
11 | static void Main(string[] args)
12 | {
13 | Console.WriteLine($"Environment: {RuntimeInformation.OSDescription}, {RuntimeInformation.OSArchitecture}, {RuntimeInformation.FrameworkDescription}, {RuntimeInformation.ProcessArchitecture}");
14 | Console.WriteLine($"Current location: {Directory.GetCurrentDirectory()}");
15 | Console.WriteLine($"Quokka.FPGA version: {typeof(QuokkaRunner).Assembly.GetName().Version}");
16 | Console.WriteLine($"Quokka.RTL version: {typeof(RTLBitArray).Assembly.GetName().Version}");
17 |
18 |
19 | Console.WriteLine("Cleaning up ...");
20 |
21 | var tempFolder = Path.Combine(Path.GetTempPath(), "quokka");
22 | if (Directory.Exists(tempFolder))
23 | Directory.Delete(tempFolder, true);
24 |
25 | QuokkaRunner.Default(args);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Drivers/MG996R.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Drivers
7 | {
8 | public static class MG996R
9 | {
10 | public static void Write(byte value, out bool dout)
11 | {
12 | const byte maxValue = 180;
13 | byte current = value < maxValue ? (byte)value : maxValue;
14 |
15 | dout = true;
16 | FPGA.Runtime.Delay(TimeSpanEx.FromMicroseconds(544));
17 | for (ushort i = 0; i < 1945; i++)
18 | {
19 | // wait for 10 microseconds for each degree
20 | FPGA.Runtime.Delay(TimeSpanEx.FromMicroseconds(10));
21 | if (i == current)
22 | {
23 | dout = false;
24 | }
25 | }
26 | }
27 |
28 | public static void Continuous(FPGA.Register value, FPGA.Signal DOUT)
29 | {
30 | bool internalDOUT = false;
31 | FPGA.Config.Link(internalDOUT, out DOUT);
32 |
33 | Sequential worker = () =>
34 | {
35 | while(true)
36 | {
37 | Write(value, out internalDOUT);
38 | }
39 | };
40 | FPGA.Config.OnStartup(worker);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/FunctionalTest/BidirController.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using FPGA.Attributes;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Controllers
9 | {
10 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
11 | public static class Runtime_BidirController
12 | {
13 | public static async Task Aggregator(
14 | FPGA.BidirSignal bidir1,
15 | FPGA.BidirSignal bidir2
16 | )
17 | {
18 | const bool trigger = true;
19 | Sequential handler = () =>
20 | {
21 | bidir1 = false;
22 | bidir2 = false;
23 |
24 | FPGA.Runtime.SetBidirAsOutput(bidir1);
25 | FPGA.Runtime.SetBidirAsInput(bidir2);
26 |
27 | bidir1 = true;
28 | bidir1 = false;
29 | bidir1 = bidir2;
30 |
31 | FPGA.Runtime.SetBidirAsInput(bidir1);
32 | FPGA.Runtime.SetBidirAsInput(bidir2);
33 | };
34 | FPGA.Config.OnSignal(trigger, handler);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/boot-client.tsx:
--------------------------------------------------------------------------------
1 | import './css/site.css';
2 | import * as React from 'react';
3 | import * as ReactDOM from 'react-dom';
4 | import { AppContainer } from 'react-hot-loader';
5 | import { Provider } from 'react-redux';
6 | import { ConnectedRouter } from 'react-router-redux';
7 | import { createBrowserHistory } from 'history';
8 | import configureStore from './configureStore';
9 | import { ApplicationState } from './store';
10 | import * as RoutesModule from './routes';
11 | let routes = RoutesModule.routes;
12 |
13 | // Create browser history to use in the Redux store
14 | //const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!;
15 | const history = createBrowserHistory(/*{ basename: baseUrl }*/);
16 |
17 | // Get the application-wide store instance, prepopulating with state from the server where available.
18 | //const initialState = (window as any).initialReduxState as ApplicationState;
19 | const store = configureStore(history/*, initialState*/);
20 |
21 | ReactDOM.render(
22 |
23 |
24 | ,
25 | document.getElementById('react-app')
26 | );
--------------------------------------------------------------------------------
/Fourier/Fourier/GeneratorTools.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Linq;
4 |
5 | namespace FPGA.Fourier
6 | {
7 | ///
8 | /// Non-synthesizable, evaluated at translation time
9 | ///
10 | [OnTranslation]
11 | public static class GeneratorTools
12 | {
13 | public static float[] CosArray(uint arrayLength, Direction direction)
14 | {
15 | return Enumerable
16 | .Range(0, (int)arrayLength)
17 | .Select(v => (float)Math.Cos(-(int)direction * 2.0 * Math.PI * v / arrayLength))
18 | .ToArray();
19 | }
20 |
21 | public static uint ArrayLength(uint bits)
22 | {
23 | if (bits == 0)
24 | throw new ArgumentOutOfRangeException(nameof(bits), bits, "should be positive");
25 |
26 | return (uint)(1 << (int)bits);
27 | }
28 |
29 | public static uint Mask(uint bits)
30 | {
31 | return (uint)((1 << (int)bits) - 1);
32 | }
33 |
34 | public static float FloatArrayLength(uint bits)
35 | {
36 | return ArrayLength(bits);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_FloatRoundTrip.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
9 | public static class FloatControllers_FloatRoundTrip
10 | {
11 | public static async Task Aggregator(
12 | FPGA.InputSignal RXD,
13 | FPGA.OutputSignal TXD
14 | )
15 | {
16 | const uint baud = 115200;
17 |
18 | var stream = new FPGA.SyncStream();
19 |
20 | Sequential streamHandler = (data) =>
21 | {
22 | UART.WriteFloat(baud, data, TXD);
23 | };
24 | FPGA.Config.OnStream(stream, streamHandler);
25 |
26 | Sequential handler = () =>
27 | {
28 | float f1 = 0, f2 = 1.234f;
29 |
30 | UART.ReadFloat(baud, RXD, out f1);
31 | stream.Write(f1);
32 | stream.Write(f2);
33 | };
34 |
35 | FPGA.Config.OnStartup(handler);
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Trigonometry/FPGA.Trigonometry/Lib.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | namespace FPGA.Trigonometry
3 | {
4 | [CanOptimize]
5 | public static class FPGATrigonometry
6 | {
7 | public static float Sin(float rad)
8 | {
9 | var result = FPGATrigonometryTools.Normalize(rad);
10 |
11 | bool negative = result > FPGATrigonometryConstants.PI;
12 |
13 | result = FPGATrigonometryTools.Q1Project(result);
14 |
15 | result = FPGATrigonometryTools.TaylorSin(result);
16 |
17 | if (negative)
18 | return -result;
19 |
20 | return result;
21 | }
22 |
23 | public static float Cos(float rad)
24 | {
25 | var result = FPGATrigonometryTools.Normalize(rad);
26 |
27 | bool negative = result > FPGATrigonometryConstants.HalfPI && result < FPGATrigonometryConstants.ThreeHalfPI;
28 |
29 | result = FPGATrigonometryTools.Q1Project(result);
30 |
31 | result = FPGATrigonometryTools.TaylorCos(result);
32 |
33 | if (negative)
34 | return -result;
35 |
36 | return result;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_FloatRoundTrip_Stream.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
9 | public static class FloatControllers_FloatRoundTrip_Stream
10 | {
11 | public static async Task Aggregator(
12 | FPGA.InputSignal RXD,
13 | FPGA.OutputSignal TXD
14 | )
15 | {
16 | const uint baud = 115200;
17 |
18 | var stream = new FPGA.SyncStream();
19 |
20 | Sequential streamHandler = (data) =>
21 | {
22 | UART.WriteFloat(baud, data, TXD);
23 | };
24 | FPGA.Config.OnStream(stream, streamHandler);
25 |
26 | Sequential handler = () =>
27 | {
28 | float f1 = 0, f2 = 1.234f;
29 |
30 | UART.ReadFloat(baud, RXD, out f1);
31 | stream.Write(f1);
32 | stream.Write(f2);
33 | };
34 |
35 | FPGA.Config.OnStartup(handler);
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Indicators/Peripherals.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 |
7 | namespace Indicators
8 | {
9 | static class Peripherals
10 | {
11 | public static void IndicatorsControls(
12 | // keypad
13 | FPGA.OutputSignal K7,
14 | FPGA.OutputSignal K6,
15 | FPGA.OutputSignal K5,
16 | FPGA.OutputSignal K4,
17 | FPGA.InputSignal K3,
18 | FPGA.InputSignal K2,
19 | FPGA.InputSignal K1,
20 | FPGA.InputSignal K0,
21 | IndicatorsControlsState controlsState)
22 | {
23 | Sequential keypadHandler = () =>
24 | {
25 | Keypad4x4.ReadASCIICode(K7, K6, K5, K4, K3, K2, K1, K0, out controlsState.keyCode);
26 | };
27 | FPGA.Config.OnTimer(TimeSpan.FromMilliseconds(20), keypadHandler);
28 |
29 | Sequential tickHandler = () =>
30 | {
31 | controlsState.counterMs++;
32 | };
33 | FPGA.Config.OnTimer(TimeSpan.FromMilliseconds(1), tickHandler);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_Cast_Return_Expression.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/
9 | [BoardConfig(Name = "Quokka")]
10 | public static class FloatControllers_Cast_Return_Expression
11 | {
12 | public static float ReturnExpression(float value)
13 | {
14 | return value * 5;
15 | }
16 |
17 | public static async Task Aggregator(
18 | FPGA.InputSignal RXD,
19 | FPGA.OutputSignal TXD
20 | )
21 | {
22 | const uint baud = 115200;
23 |
24 | Sequential handler = () =>
25 | {
26 | FPU.FPUScopeNoSync();
27 |
28 | while (true)
29 | {
30 | float data = 0;
31 | UART.ReadFloat(baud, RXD, out data);
32 |
33 | var result = (long)ReturnExpression(data);
34 | UART.WriteUnsigned64(baud, (ulong)result, TXD);
35 | }
36 | };
37 |
38 | FPGA.Config.OnStartup(handler);
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/tutorials/hdl/verilog/generated/Tutorials/acronyms.txt:
--------------------------------------------------------------------------------
1 | TB: C:\code\QuokkaEvaluation\tutorials\controllers\T00Blinky.cs
2 | TUART: C:\code\QuokkaEvaluation\tutorials\controllers\T01UART.cs
3 | TSUART: C:\code\QuokkaEvaluation\tutorials\controllers\T02SharedUART.cs
4 | TDS: C:\code\QuokkaEvaluation\tutorials\controllers\TutorialsDataSource.cs
5 | ADCS: C:\code\QuokkaEvaluation\Drivers\ADC102S021.cs
6 | HCSR: C:\code\QuokkaEvaluation\Drivers\HCSR04.cs
7 | IA: C:\code\QuokkaEvaluation\Drivers\IsAlive.cs
8 | JSON: C:\code\QuokkaEvaluation\Drivers\JSON.cs
9 | K: C:\code\QuokkaEvaluation\Drivers\Keypad4x4.cs
10 | L: C:\code\QuokkaEvaluation\Drivers\L298.cs
11 | MCPX: C:\code\QuokkaEvaluation\Drivers\MCP49X2.cs
12 | MGR: C:\code\QuokkaEvaluation\Drivers\MG996R.cs
13 | QB: C:\code\QuokkaEvaluation\Drivers\QuokkaBoard.cs
14 | SM: C:\code\QuokkaEvaluation\Drivers\SequentialMath.cs
15 | SS: C:\code\QuokkaEvaluation\Drivers\SevenSegment.cs
16 | SPI: C:\code\QuokkaEvaluation\Drivers\SPI.cs
17 | UART: C:\code\QuokkaEvaluation\Drivers\UART.cs
18 | WSB: C:\code\QuokkaEvaluation\Drivers\WS2812B.cs
19 | FPU: C:\code\QuokkaEvaluation\Drivers\FPU\FPU.cs
20 | FPUI: C:\code\QuokkaEvaluation\Drivers\FPU\FPUInterface.cs
21 | QP: C:\code\QuokkaEvaluation\Drivers\Protobuf\QProtobuf.cs
22 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_InferredFPU.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
9 | public static class FloatControllers_InferredFPU
10 | {
11 | public static async Task Aggregator(
12 | FPGA.InputSignal RXD,
13 | FPGA.OutputSignal TXD
14 | )
15 | {
16 | Sequential handler = () =>
17 | {
18 | FPU.FPUScope();
19 |
20 | const int baud = 115200;
21 | byte command = 0;
22 |
23 | float op1, op2, res = 0;
24 |
25 | while(true)
26 | {
27 | UART.ReadFloat(baud, RXD, out op1);
28 | UART.ReadFloat(baud, RXD, out op2);
29 | command = UART.Read(baud, RXD);
30 |
31 | FloatControllersOps.TestHandler(op1, op2, command, out res);
32 |
33 | UART.WriteFloat(baud, res, TXD);
34 | }
35 | };
36 |
37 | FPGA.Config.OnStartup(handler);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/SnakeGame/DataTypes.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace SnakeGame
7 | {
8 | public enum eGameMode : byte
9 | {
10 | Setup,
11 | Play,
12 | Failed,
13 | Completed
14 | }
15 |
16 | public enum eDirectionType : byte
17 | {
18 | None,
19 | Up,
20 | Down,
21 | Left,
22 | Right
23 | }
24 |
25 | public enum eCellType : byte
26 | {
27 | None,
28 | NextPart,
29 | SnakeHead,
30 | SnakeUp,
31 | SnakeDown,
32 | SnakeLeft,
33 | SnakeRight,
34 | RedCross,
35 | GreenCross,
36 | }
37 |
38 | public class Position
39 | {
40 | public byte row;
41 | public byte col;
42 | }
43 |
44 | public class GameControlsState
45 | {
46 | public KeypadKeyCode keyCode;
47 | public ushort adcChannel1;
48 | public ushort adcChannel2;
49 | }
50 |
51 | public struct SnakeDBG
52 | {
53 | public ushort C1;
54 | public ushort C2;
55 | public eDirectionType KD;
56 | public eDirectionType JD;
57 | public eDirectionType ND;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_Sim.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
9 | public static class FloatControllers_Sim
10 | {
11 | public static async Task Aggregator(
12 | FPGA.OutputSignal OutResult,
13 | FPGA.OutputSignal Completed
14 | )
15 | {
16 | FPGA.Config.Suppress("W0007", OutResult);
17 | float f1 = 0, f2 = 0;
18 | FPGA.Signal result = 0;
19 | byte fpuOp = 0;
20 | FPGA.Signal fpuTrigger = false, fpuCompleted = false;
21 | FPGA.Config.Entity().Op(fpuTrigger, fpuCompleted, f1, f2, fpuOp, result);
22 |
23 | FPGA.Config.Link(result, OutResult);
24 |
25 | Sequential handler = () =>
26 | {
27 | f1 = 20;
28 | f2 = 10;
29 | fpuTrigger = true;
30 | FPGA.Runtime.WaitForAllConditions(fpuCompleted);
31 | Completed = true;
32 | };
33 |
34 | FPGA.Config.OnStartup(handler);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Indicators/DataTypes.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Indicators
7 | {
8 | public enum eIndicatorType
9 | {
10 | None,
11 | Left,
12 | Right,
13 | Break
14 | }
15 |
16 | public enum eIndicatorMode
17 | {
18 | Solid,
19 | Blinking,
20 | Sliding
21 | }
22 |
23 | public class IndicatorsControlsState
24 | {
25 | public KeypadKeyCode keyCode;
26 | public uint counterMs;
27 | public uint dim = 1;
28 | public uint flashSpeedMs = 500;
29 |
30 | // indicator data
31 | public eIndicatorMode mode = eIndicatorMode.Blinking;
32 | public eIndicatorType nextIndicator;
33 | public uint nextIndicatorKeyEventTimeStamp;
34 |
35 | public eIndicatorType lastIndicator;
36 | public uint lastIndicatorTimeStamp;
37 |
38 | public uint flashIndicatorTimeStamp;
39 | public bool isIndicatorActive;
40 |
41 | public int slideValue = 0;
42 |
43 | // auto indicator
44 | public uint autoIndicatorTimeStamp;
45 | }
46 |
47 | public struct IndicatorsDBG
48 | {
49 | public ushort C1;
50 | public ushort C2;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/FunctionalTest/SequentialMathControllers/FibonacciController.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Controllers
10 | {
11 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
12 | public static class Math_Fibonacci
13 | {
14 | public static async Task Aggregator(
15 | FPGA.InputSignal RXD,
16 | FPGA.OutputSignal TXD
17 | )
18 | {
19 | Sequential handler = () =>
20 | {
21 | while (true)
22 | {
23 | byte start = UART.Read(115200, RXD);
24 |
25 | ulong result = 0;
26 | SequentialMath.Fibonacci(start, out result);
27 |
28 | for(byte i = 0; i < 8; i++ )
29 | {
30 | byte data = (byte)result;
31 | UART.Write(115200, data, TXD);
32 | result = result >> 8;
33 | }
34 | }
35 | };
36 |
37 | const bool trigger = true;
38 | FPGA.Config.OnSignal(trigger, handler);
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Drivers/MCP49X2.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright: Evgeny Muryshkin evmuryshkin@gmail.com
3 | */
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 |
8 | namespace Drivers
9 | {
10 | public static class MCP49X2
11 | {
12 | public static void Write(
13 | ushort ChannelA,
14 | ushort ChannelB,
15 | FPGA.OutputSignal NCS,
16 | FPGA.OutputSignal SCK,
17 | FPGA.OutputSignal SDI
18 | )
19 | {
20 | ushort[] buff = new ushort[2];
21 | ushort[] words = new ushort[2];
22 |
23 | buff[0] = ChannelA;
24 | buff[1] = ChannelB;
25 |
26 | for (int i = 0; i < 2; i++)
27 | {
28 | byte cmd = (byte)((i << 3) | 3); // channel | unbuffered | no gain | no shutdown
29 | ushort val = 0;
30 | val = buff[i];
31 | ushort channelWord = (ushort)((cmd << 12) | (val >> 4));
32 | words[i] = channelWord;
33 | }
34 |
35 | for (int j = 0; j < 2; j++)
36 | {
37 | ushort channelData = 0;
38 | channelData = buff[j];
39 | SPI.Write(channelData, NCS, SCK, SDI);
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Fourier/Fourier/DFT.cs:
--------------------------------------------------------------------------------
1 | namespace FPGA.Fourier
2 | {
3 | public static class DFT
4 | {
5 | public static void Transform(uint bits, ComplexFloat[] data, Direction direction)
6 | {
7 | FPGA.Const n = GeneratorTools.ArrayLength(bits);
8 | FPGA.Const nFloat = GeneratorTools.FloatArrayLength(bits);
9 |
10 | uint mask = GeneratorTools.Mask(bits);
11 |
12 | ComplexFloat[] transformed = new ComplexFloat[data.Length];
13 | float[] cosMap = GeneratorTools.CosArray(n, direction);
14 |
15 | var tmp = new ComplexFloat();
16 |
17 | // for each destination element
18 | for (uint i = 0; i < n; i++)
19 | {
20 | tmp.Re = 0.0f;
21 | tmp.Im = 0.0f;
22 |
23 | // sum source elements
24 | for (uint j = 0; j < n; j++)
25 | {
26 | ComplexFloat source = new ComplexFloat();
27 | source = data[j];
28 |
29 | FTTools.RotateAndAdd(cosMap, bits, ref source, ref tmp, i * j);
30 | }
31 |
32 | transformed[i] = tmp;
33 | }
34 |
35 | FTTools.CopyAndNormalize(bits, transformed, data, direction, ref tmp);
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/VHDL/IFPU_OP.vhd:
--------------------------------------------------------------------------------
1 | library ieee;
2 | use ieee.std_logic_1164.all;
3 | use ieee.numeric_std.all;
4 |
5 | entity IFPU_OP is
6 | port(
7 | Clock: in std_logic;
8 | Reset: in std_logic;
9 | Trigger: in std_logic;
10 | Completed: out std_logic;
11 | Lhs: in signed(32 downto 1);
12 | Rhs: in signed(32 downto 1);
13 | Op: in unsigned(8 downto 1);
14 | Result: out signed(32 downto 1)
15 | );
16 | end entity IFPU_OP;
17 |
18 | architecture rtl of IFPU_OP is
19 | signal opa : std_logic_vector(32 downto 1);
20 | signal opb : std_logic_vector(32 downto 1);
21 | signal res : std_logic_vector(32 downto 1);
22 | signal fpuOp: std_logic_vector(3 downto 1);
23 | begin
24 | opa <= std_logic_vector(Lhs);
25 | opb <= std_logic_vector(Rhs);
26 | fpuOp <= std_logic_vector(Op(3 downto 1));
27 | Result <= signed(res);
28 |
29 | --Existing FPU integration is done for FPU100, please clone and include FPU related files into your project
30 | --Repository is available here: https://github.com/freecores/fpu100.git
31 | --Integration commit: bab960a0e8c98eb217664d187208d7ede277248d
32 |
33 | fpu: entity work.fpu port map
34 | (
35 | clk_i => Clock,
36 | opa_i => opa,
37 | opb_i => opb,
38 | fpu_op_i => fpuOp,
39 | rmode_i => "00",
40 | output_o => res,
41 | start_i => Trigger,
42 | ready_o => Completed
43 | );
44 |
45 | end architecture rtl;
--------------------------------------------------------------------------------
/Fourier.Tests/DFTTests.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Fourier;
2 | using Microsoft.VisualStudio.TestTools.UnitTesting;
3 | using System;
4 | using System.Linq;
5 |
6 | namespace Fourier.Tests
7 | {
8 | [TestClass]
9 | public class DFTTests
10 | {
11 | Boilerplate _bp = new Boilerplate();
12 |
13 | [TestMethod]
14 | public void ForwardReferenceDFT()
15 | {
16 | var sourceSignal = _bp.TestSignal();
17 |
18 | var referenceDFT = sourceSignal.ToArray();
19 | Reference.DFT(referenceDFT, Direction.Forward);
20 |
21 | var expected = _bp.ZeroSignal;
22 | expected[30].Re = 1;
23 | expected[40].Re = 1;
24 | expected[50].Re = 1;
25 |
26 | Validation.AssertSpectres(expected, referenceDFT, true, false);
27 | }
28 |
29 | [TestMethod]
30 | public void ForwardQuokkaDFT()
31 | {
32 | var sourceSignal = _bp.TestSignal();
33 |
34 | var referenceDFT = sourceSignal.ToArray();
35 | Reference.DFT(referenceDFT, Direction.Forward);
36 |
37 | var quokkaDFT = sourceSignal.ToArray();
38 | FPGA.Fourier.DFT.Transform(_bp.Bits, quokkaDFT, Direction.Forward);
39 |
40 | Validation.AssertSpectres(referenceDFT, quokkaDFT, true, false);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/SunTracker/SunTracker.Web/Controllers/WeatherForecastController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using Microsoft.AspNetCore.Mvc;
6 | using Microsoft.Extensions.Logging;
7 |
8 | namespace SunTracker.Web.Controllers
9 | {
10 | [ApiController]
11 | [Route("[controller]")]
12 | public class WeatherForecastController : ControllerBase
13 | {
14 | private static readonly string[] Summaries = new[]
15 | {
16 | "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
17 | };
18 |
19 | private readonly ILogger _logger;
20 |
21 | public WeatherForecastController(ILogger logger)
22 | {
23 | _logger = logger;
24 | }
25 |
26 | [HttpGet]
27 | public IEnumerable Get()
28 | {
29 | var rng = new Random();
30 | return Enumerable.Range(1, 5).Select(index => new WeatherForecast
31 | {
32 | Date = DateTime.Now.AddDays(index),
33 | TemperatureC = rng.Next(-20, 55),
34 | Summary = Summaries[rng.Next(Summaries.Length)]
35 | })
36 | .ToArray();
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/AES/AES.HDL/VHDL.qpf:
--------------------------------------------------------------------------------
1 | # -------------------------------------------------------------------------- #
2 | #
3 | # Copyright (C) 1991-2010 Altera Corporation
4 | # Your use of Altera Corporation's design tools, logic functions
5 | # and other software and tools, and its AMPP partner logic
6 | # functions, and any output files from any of the foregoing
7 | # (including device programming or simulation files), and any
8 | # associated documentation or information are expressly subject
9 | # to the terms and conditions of the Altera Program License
10 | # Subscription Agreement, Altera MegaCore Function License
11 | # Agreement, or other applicable license agreement, including,
12 | # without limitation, that your use is for the sole purpose of
13 | # programming logic devices manufactured by Altera and sold by
14 | # Altera or its authorized distributors. Please refer to the
15 | # applicable agreement for further details.
16 | #
17 | # -------------------------------------------------------------------------- #
18 | #
19 | # Quartus II
20 | # Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
21 | # Date created = 20:45:17 June 07, 2019
22 | #
23 | # -------------------------------------------------------------------------- #
24 |
25 | QUARTUS_VERSION = "9.1"
26 | DATE = "20:45:17 June 07, 2019"
27 |
28 | # Revisions
29 |
30 | PROJECT_REVISION = "VHDL"
31 |
--------------------------------------------------------------------------------
/VHDL/Quokka.qpf:
--------------------------------------------------------------------------------
1 | # -------------------------------------------------------------------------- #
2 | #
3 | # Copyright (C) 1991-2010 Altera Corporation
4 | # Your use of Altera Corporation's design tools, logic functions
5 | # and other software and tools, and its AMPP partner logic
6 | # functions, and any output files from any of the foregoing
7 | # (including device programming or simulation files), and any
8 | # associated documentation or information are expressly subject
9 | # to the terms and conditions of the Altera Program License
10 | # Subscription Agreement, Altera MegaCore Function License
11 | # Agreement, or other applicable license agreement, including,
12 | # without limitation, that your use is for the sole purpose of
13 | # programming logic devices manufactured by Altera and sold by
14 | # Altera or its authorized distributors. Please refer to the
15 | # applicable agreement for further details.
16 | #
17 | # -------------------------------------------------------------------------- #
18 | #
19 | # Quartus II
20 | # Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
21 | # Date created = 20:13:14 August 01, 2018
22 | #
23 | # -------------------------------------------------------------------------- #
24 |
25 | QUARTUS_VERSION = "9.1"
26 | DATE = "20:13:14 August 01, 2018"
27 |
28 | # Revisions
29 |
30 | PROJECT_REVISION = "Quokka"
31 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog.qpf:
--------------------------------------------------------------------------------
1 | # -------------------------------------------------------------------------- #
2 | #
3 | # Copyright (C) 1991-2010 Altera Corporation
4 | # Your use of Altera Corporation's design tools, logic functions
5 | # and other software and tools, and its AMPP partner logic
6 | # functions, and any output files from any of the foregoing
7 | # (including device programming or simulation files), and any
8 | # associated documentation or information are expressly subject
9 | # to the terms and conditions of the Altera Program License
10 | # Subscription Agreement, Altera MegaCore Function License
11 | # Agreement, or other applicable license agreement, including,
12 | # without limitation, that your use is for the sole purpose of
13 | # programming logic devices manufactured by Altera and sold by
14 | # Altera or its authorized distributors. Please refer to the
15 | # applicable agreement for further details.
16 | #
17 | # -------------------------------------------------------------------------- #
18 | #
19 | # Quartus II
20 | # Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
21 | # Date created = 20:45:17 June 07, 2019
22 | #
23 | # -------------------------------------------------------------------------- #
24 |
25 | QUARTUS_VERSION = "9.1"
26 | DATE = "20:45:17 June 07, 2019"
27 |
28 | # Revisions
29 |
30 | PROJECT_REVISION = "Verilog"
31 |
--------------------------------------------------------------------------------
/FPGAConf/fpga/Quokka.qpf:
--------------------------------------------------------------------------------
1 | # -------------------------------------------------------------------------- #
2 | #
3 | # Copyright (C) 1991-2010 Altera Corporation
4 | # Your use of Altera Corporation's design tools, logic functions
5 | # and other software and tools, and its AMPP partner logic
6 | # functions, and any output files from any of the foregoing
7 | # (including device programming or simulation files), and any
8 | # associated documentation or information are expressly subject
9 | # to the terms and conditions of the Altera Program License
10 | # Subscription Agreement, Altera MegaCore Function License
11 | # Agreement, or other applicable license agreement, including,
12 | # without limitation, that your use is for the sole purpose of
13 | # programming logic devices manufactured by Altera and sold by
14 | # Altera or its authorized distributors. Please refer to the
15 | # applicable agreement for further details.
16 | #
17 | # -------------------------------------------------------------------------- #
18 | #
19 | # Quartus II
20 | # Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
21 | # Date created = 20:13:14 August 01, 2018
22 | #
23 | # -------------------------------------------------------------------------- #
24 |
25 | QUARTUS_VERSION = "9.1"
26 | DATE = "20:13:14 August 01, 2018"
27 |
28 | # Revisions
29 |
30 | PROJECT_REVISION = "Quokka"
31 |
--------------------------------------------------------------------------------
/SensorsBoard/Quartus/SensorsBoard/Quokka.qpf:
--------------------------------------------------------------------------------
1 | # -------------------------------------------------------------------------- #
2 | #
3 | # Copyright (C) 1991-2010 Altera Corporation
4 | # Your use of Altera Corporation's design tools, logic functions
5 | # and other software and tools, and its AMPP partner logic
6 | # functions, and any output files from any of the foregoing
7 | # (including device programming or simulation files), and any
8 | # associated documentation or information are expressly subject
9 | # to the terms and conditions of the Altera Program License
10 | # Subscription Agreement, Altera MegaCore Function License
11 | # Agreement, or other applicable license agreement, including,
12 | # without limitation, that your use is for the sole purpose of
13 | # programming logic devices manufactured by Altera and sold by
14 | # Altera or its authorized distributors. Please refer to the
15 | # applicable agreement for further details.
16 | #
17 | # -------------------------------------------------------------------------- #
18 | #
19 | # Quartus II
20 | # Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
21 | # Date created = 20:50:41 May 27, 2018
22 | #
23 | # -------------------------------------------------------------------------- #
24 |
25 | QUARTUS_VERSION = "9.1"
26 | DATE = "20:50:41 May 27, 2018"
27 |
28 | # Revisions
29 |
30 | PROJECT_REVISION = "Quokka"
31 |
--------------------------------------------------------------------------------
/BumperHero/Quartus/BumperHero/BumperHero.qpf:
--------------------------------------------------------------------------------
1 | # -------------------------------------------------------------------------- #
2 | #
3 | # Copyright (C) 1991-2010 Altera Corporation
4 | # Your use of Altera Corporation's design tools, logic functions
5 | # and other software and tools, and its AMPP partner logic
6 | # functions, and any output files from any of the foregoing
7 | # (including device programming or simulation files), and any
8 | # associated documentation or information are expressly subject
9 | # to the terms and conditions of the Altera Program License
10 | # Subscription Agreement, Altera MegaCore Function License
11 | # Agreement, or other applicable license agreement, including,
12 | # without limitation, that your use is for the sole purpose of
13 | # programming logic devices manufactured by Altera and sold by
14 | # Altera or its authorized distributors. Please refer to the
15 | # applicable agreement for further details.
16 | #
17 | # -------------------------------------------------------------------------- #
18 | #
19 | # Quartus II
20 | # Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
21 | # Date created = 19:49:05 May 06, 2018
22 | #
23 | # -------------------------------------------------------------------------- #
24 |
25 | QUARTUS_VERSION = "9.1"
26 | DATE = "19:49:05 May 06, 2018"
27 |
28 | # Revisions
29 |
30 | PROJECT_REVISION = "Quokka_Device_TopLevel"
31 |
--------------------------------------------------------------------------------
/FunctionalTest/DividerController.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using FPGA.Attributes;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Controllers
9 | {
10 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
11 | public static class Math_Divider
12 | {
13 | public static async Task Aggregator(
14 | FPGA.InputSignal RXD,
15 | FPGA.OutputSignal TXD
16 | )
17 | {
18 | DTOs.DividerRequest request = new DTOs.DividerRequest();
19 | FPGA.Signal deserialized = new FPGA.Signal();
20 |
21 | Drivers.JSON.DeserializeFromUART(ref request, RXD, deserialized);
22 |
23 | Sequential processingHandler = () =>
24 | {
25 | ulong result, remainder;
26 | SequentialMath.DivideUnsigned(request.Numerator, request.Denominator, out result, out remainder);
27 | DTOs.DividerResponse response = new DTOs.DividerResponse();
28 | response.Result = result;
29 | response.Remainder = remainder;
30 | Drivers.JSON.SerializeToUART(ref response, TXD);
31 | };
32 |
33 | FPGA.Config.OnSignal(deserialized, processingHandler);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_FloatOp.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
9 | public static class FloatControllers_FloatOp
10 | {
11 | public static async Task Aggregator(
12 | FPGA.InputSignal RXD,
13 | FPGA.OutputSignal TXD
14 | )
15 | {
16 | float f1 = 0, f2 = 0;
17 | FPGA.Signal result = 0;
18 | byte fpuOp = 0;
19 | FPGA.Signal fpuTrigger = false, fpuCompleted = false;
20 | FPGA.Config.Entity().Op(fpuTrigger, fpuCompleted, f1, f2, fpuOp, result);
21 |
22 | Sequential handler = () =>
23 | {
24 | const int baud = 115200;
25 |
26 | UART.ReadFloat(baud, RXD, out f1);
27 | UART.ReadFloat(baud, RXD, out f2);
28 | fpuOp = UART.Read(baud, RXD);
29 |
30 | fpuTrigger = true;
31 |
32 | FPGA.Runtime.WaitForAllConditions(fpuCompleted);
33 |
34 | UART.WriteFloat(baud, result, TXD);
35 | };
36 |
37 | const bool trigger = true;
38 | FPGA.Config.OnSignal(trigger, handler);
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_InferredFPU_Sim.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
9 | public static class FloatControllers_InferredFPU_Sim
10 | {
11 | public static async Task Aggregator(
12 | FPGA.OutputSignal OutWithDefault,
13 | FPGA.OutputSignal OutOperation,
14 | FPGA.OutputSignal OutTrigger,
15 | FPGA.OutputSignal OutResult,
16 | FPGA.OutputSignal OutCompleted)
17 | {
18 | byte value = 100;
19 | FPGA.Config.Link(value, OutWithDefault);
20 |
21 | Sequential handler = () =>
22 | {
23 | FPU.FPUScope();
24 |
25 | float op1 = 1.23f, op2 = 10f, res = 0;
26 | FPGA.Config.Link(res, OutResult);
27 |
28 | for(byte op = 0; op < 10; op++)
29 | {
30 | FPGA.Config.Link(op, OutOperation);
31 | OutTrigger = true;
32 | FloatControllersOps.TestHandler(op1, op2, op, out res);
33 | OutCompleted = true;
34 | }
35 | };
36 |
37 | FPGA.Config.OnStartup(handler);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/FunctionalTest/DictionaryController.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Controllers
10 | {
11 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
12 | public static class Runtime_DictionaryController
13 | {
14 | public static void Lookup(byte key, out byte value)
15 | {
16 | FPGA.Collections.ReadOnlyDictionary items = new FPGA.Collections.ReadOnlyDictionary()
17 | {
18 | { 0, 1 },
19 | { 1, 2 },
20 | { 2, 4 },
21 | { 3, 10 },
22 | { 4, 15 }
23 | };
24 |
25 | value = items[key];
26 | }
27 |
28 | public static async Task Aggregator(
29 | FPGA.InputSignal RXD,
30 | FPGA.OutputSignal TXD
31 | )
32 | {
33 | const bool trigger = true;
34 |
35 | Sequential handler = () =>
36 | {
37 | byte data = UART.Read(115200, RXD);
38 |
39 | byte result = 0;
40 | Lookup(data, out result);
41 |
42 | UART.Write(115200, result, TXD);
43 | };
44 | FPGA.Config.OnSignal(trigger, handler);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/FunctionalTest/SupportedFeaturesControllers.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Controllers
10 | {
11 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
12 | public static class SFC_FunctionCallController
13 | {
14 | static byte Increment(byte input)
15 | {
16 | return (byte)(input + 1);
17 | }
18 |
19 | public static async Task Aggregator(
20 | FPGA.InputSignal RXD,
21 | FPGA.OutputSignal TXD
22 | )
23 | {
24 | Sequential handler = () =>
25 | {
26 | while(true)
27 | {
28 | byte data = UART.Read(115200, RXD);
29 | switch (data)
30 | {
31 | case 0:
32 | data = Increment(data);
33 | break;
34 | case 1:
35 | var result = Increment(data);
36 | data = result;
37 | break;
38 | }
39 | UART.Write(115200, data, TXD);
40 | }
41 | };
42 | FPGA.Config.OnStartup(handler);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/tutorials/controllers/T02SharedUART.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System;
5 | using System.Threading.Tasks;
6 |
7 | namespace Tutorials
8 | {
9 | [BoardConfig(Name = "Quokka")]
10 | public static class T01SharedUARTController
11 | {
12 | public static async Task Aggregator(
13 | OutputSignal LED1,
14 | OutputSignal TXD)
15 | {
16 | IsAlive.Blink(LED1);
17 |
18 | bool internalTXD = true;
19 | Config.Link(internalTXD, TXD);
20 | object txdLock = new object();
21 |
22 | Sequential handler = () =>
23 | {
24 | Const instanceId = Config.InstanceId();
25 | byte[] data = TutorialsDataSource.HelloWorldBytesFromHandler(instanceId);
26 |
27 | while (true)
28 | {
29 | lock (txdLock)
30 | {
31 | for (byte i = 0; i < data.Length; i++)
32 | {
33 | byte b = data[i];
34 | UART.RegisteredWrite(115200, b, out internalTXD);
35 | }
36 | }
37 |
38 | Runtime.Delay(TimeSpan.FromSeconds(1));
39 | }
40 | };
41 |
42 | Config.OnStartup(handler, 3);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Android.App;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("BHMobile.Android")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("BHMobile.Android")]
14 | [assembly: AssemblyCopyright("Copyright © 2014")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: ComVisible(false)]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
32 | // Add some common permissions, these can be removed if not needed
33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)]
34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
35 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_Cast_Inline.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using System.Threading.Tasks;
5 |
6 | namespace FloatControllers
7 | {
8 | /*[BoardConfig(Name = "NEB")]*/
9 | [BoardConfig(Name = "Quokka")]
10 | public static class FloatControllers_Cast_Inline
11 | {
12 | public static async Task Aggregator(
13 | FPGA.InputSignal RXD,
14 | FPGA.OutputSignal TXD
15 | )
16 | {
17 | const uint baud = 115200;
18 |
19 | Sequential handler = () =>
20 | {
21 | FPU.FPUScopeNoSync();
22 |
23 | while (true)
24 | {
25 | float data = 0;
26 | UART.ReadFloat(baud, RXD, out data);
27 |
28 | float[] buff = new float[2];
29 |
30 | for (sbyte idx = -10; idx <= 10; idx++)
31 | {
32 | buff[0] = data * idx;
33 | buff[1] = idx * data;
34 |
35 | for (var i = 0; i < buff.Length; i++)
36 | {
37 | var tmp = buff[i];
38 | UART.WriteFloat(baud, tmp, TXD);
39 | }
40 | }
41 | }
42 | };
43 |
44 | FPGA.Config.OnStartup(handler);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/FunctionalTest/SequentialMathControllers/IsPrimeController.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using FPGA.Attributes;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Controllers
9 | {
10 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
11 | public static class Math_IsPrime
12 | {
13 | public static async Task Aggregator(
14 | FPGA.InputSignal RXD,
15 | FPGA.OutputSignal TXD
16 | )
17 | {
18 | DTOs.IsPrimeRequest request = new DTOs.IsPrimeRequest();
19 | FPGA.Signal deserialized = new FPGA.Signal();
20 | Drivers.JSON.DeserializeFromUART(ref request, RXD, deserialized);
21 |
22 | Sequential handler = () =>
23 | {
24 | bool result = false;
25 | uint source = request.value;
26 | // TODO: member access is not supported in function call
27 | SequentialMath.IsPrime((uint)source, out result);
28 |
29 | DTOs.IsPrimeResponse response = new DTOs.IsPrimeResponse();
30 | response.value = request.value;
31 | response.result = (byte)((result == true) ? 1 : 0);
32 |
33 | Drivers.JSON.SerializeToUART(ref response, TXD);
34 | };
35 |
36 | FPGA.Config.OnSignal(deserialized, handler);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/VHDL/IConcreteExternalPackage2_ExternalEntity.vhd:
--------------------------------------------------------------------------------
1 | -- second implementation
2 | library ieee;
3 | use ieee.std_logic_1164.all;
4 | use ieee.numeric_std.all;
5 |
6 | entity IConcreteExternalPackage2_ExternalEntity is
7 | port(
8 | Clock: in std_logic;
9 | Reset: in std_logic;
10 | InSignal: in unsigned(8 downto 1);
11 | OutSignal: out unsigned(8 downto 1);
12 | InTrigger: in std_logic;
13 | OutReady: out std_logic
14 | );
15 | end entity IConcreteExternalPackage2_ExternalEntity;
16 |
17 | architecture rtl of IConcreteExternalPackage2_ExternalEntity is
18 | signal counter: unsigned(8 downto 1) := (others => '0');
19 | type FSM is (Ready,Counting);
20 | signal currentState: FSM := Ready;
21 | begin
22 |
23 | process(Clock,Reset,InSignal,InTrigger) is
24 | begin
25 | if( rising_edge(Clock) ) then
26 | if Reset = '1' then
27 | currentState <= Ready;
28 | counter <= (others => '0');
29 | else
30 | case currentState is
31 | when Ready =>
32 | if( InTrigger = '1') then
33 | counter <= (others => '0');
34 | currentState <= Counting;
35 | end if;
36 | when Counting =>
37 | if counter = 10 then
38 | currentState <= Ready;
39 | else
40 | counter <= counter + 1;
41 | end if;
42 | when others =>
43 | currentState <= Ready;
44 | end case;
45 | end if;
46 | end if;
47 | end process;
48 |
49 | OutSignal <= InSignal + counter;
50 | OutReady <= '1' when currentState = Ready else '0';
51 |
52 | end architecture rtl;
--------------------------------------------------------------------------------
/Drivers/SPI.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright: Evgeny Muryshkin evmuryshkin@gmail.com
3 | */
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 |
8 | namespace Drivers
9 | {
10 | public static class SPI
11 | {
12 | public static void Write(
13 | T data,
14 | FPGA.OutputSignal NCS,
15 | FPGA.OutputSignal SCK,
16 | FPGA.OutputSignal SDI
17 | ) where T : struct
18 | {
19 | T buff = data;
20 | FPGA.Config.Default(out NCS, true);
21 | bool internalNCS = true, internalCSK = false, internalSDI = false;
22 |
23 | FPGA.Config.Link(internalNCS, NCS);
24 | FPGA.Config.Link(internalCSK, SCK);
25 | FPGA.Config.Link(internalSDI, SDI);
26 |
27 | internalNCS = false;
28 | FPGA.Runtime.Delay(TimeSpan.FromMilliseconds(1));
29 | byte sizeOfData = FPGA.Config.SizeOf(data);
30 | for (int c = 0; c < sizeOfData; c++)
31 | {
32 | internalSDI = FPGA.Config.HighBit(buff);
33 | FPGA.Runtime.Delay(TimeSpan.FromMilliseconds(1));
34 | internalCSK = true;
35 | FPGA.Runtime.Delay(TimeSpan.FromMilliseconds(1));
36 | internalCSK = false;
37 | buff = FPGA.Config.LShift(buff, 1);
38 | }
39 |
40 | FPGA.Runtime.Delay(TimeSpan.FromMilliseconds(1));
41 | internalNCS = true;
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Fourier.Tests/SignalTools.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Fourier;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | namespace Fourier.Tests
8 | {
9 | class SignalTools
10 | {
11 | public static ComplexFloat[] ZeroComplex(uint numSamles)
12 | {
13 | return Enumerable.Range(0, (int)numSamles).Select(s => new ComplexFloat()).ToArray();
14 | }
15 |
16 | public static ComplexFloat[] PeriodicComplex(float freq, uint samplingRate, uint numSamles)
17 | {
18 | float step = (float)(2 * Math.PI * freq / samplingRate);
19 |
20 | return Enumerable.Range(0, (int)numSamles).Select(s => new ComplexFloat()
21 | {
22 | Re = (float)Math.Cos(step * s),
23 | Im = (float)Math.Sin(step * s),
24 | }).ToArray();
25 | }
26 |
27 | public static ComplexFloat[] Combine(params ComplexFloat[][] data)
28 | {
29 | switch (data.Length)
30 | {
31 | case 0:
32 | return new ComplexFloat[0];
33 | case 1:
34 | return data[0];
35 | default:
36 | return data[0]
37 | .Zip(
38 | Combine(data.Skip(1).ToArray()),
39 | (l, r) => new ComplexFloat() { Re = l.Re + r.Re, Im = l.Im + r.Im })
40 | .ToArray();
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/FunctionalTest/FloatControllers/FloatControllers_FloatRoundTrip_Loop.cs:
--------------------------------------------------------------------------------
1 | using Drivers;
2 | using FPGA;
3 | using FPGA.Attributes;
4 | using FPGA.Optimizers; using Quokka.Schema.HLS;
5 | using System.Threading.Tasks;
6 |
7 | namespace FloatControllers
8 | {
9 | /*[BoardConfig(Name = "NEB")]*/[BoardConfig(Name = "Quokka")]
10 | public static class FloatControllers_FloatRoundTrip_Loop
11 | {
12 | public static async Task Aggregator(
13 | FPGA.InputSignal RXD,
14 | FPGA.OutputSignal TXD
15 | )
16 | {
17 | const uint baud = 115200;
18 |
19 | Sequential handler = () =>
20 | {
21 | FPGA.Optimizations.AddOptimizer();
22 |
23 | float f1 = 0, f2 = 1.234f;
24 |
25 | bool internalTXD = true;
26 |
27 | // hardlink from register to output signal, it has to hold its value
28 | FPGA.Config.Link(internalTXD, TXD);
29 |
30 | while (true)
31 | {
32 | UART.ReadFloat(baud, RXD, out f1);
33 | UART.RegisteredWriteFloat(baud, f1, out internalTXD);
34 | //UART.RegisteredWriteFloat(baud, f2, out internalTXD);
35 | }
36 | };
37 |
38 | FPGA.Config.OnStartup(handler);
39 | }
40 | }
41 |
42 | public class TestOptimizer : DefaultOptimizer
43 | {
44 | public override bool? ShouldRecycle(Data data) => true;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/AES/AES/AESModule.cs:
--------------------------------------------------------------------------------
1 | /*
2 | This is a port of AES implementation to low-level Quokka
3 | https://github.com/kokke/tiny-AES-c/blob/master/aes.c
4 |
5 | Work in progress.
6 | */
7 | using Quokka.RTL;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.Linq;
11 | using System.Text;
12 |
13 |
14 | namespace AES
15 | {
16 | public class AESModuleInputs
17 | {
18 |
19 | }
20 |
21 | public class AESModuleState
22 | {
23 | public RTLBitArray Value = new RTLBitArray().Resized(128);
24 | }
25 |
26 | /*
27 | #define Nb 4 // The number of columns comprising a state in AES. This is a constant in AES. Value=4
28 | #define Nk 4 // The number of 32 bit words in a key.
29 | #define Nr 10 // The number of rounds in AES Cipher.
30 | */
31 |
32 | public class AESModule : RTLSynchronousModule
33 | {
34 | SBoxModule sbox = new SBoxModule();
35 | BoxModule box = new BoxModule();
36 | byte SBoxAddress => 0;
37 | byte RBoxAddress => 0;
38 |
39 | protected override void OnSchedule(Func inputsFactory)
40 | {
41 | base.OnSchedule(inputsFactory);
42 |
43 | box.Schedule(() => new BoxModuleInputs() { SBoxAddress = SBoxAddress, RBoxAddress = RBoxAddress });
44 | sbox.Schedule(() => new SBoxModuleInputs() { Value = State.Value });
45 | }
46 |
47 | protected override void OnStage()
48 | {
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Controllers/SampleDataController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using LEDDto;
6 | using Microsoft.AspNetCore.Mvc;
7 |
8 | namespace Server.Controllers
9 | {
10 | [Route("api/[controller]")]
11 | public class SampleDataController : Controller
12 | {
13 | private static string[] Summaries = new[]
14 | {
15 | "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
16 | };
17 |
18 | [HttpGet("[action]")]
19 | public IEnumerable WeatherForecasts(int startDateIndex)
20 | {
21 | var rng = new Random();
22 | return Enumerable.Range(1, 5).Select(index => new WeatherForecast
23 | {
24 | DateFormatted = DateTime.Now.AddDays(index + startDateIndex).ToString("d"),
25 | TemperatureC = rng.Next(-20, 55),
26 | Summary = Summaries[rng.Next(Summaries.Length)]
27 | });
28 | }
29 |
30 | public class WeatherForecast
31 | {
32 | public string DateFormatted { get; set; }
33 | public int TemperatureC { get; set; }
34 | public string Summary { get; set; }
35 |
36 | public int TemperatureF
37 | {
38 | get
39 | {
40 | return 32 + (int)(TemperatureC / 0.5556);
41 | }
42 | }
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Orbiter/OrbiterHost/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("OrbiterHost")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("OrbiterHost")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("1f6c2c9f-9988-4898-b1dc-92cb0095730a")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/BumperHero/BHMobile/BHMobile.Android/Resources/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
26 |
27 |
30 |
31 |
--------------------------------------------------------------------------------
/Drivers/FPU/FPUInterface.cs:
--------------------------------------------------------------------------------
1 | using FPGA.Attributes;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Drivers
7 | {
8 | public enum eFPUOp : byte
9 | {
10 | Add,
11 | Subtract,
12 | Multiply,
13 | Divide,
14 | // Sqrt // not supported by verilog FPU
15 | }
16 |
17 | public interface IFPU
18 | {
19 | void Op(
20 | [ModuleInput]
21 | FPGA.Signal Trigger,
22 | [ModuleOutput]
23 | FPGA.Signal Completed,
24 | [ModuleInput]
25 | float Lhs,
26 | [ModuleInput]
27 | float Rhs,
28 | [ModuleInput]
29 | byte Op,
30 | [ModuleOutput]
31 | FPGA.Signal Result
32 | );
33 | }
34 |
35 | public interface IFloatToIntCast
36 | {
37 | void Op(
38 | [ModuleInput] FPGA.Signal Trigger,
39 | [ModuleOutput] FPGA.Signal Completed,
40 | [ModuleInput] float Source,
41 | [ModuleOutput] FPGA.Signal Result
42 | );
43 | }
44 |
45 | public interface IIntToFloatCast
46 | {
47 | void Op(
48 | [ModuleInput] FPGA.Signal Trigger,
49 | [ModuleInput] FPGA.Signal IsSigned,
50 | [ModuleOutput] FPGA.Signal Completed,
51 | [ModuleInput] ulong Source,
52 | [ModuleOutput] FPGA.Signal Result
53 | );
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Drivers/JSON.cs:
--------------------------------------------------------------------------------
1 | using FPGA;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Drivers
7 | {
8 | public static class JSON
9 | {
10 | public static void DeserializeFromUART(
11 | ref T obj,
12 | FPGA.InputSignal RXD,
13 | FPGA.Signal deserialized) where T : new()
14 | {
15 | byte data = 0;
16 | FPGA.Config.JSONDeserializer(obj, data, deserialized);
17 |
18 | const bool trigger = true;
19 | Sequential uartHandler = () =>
20 | {
21 | while(true)
22 | {
23 | data = UART.Read(115200, RXD);
24 | }
25 | };
26 |
27 | FPGA.Config.OnSignal(trigger, uartHandler);
28 | }
29 |
30 | public static void SerializeToUART(ref T data, FPGA.Signal TXD)
31 | {
32 | FPGA.Signal hasMoreData, triggerDequeue, dataDequeued;
33 | FPGA.Signal currentByte;
34 |
35 | FPGA.Config.JSONSerializer(
36 | data,
37 | out hasMoreData,
38 | out triggerDequeue,
39 | out dataDequeued,
40 | out currentByte);
41 |
42 | while (hasMoreData)
43 | {
44 | triggerDequeue = true;
45 | FPGA.Runtime.WaitForAllConditions(dataDequeued);
46 | UART.Write(115200, currentByte, TXD);
47 | }
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/client/components/storyboard.ts:
--------------------------------------------------------------------------------
1 | import * as Rx from "rxjs";
2 |
3 | export interface IStoryboardItem {
4 | servos: number[]
5 | }
6 |
7 | export interface IStoryboard {
8 | name: string;
9 | Items: IStoryboardItem[]
10 | }
11 |
12 | export class Storyboard {
13 | async delay(ms: number) {
14 | await Rx.timer(ms).toPromise();
15 | }
16 |
17 | public async run(
18 | storyboard: IStoryboard,
19 | getter: () => number[],
20 | setter: (data: number[]) => void
21 | ) {
22 | // validate
23 | const current = getter();
24 | const fault = storyboard.Items.find(i => i.servos.length != current.length || !!i.servos.find(v => v < 0 || v > 180))
25 | if (fault) {
26 | alert("Servos length mismatch in storyboard");
27 | return;
28 | }
29 |
30 | //run
31 | for(const item of storyboard.Items) {
32 | while(true) {
33 | const current = [...getter()];
34 |
35 | if (JSON.stringify(current) === JSON.stringify(item.servos)) {
36 | // done with current item
37 | break;
38 | }
39 |
40 | for(let idx = 0; idx < current.length; idx++) {
41 | const delta = Math.sign(item.servos[idx] - current[idx]);
42 |
43 | current[idx] = current[idx] + delta;
44 | }
45 |
46 | setter(current);
47 |
48 | await this.delay(20);
49 | }
50 | }
51 | }
52 | }
--------------------------------------------------------------------------------
/AES/AES.Tests/ShiftTest.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.TestTools.UnitTesting;
2 | using Quokka.Core.Tools;
3 | using Quokka.RTL.Simulator;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.ComponentModel.DataAnnotations;
7 | using System.Linq;
8 |
9 | namespace AES.Tests
10 | {
11 | [TestClass]
12 | public class ShiftTest
13 | {
14 | [TestMethod]
15 | public void Test()
16 | {
17 | var sim = new RTLSimulator();
18 | sim.ClockCycle();
19 | sim.ClockCycle(new ShiftTestModuleInputs() { LSBData = 0x03020100, LSBDataReady = true });
20 | sim.ClockCycle(new ShiftTestModuleInputs() { LSBData = 0x07060504, LSBDataReady = true });
21 | sim.ClockCycle(new ShiftTestModuleInputs() { LSBData = 0x0B0A0908, LSBDataReady = true });
22 | sim.ClockCycle(new ShiftTestModuleInputs() { LSBData = 0x0F0E0D0C, LSBDataReady = true });
23 | Assert.IsFalse(sim.TopLevel.LBSResultReady);
24 |
25 | var parts = new List();
26 | for (var i = 0; i < 4; i++)
27 | {
28 | sim.ClockCycle();
29 | Assert.IsTrue(sim.TopLevel.LBSResultReady);
30 | parts.Add(sim.TopLevel.LSBResult);
31 | }
32 |
33 | Assert.AreEqual(0x00030201U, parts[0]);
34 | Assert.AreEqual(0x04070605U, parts[1]);
35 | Assert.AreEqual(0x080B0A09U, parts[2]);
36 | Assert.AreEqual(0x0C0F0E0DU, parts[3]);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/server/Services/CommsService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO.Ports;
4 | using System.Linq;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 |
8 | namespace server.Services
9 | {
10 | public class CommsService
11 | {
12 | private readonly BufferService _bufferService;
13 | public CommsService(BufferService bufferService)
14 | {
15 | _bufferService = bufferService;
16 | }
17 |
18 | public Task Run(CancellationToken ct)
19 | {
20 | return Task.Factory.StartNew(() =>
21 | {
22 | var portName = "COM5";
23 | Console.WriteLine($"Listening on {portName}");
24 |
25 | var port = new SerialPort();
26 | port.PortName = portName;
27 | port.BaudRate = 115200;// 9600;
28 | port.Parity = Parity.None;
29 | port.DataBits = 8;
30 | port.StopBits = StopBits.Two;
31 | port.Handshake = Handshake.None;
32 |
33 | port.Open();
34 | while (!ct.IsCancellationRequested)
35 | {
36 | var address = (byte)port.ReadByte();
37 | var data = _bufferService.GetData(address);
38 | Console.WriteLine($"{DateTime.UtcNow}: Requested address: {address}, writing {data.Length}");
39 |
40 | port.Write(data, 0, data.Length);
41 | }
42 |
43 | port.Close();
44 | });
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ROT2U/ROT2UFE/webpack.config.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var webpack = require('webpack');
3 |
4 | var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
5 |
6 | module.exports = {
7 | stats: "errors-only",
8 | watchOptions: {
9 | ignored: /node_modules/
10 | },
11 | //devtool: "eval-source-map",
12 | entry: {
13 | client: ['babel-polyfill', "./client/boot-client.tsx"],
14 | },
15 | output: {
16 | publicPath: path.resolve(__dirname,"./wwwroot/dist"),
17 | path: path.resolve(__dirname,"./wwwroot/dist"),
18 | filename: "[name].js"
19 | },
20 | module: {
21 | rules: [
22 | {
23 | test: /\.tsx?$/,
24 | include: [path.resolve(__dirname, "client")],
25 | use: [
26 | { loader: 'babel-loader?presets[]=es2015'},
27 | { loader: 'ts-loader',
28 | options: {
29 | transpileOnly: true // IMPORTANT! use transpileOnly mode to speed-up compilation
30 | }
31 | }
32 | ],
33 | },
34 | {
35 | test: /\.css$/,
36 | use: [ 'style-loader', 'css-loader' ]
37 | },
38 | {
39 | test: /\.scss$/,
40 | use: [ 'style-loader', 'css-loader', 'sass-loader' ]
41 | }
42 | ]
43 | },
44 | resolve: {
45 | modules: [
46 | "node_modules",
47 | path.resolve(__dirname, './client')
48 | ],
49 | extensions: ['.jsx', '.js', '.tsx', '.ts']
50 | },
51 | // TS Checker in a separate thread: TODO: replace with the NON-FORK version as soon as it is available
52 | plugins: [
53 | new webpack.ProvidePlugin({
54 | THREE: 'three'
55 | }),
56 | new ForkTsCheckerWebpackPlugin(),
57 | ]
58 | };
59 |
--------------------------------------------------------------------------------
/FPGAConf/arty/Verilog/generated/Conf/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/FPGAConf/fpga/Verilog/generated/Conf/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/AESModule/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/BoxModule/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/SBoxModule/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/ShiftModule/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/FPGAConf/artyA35/Verilog/generated/Conf/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/tutorials/hdl/verilog/generated/Tutorials/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/SBoxTestModule/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------
/AES/AES.HDL/Verilog/generated/ShiftTestModule/Quokka.v:
--------------------------------------------------------------------------------
1 | module work_Quokka_BoardSignalsProc (
2 | BoardSignals_Clock,
3 | BoardSignals_Reset,
4 | BoardSignals_Running,
5 | BoardSignals_Starting,
6 | BoardSignals_Started,
7 | Clock,
8 | Reset,
9 | InternalReset
10 | );
11 |
12 | input wire Clock;
13 | inout wire Reset;
14 | input wire InternalReset;
15 |
16 | output wire BoardSignals_Clock;
17 | output wire BoardSignals_Reset;
18 | output wire BoardSignals_Running;
19 | output wire BoardSignals_Starting;
20 | output wire BoardSignals_Started;
21 |
22 | reg internalRunning = 0;
23 | reg internalStarted = 0;
24 |
25 | assign BoardSignals_Clock = Clock;
26 | assign BoardSignals_Reset = Reset | InternalReset;
27 | assign BoardSignals_Running = internalRunning;
28 | assign BoardSignals_Started = internalStarted;
29 | assign BoardSignals_Starting = internalRunning & !internalStarted;
30 |
31 |
32 | always @ (posedge BoardSignals_Clock)
33 | begin
34 | if (BoardSignals_Reset) begin
35 | internalRunning <= 0;
36 | internalStarted <= 0;
37 | end
38 | else begin
39 | if ( BoardSignals_Running ) begin
40 | internalStarted <= 1;
41 | end
42 |
43 | internalRunning <= 1;
44 | end
45 | end
46 | endmodule
47 |
48 | module work_Quokka_Metastability(Clock, Reset, in, out);
49 | input Clock;
50 | input Reset;
51 | input in;
52 | output out;
53 | reg [2:1] buff = 2'b00;
54 |
55 | always @(posedge Clock)
56 | begin
57 | if (Reset)
58 | begin
59 | buff <= 2'b00;
60 | end
61 | else
62 | begin
63 | buff <= {buff[1], in};
64 | end;
65 | end
66 |
67 | assign out = buff[2];
68 |
69 | endmodule
70 |
--------------------------------------------------------------------------------