Browse Source

added vhdl definitions

subDesTagesMitExtraKaese 3 years ago
parent
commit
617ce38cce
100 changed files with 30432 additions and 10452 deletions
  1. 1 0
      .gitignore
  2. 78 78
      .qsys_edit/nios2_uc.xml
  3. 26 6
      .qsys_edit/nios2_uc_schematic.nlv
  4. 3 4
      .qsys_edit/preferences.xml
  5. 39 2
      myfirst_niosii.qsf
  6. 110 43
      myfirst_niosii.vhd
  7. 218 11
      nios2_uc.qsys
  8. 4296 1213
      nios2_uc.sopcinfo
  9. 82 26
      nios2_uc/nios2_uc.bsf
  10. 1340 475
      nios2_uc/nios2_uc.xml
  11. 15 3
      nios2_uc/nios2_uc_bb.v
  12. 9 3
      nios2_uc/nios2_uc_inst.v
  13. 9237 3553
      nios2_uc/synthesis/nios2_uc.debuginfo
  14. 220 82
      nios2_uc/synthesis/nios2_uc.qip
  15. 236 0
      nios2_uc/synthesis/nios2_uc.regmap
  16. 609 56
      nios2_uc/synthesis/nios2_uc.vhd
  17. 148 0
      nios2_uc/synthesis/submodules/altera_customins_master_translator.v
  18. 148 0
      nios2_uc/synthesis/submodules/altera_customins_slave_translator.sv
  19. 1 1
      nios2_uc/synthesis/submodules/altera_merlin_arbitrator.sv
  20. 3 3
      nios2_uc/synthesis/submodules/altera_merlin_burst_uncompressor.sv
  21. 3 3
      nios2_uc/synthesis/submodules/altera_merlin_master_agent.sv
  22. 3 3
      nios2_uc/synthesis/submodules/altera_merlin_master_translator.sv
  23. 3 3
      nios2_uc/synthesis/submodules/altera_merlin_slave_agent.sv
  24. 3 3
      nios2_uc/synthesis/submodules/altera_merlin_slave_translator.sv
  25. 1 1
      nios2_uc/synthesis/submodules/altera_reset_controller.sdc
  26. 3 3
      nios2_uc/synthesis/submodules/altera_reset_controller.v
  27. 3 3
      nios2_uc/synthesis/submodules/altera_reset_synchronizer.v
  28. 7469 0
      nios2_uc/synthesis/submodules/fpoint_hw_qsys.v
  29. 3587 0
      nios2_uc/synthesis/submodules/fpoint_qsys.v
  30. 80 0
      nios2_uc/synthesis/submodules/fpoint_wrapper.v
  31. 3 3
      nios2_uc/synthesis/submodules/nios2_uc_irq_mapper.sv
  32. 67 0
      nios2_uc/synthesis/submodules/nios2_uc_lcd_16207.v
  33. 1395 263
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0.v
  34. 1 1
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_avalon_st_adapter.v
  35. 1 1
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_avalon_st_adapter_error_adapter_0.sv
  36. 62 17
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_cmd_demux.sv
  37. 14 14
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_cmd_mux.sv
  38. 63 37
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_router.sv
  39. 23 23
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_router_002.sv
  40. 12 12
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_rsp_demux.sv
  41. 83 23
      nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_rsp_mux.sv
  42. 37 3
      nios2_uc/synthesis/submodules/nios2_uc_nios2.v
  43. 295 203
      nios2_uc/synthesis/submodules/nios2_uc_nios2_cpu.v
  44. 3 1
      nios2_uc/synthesis/submodules/nios2_uc_nios2_cpu_test_bench.v
  45. 118 0
      nios2_uc/synthesis/submodules/nios2_uc_nios2_custom_instruction_master_multi_xconnect.sv
  46. 59 0
      nios2_uc/synthesis/submodules/nios2_uc_pio_BUTTON.v
  47. 70 0
      nios2_uc/synthesis/submodules/nios2_uc_pio_COL_ADDR.v
  48. 67 0
      nios2_uc/synthesis/submodules/nios2_uc_pio_MATRIX.v
  49. 67 0
      nios2_uc/synthesis/submodules/nios2_uc_pio_ROW.v
  50. 15 0
      output_file.map
  51. 2 2
      output_files/myfirst_niosii.cdf
  52. 1 1
      output_files/myfirst_niosii.sld
  53. BIN
      software/.metadata/.mylyn/repositories.xml.zip
  54. BIN
      software/.metadata/.plugins/org.eclipse.cdt.core/hello_world.1606398843993.pdom
  55. 0 2505
      software/.metadata/.plugins/org.eclipse.cdt.core/hello_world.language.settings.xml
  56. BIN
      software/.metadata/.plugins/org.eclipse.cdt.core/hello_world_bsp.1606398842096.pdom
  57. 0 1381
      software/.metadata/.plugins/org.eclipse.cdt.core/hello_world_bsp.language.settings.xml
  58. 0 1
      software/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
  59. 0 1
      software/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
  60. 0 34
      software/.metadata/.plugins/org.eclipse.core.resources/.history/32/202feef1ef2f001b1545ef0b5631d2e4
  61. 0 33
      software/.metadata/.plugins/org.eclipse.core.resources/.history/50/403241c7ef2f001b1545ef0b5631d2e4
  62. 0 35
      software/.metadata/.plugins/org.eclipse.core.resources/.history/8f/502e43e9f12f001b1545ef0b5631d2e4
  63. 0 35
      software/.metadata/.plugins/org.eclipse.core.resources/.history/a5/c0d6e426f02f001b1545ef0b5631d2e4
  64. 0 34
      software/.metadata/.plugins/org.eclipse.core.resources/.history/b7/608b34f6ef2f001b1545ef0b5631d2e4
  65. 0 35
      software/.metadata/.plugins/org.eclipse.core.resources/.history/d2/901d0554f02f001b1545ef0b5631d2e4
  66. 0 34
      software/.metadata/.plugins/org.eclipse.core.resources/.history/d4/80e2f03df22f001b1545ef0b5631d2e4
  67. 0 34
      software/.metadata/.plugins/org.eclipse.core.resources/.history/e0/b060dd18f02f001b1545ef0b5631d2e4
  68. 0 24
      software/.metadata/.plugins/org.eclipse.core.resources/.history/f5/30a9ceb9ef2f001b1545ef0b5631d2e4
  69. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/RemoteSystemsTempFiles/.markers.snap
  70. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/RemoteSystemsTempFiles/.syncinfo.snap
  71. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world/.indexes/properties.index
  72. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world/.markers.snap
  73. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world/.syncinfo.snap
  74. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.indexes/4b/de/properties.index
  75. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.indexes/73/de/properties.index
  76. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.indexes/properties.index
  77. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.markers.snap
  78. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.syncinfo.snap
  79. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
  80. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap
  81. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
  82. BIN
      software/.metadata/.plugins/org.eclipse.core.resources/0.snap
  83. 0 4
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.altera.sbtgui.ui.prefs
  84. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-hello_world.prefs
  85. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-hello_world_bsp.prefs
  86. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs
  87. 0 3
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs
  88. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
  89. 0 5
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs
  90. 0 3
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
  91. 0 4
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.logging.aeri.ide.prefs
  92. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
  93. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
  94. 0 3
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
  95. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs
  96. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs
  97. 0 2
      software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs
  98. 0 17
      software/.metadata/.plugins/org.eclipse.debug.core/.launches/hello_world Nios II Hardware configuration.launch
  99. 0 27
      software/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
  100. 0 0
      software/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi

+ 1 - 0
.gitignore

@@ -68,4 +68,5 @@ testbench/
 
 # ignore eclipse temp files
 obj/
+.metadata/
 *.log

+ 78 - 78
.qsys_edit/nios2_uc.xml

@@ -802,7 +802,7 @@
 								<delegate id="delegate_CommonDockStationFactory">
 									<root>true</root>
 									<content delegate="flap dock">
-										<window auto="true" direction="EAST"/>
+										<window auto="true" direction="WEST"/>
 										<placeholders>
 											<version>0</version>
 											<format>dock.PlaceholderList</format>
@@ -827,7 +827,7 @@
 										<fullscreen-action>false</fullscreen-action>
 										<node nodeId="1372710005721" orientation="HORIZONTAL" divider="0.22181146025878004">
 											<node nodeId="1375985011088" orientation="VERTICAL" divider="0.504054054054054">
-												<leaf id="3" nodeId="1375985003630">
+												<leaf id="2" nodeId="1375985003630">
 													<placeholders>
 														<placeholder>dock.single.Clock\ Domains\ \-\ Beta</placeholder>
 														<placeholder>dock.single.IP\ Catalog</placeholder>
@@ -853,7 +853,7 @@
 														</entry>
 													</placeholder-map>
 												</leaf>
-												<leaf id="1" nodeId="1375985011087">
+												<leaf id="4" nodeId="1375985011087">
 													<placeholders>
 														<placeholder>dock.single.Hierarchy</placeholder>
 													</placeholders>
@@ -880,7 +880,7 @@
 											<node nodeId="1372710005725" orientation="VERTICAL" divider="0.75">
 												<node nodeId="1372710005727" orientation="HORIZONTAL" divider="0.6183193900785428">
 													<node nodeId="1372710005733" orientation="VERTICAL" divider="0.75">
-														<leaf id="2" nodeId="1372710005735">
+														<leaf id="3" nodeId="1372710005735">
 															<placeholders>
 																<placeholder>dock.single.Connections</placeholder>
 																<placeholder>dock.single.System\ Contents</placeholder>
@@ -932,7 +932,7 @@
 														</leaf>
 													</node>
 													<node nodeId="1389812802503" orientation="VERTICAL" divider="0.6704331450094162">
-														<leaf id="4" nodeId="1389812800464">
+														<leaf id="1" nodeId="1389812800464">
 															<placeholders>
 																<placeholder>dock.single.Details</placeholder>
 																<placeholder>dock.single.Parameters</placeholder>
@@ -1013,63 +1013,24 @@
 									<children ignore="false"/>
 								</child>
 								<child>
-									<layout factory="delegate_StackDockStationFactory">
-										<selected>0</selected>
-										<placeholders>
-											<version>0</version>
-											<format>dock.PlaceholderList</format>
-											<entry>
-												<key shared="false">
-													<placeholder>dock.single.Hierarchy</placeholder>
-												</key>
-												<item key="convert" type="b">true</item>
-												<item key="convert-keys" type="a">
-													<item type="s">index</item>
-													<item type="s">id</item>
-													<item type="s">placeholder</item>
-												</item>
-												<item key="dock.index" type="i">0</item>
-												<item key="dock.id" type="i">0</item>
-												<item key="dock.placeholder" type="s">dock.single.Hierarchy</item>
-											</entry>
-											<entry>
-												<key shared="false">
-													<placeholder>dock.single.Device\ Family</placeholder>
-												</key>
-												<item key="convert" type="b">true</item>
-												<item key="convert-keys" type="a">
-													<item type="s">index</item>
-													<item type="s">id</item>
-													<item type="s">placeholder</item>
-												</item>
-												<item key="dock.index" type="i">1</item>
-												<item key="dock.id" type="i">1</item>
-												<item key="dock.placeholder" type="s">dock.single.Device\ Family</item>
-											</entry>
-										</placeholders>
+									<layout factory="predefined" placeholder="dock.single.Parameters">
+										<replacement id="dockablesingle Parameters"/>
+										<delegate id="delegate_ccontrol backup factory id">
+											<id>Parameters</id>
+											<area/>
+										</delegate>
 									</layout>
-									<children ignore="false">
-										<child>
-											<layout factory="predefined" placeholder="dock.single.Hierarchy">
-												<replacement id="dockablesingle Hierarchy"/>
-												<delegate id="delegate_ccontrol backup factory id">
-													<id>Hierarchy</id>
-													<area/>
-												</delegate>
-											</layout>
-											<children ignore="false"/>
-										</child>
-										<child>
-											<layout factory="predefined" placeholder="dock.single.Device\ Family">
-												<replacement id="dockablesingle Device Family"/>
-												<delegate id="delegate_ccontrol backup factory id">
-													<id>Device Family</id>
-													<area/>
-												</delegate>
-											</layout>
-											<children ignore="false"/>
-										</child>
-									</children>
+									<children ignore="false"/>
+								</child>
+								<child>
+									<layout factory="predefined" placeholder="dock.single.IP\ Catalog">
+										<replacement id="dockablesingle IP Catalog"/>
+										<delegate id="delegate_ccontrol backup factory id">
+											<id>IP Catalog</id>
+											<area/>
+										</delegate>
+									</layout>
+									<children ignore="false"/>
 								</child>
 								<child>
 									<layout factory="delegate_StackDockStationFactory">
@@ -1180,24 +1141,63 @@
 									</children>
 								</child>
 								<child>
-									<layout factory="predefined" placeholder="dock.single.IP\ Catalog">
-										<replacement id="dockablesingle IP Catalog"/>
-										<delegate id="delegate_ccontrol backup factory id">
-											<id>IP Catalog</id>
-											<area/>
-										</delegate>
-									</layout>
-									<children ignore="false"/>
-								</child>
-								<child>
-									<layout factory="predefined" placeholder="dock.single.Parameters">
-										<replacement id="dockablesingle Parameters"/>
-										<delegate id="delegate_ccontrol backup factory id">
-											<id>Parameters</id>
-											<area/>
-										</delegate>
+									<layout factory="delegate_StackDockStationFactory">
+										<selected>0</selected>
+										<placeholders>
+											<version>0</version>
+											<format>dock.PlaceholderList</format>
+											<entry>
+												<key shared="false">
+													<placeholder>dock.single.Hierarchy</placeholder>
+												</key>
+												<item key="convert" type="b">true</item>
+												<item key="convert-keys" type="a">
+													<item type="s">index</item>
+													<item type="s">id</item>
+													<item type="s">placeholder</item>
+												</item>
+												<item key="dock.index" type="i">0</item>
+												<item key="dock.id" type="i">0</item>
+												<item key="dock.placeholder" type="s">dock.single.Hierarchy</item>
+											</entry>
+											<entry>
+												<key shared="false">
+													<placeholder>dock.single.Device\ Family</placeholder>
+												</key>
+												<item key="convert" type="b">true</item>
+												<item key="convert-keys" type="a">
+													<item type="s">index</item>
+													<item type="s">id</item>
+													<item type="s">placeholder</item>
+												</item>
+												<item key="dock.index" type="i">1</item>
+												<item key="dock.id" type="i">1</item>
+												<item key="dock.placeholder" type="s">dock.single.Device\ Family</item>
+											</entry>
+										</placeholders>
 									</layout>
-									<children ignore="false"/>
+									<children ignore="false">
+										<child>
+											<layout factory="predefined" placeholder="dock.single.Hierarchy">
+												<replacement id="dockablesingle Hierarchy"/>
+												<delegate id="delegate_ccontrol backup factory id">
+													<id>Hierarchy</id>
+													<area/>
+												</delegate>
+											</layout>
+											<children ignore="false"/>
+										</child>
+										<child>
+											<layout factory="predefined" placeholder="dock.single.Device\ Family">
+												<replacement id="dockablesingle Device Family"/>
+												<delegate id="delegate_ccontrol backup factory id">
+													<id>Device Family</id>
+													<area/>
+												</delegate>
+											</layout>
+											<children ignore="false"/>
+										</child>
+									</children>
 								</child>
 							</children>
 						</root>

+ 26 - 6
.qsys_edit/nios2_uc_schematic.nlv

@@ -1,8 +1,28 @@
 # # File gsaved with Nlview version 6.3.8  2013-12-19 bk=1.2992 VDI=34 GEI=35
 # 
-preplace inst unsaved.clk_0 -pg 1 -lvl 1 -y 30
-preplace inst unsaved -pg 1 -lvl 1 -y 40 -regy -20
-preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)unsaved.reset,(SLAVE)clk_0.clk_in_reset) 1 0 1 NJ
-preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)clk_0.clk_in,(SLAVE)unsaved.clk) 1 0 1 NJ
-levelinfo -pg 1 0 50 270
-levelinfo -hier unsaved 60 90 260
+preplace inst nios2_uc.pio_BUTTON -pg 1 -lvl 3 -y 360
+preplace inst nios2_uc.nios2.clock_bridge -pg 1
+preplace inst nios2_uc -pg 1 -lvl 1 -y 40 -regy -20
+preplace inst nios2_uc.nios_custom_instr_floating_point_0 -pg 1 -lvl 3 -y 30
+preplace inst nios2_uc.lcd_16207 -pg 1 -lvl 3 -y 680
+preplace inst nios2_uc.nios2.reset_bridge -pg 1
+preplace inst nios2_uc.clk_50 -pg 1 -lvl 1 -y 300
+preplace inst nios2_uc.nios2 -pg 1 -lvl 2 -y 90
+preplace inst nios2_uc.pio_MATRIX -pg 1 -lvl 3 -y 480
+preplace inst nios2_uc.pio_LED -pg 1 -lvl 3 -y 260
+preplace inst nios2_uc.onchip_memory2 -pg 1 -lvl 3 -y 70
+preplace inst nios2_uc.nios2.cpu -pg 1
+preplace inst nios2_uc.jtag_uart -pg 1 -lvl 3 -y 150
+preplace netloc FAN_OUT<net_container>nios2_uc</net_container>(MASTER)nios2.irq,(SLAVE)jtag_uart.irq,(SLAVE)pio_BUTTON.irq) 1 2 1 760
+preplace netloc FAN_OUT<net_container>nios2_uc</net_container>(SLAVE)pio_MATRIX.clk,(SLAVE)onchip_memory2.clk1,(SLAVE)jtag_uart.clk,(SLAVE)lcd_16207.clk,(SLAVE)pio_BUTTON.clk,(SLAVE)pio_LED.clk,(MASTER)clk_50.clk,(SLAVE)nios2.clk) 1 1 2 340 530 780
+preplace netloc INTERCONNECT<net_container>nios2_uc</net_container>(MASTER)nios2.instruction_master,(SLAVE)jtag_uart.avalon_jtag_slave,(MASTER)nios2.data_master,(SLAVE)onchip_memory2.s1,(SLAVE)pio_MATRIX.s1,(SLAVE)lcd_16207.control_slave,(SLAVE)nios2.debug_mem_slave,(SLAVE)pio_LED.s1,(SLAVE)pio_BUTTON.s1) 1 1 2 380 50 740
+preplace netloc EXPORT<net_container>nios2_uc</net_container>(SLAVE)nios2_uc.pio_button_ext_conn,(SLAVE)pio_BUTTON.external_connection) 1 0 3 NJ 390 NJ 390 NJ
+preplace netloc EXPORT<net_container>nios2_uc</net_container>(SLAVE)lcd_16207.external,(SLAVE)nios2_uc.lcd_16207_ext) 1 0 3 NJ 730 NJ 730 NJ
+preplace netloc EXPORT<net_container>nios2_uc</net_container>(SLAVE)nios2_uc.clk,(SLAVE)clk_50.clk_in) 1 0 1 NJ
+preplace netloc EXPORT<net_container>nios2_uc</net_container>(SLAVE)nios2_uc.pio_matrix_ext_conn,(SLAVE)pio_MATRIX.external_connection) 1 0 3 NJ 510 NJ 510 NJ
+preplace netloc EXPORT<net_container>nios2_uc</net_container>(SLAVE)pio_LED.external_connection,(SLAVE)nios2_uc.pio_led_ext_conn) 1 0 3 NJ 370 NJ 290 NJ
+preplace netloc EXPORT<net_container>nios2_uc</net_container>(SLAVE)nios2_uc.reset,(SLAVE)clk_50.clk_in_reset) 1 0 1 NJ
+preplace netloc INTERCONNECT<net_container>nios2_uc</net_container>(SLAVE)onchip_memory2.reset1,(SLAVE)pio_LED.reset,(SLAVE)nios2.reset,(SLAVE)pio_MATRIX.reset,(SLAVE)pio_BUTTON.reset,(SLAVE)jtag_uart.reset,(SLAVE)lcd_16207.reset,(MASTER)clk_50.clk_reset,(MASTER)nios2.debug_reset_request) 1 1 2 360 750 800
+preplace netloc POINT_TO_POINT<net_container>nios2_uc</net_container>(MASTER)nios2.custom_instruction_master,(SLAVE)nios_custom_instr_floating_point_0.s1) 1 2 1 760
+levelinfo -pg 1 0 130 1050
+levelinfo -hier nios2_uc 140 170 500 870 1020

+ 3 - 4
.qsys_edit/preferences.xml

@@ -3,13 +3,12 @@
  <debug showDebugMenu="0" />
  <systemtable filter="All Interfaces">
   <columns>
-   <connections preferredWidth="143" />
+   <connections preferredWidth="47" />
    <irq preferredWidth="34" />
   </columns>
  </systemtable>
- <library
-   expandedCategories="Library/Processors and Peripherals,Library/Processors and Peripherals/Peripherals,Library,Library/Interface Protocols,Library/Interface Protocols/PCI Express/QSYS Example Designs,Project,Library/Interface Protocols/PCI Express" />
- <window width="1440" height="860" x="0" y="-1" />
+ <library expandedCategories="Library,Project" />
+ <window width="1280" height="1024" x="1280" y="379" />
  <hdlexample language="VHDL" />
  <generation synthesis="VHDL" />
 </preferences>

+ 39 - 2
myfirst_niosii.qsf

@@ -104,6 +104,43 @@ set_location_assignment PIN_F15 -to pio_led[22]
 set_location_assignment PIN_G15 -to pio_led[23]
 set_location_assignment PIN_G16 -to pio_led[24]
 set_location_assignment PIN_H15 -to pio_led[25]
-set_location_assignment PIN_M23 -to toggle_button
-set_location_assignment PIN_F17 -to toggle_led
+set_location_assignment PIN_M5 -to lcd_16207_ext_data[7]
+set_location_assignment PIN_M3 -to lcd_16207_ext_data[6]
+set_location_assignment PIN_K2 -to lcd_16207_ext_data[5]
+set_location_assignment PIN_K1 -to lcd_16207_ext_data[4]
+set_location_assignment PIN_K7 -to lcd_16207_ext_data[3]
+set_location_assignment PIN_L2 -to lcd_16207_ext_data[2]
+set_location_assignment PIN_L1 -to lcd_16207_ext_data[1]
+set_location_assignment PIN_L3 -to lcd_16207_ext_data[0]
+set_location_assignment PIN_L4 -to lcd_16207_ext_E
+set_location_assignment PIN_M2 -to lcd_16207_ext_RS
+set_location_assignment PIN_M1 -to lcd_16207_ext_RW
+set_location_assignment PIN_M23 -to buttons[0]
+set_location_assignment PIN_M21 -to buttons[1]
+set_location_assignment PIN_N21 -to buttons[2]
+set_location_assignment PIN_R24 -to buttons[3]
+set_location_assignment PIN_AF26 -to buttons[4]
+set_location_assignment PIN_AG23 -to buttons[5]
+set_location_assignment PIN_AH26 -to buttons[6]
+set_location_assignment PIN_AG26 -to buttons[7]
+set_location_assignment PIN_AC21 -to matrix_cols[0]
+set_location_assignment PIN_AD21 -to matrix_cols[1]
+set_location_assignment PIN_AD15 -to matrix_cols[2]
+set_location_assignment PIN_AC19 -to matrix_cols[3]
+set_location_assignment PIN_AD19 -to matrix_cols[4]
+set_location_assignment PIN_AF24 -to matrix_cols[5]
+set_location_assignment PIN_AF25 -to matrix_cols[6]
+set_location_assignment PIN_AE22 -to matrix_cols[7]
+set_location_assignment PIN_AC15 -to matrix_rows[0]
+set_location_assignment PIN_Y17 -to matrix_rows[1]
+set_location_assignment PIN_Y16 -to matrix_rows[2]
+set_location_assignment PIN_AE16 -to matrix_rows[3]
+set_location_assignment PIN_AE15 -to matrix_rows[4]
+set_location_assignment PIN_AF16 -to matrix_rows[5]
+set_location_assignment PIN_AF15 -to matrix_rows[6]
+set_location_assignment PIN_AE21 -to matrix_rows[7]
+set_location_assignment PIN_AC22 -to matrix_rows[8]
+set_location_assignment PIN_AF21 -to matrix_rows[9]
+set_location_assignment PIN_AD22 -to matrix_rows[10]
+set_location_assignment PIN_AD25 -to matrix_rows[11]
 set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

+ 110 - 43
myfirst_niosii.vhd

@@ -1,6 +1,6 @@
 library IEEE;
 use IEEE.STD_LOGIC_1164.ALL;
-use IEEE.std_logic_arith.ALL;
+use IEEE.numeric_std.ALL;
 use IEEE.STD_LOGIC_UNSIGNED.ALL;
 
 
@@ -8,56 +8,123 @@ entity myfirst_niosii is port (
 		clk: in std_logic;
 		rst: in std_logic;
 		pio_led: out std_logic_vector(31 downto 0);
-		toggle_button: in std_logic;
-		toggle_led: out std_logic
-	);
+		buttons: in std_logic_vector(7 downto 0);
+		matrix_rows: out std_logic_vector(11 downto 0);
+		matrix_cols: out std_logic_vector(7 downto 0);
+	   lcd_16207_ext_RS             : out   std_logic;                                        -- RS
+	   lcd_16207_ext_RW             : out   std_logic;                                        -- RW
+	   lcd_16207_ext_data           : inout std_logic_vector(7 downto 0)  := (others => 'X'); -- data
+	   lcd_16207_ext_E              : out   std_logic 
+);
+type matrix_t is array(integer range 0 to 7) of std_logic_vector(11 downto 0);
 end myfirst_niosii;
 
 architecture behav of myfirst_niosii is
-    component nios2_uc is
-        port (
-            clk_clk                 : in  std_logic                     := 'X'; -- clk
-            pio_led_ext_conn_export : out std_logic_vector(31 downto 0);        -- export
-            reset_reset_n           : in  std_logic                     := 'X'  -- reset_n
-        );
-    end component nios2_uc;
-	 
-	 signal toggle_led_s: std_logic := '0';
-	 signal state: std_logic := '0';
-	 signal counter: integer range 0 to 2**15-1 := 0;
+	component nios2_uc is port (
+		clk_clk                 	  : in    std_logic                     := 'X';  				-- clk
+		reset_reset_n           	  : in    std_logic                     := 'X';  				-- reset_n
+		lcd_16207_ext_RS             : out   std_logic;                                        -- RS
+		lcd_16207_ext_RW             : out   std_logic;                                        -- RW
+		lcd_16207_ext_data           : inout std_logic_vector(7 downto 0)  := (others => 'X'); -- data
+		lcd_16207_ext_E              : out   std_logic;                                        -- E
+		pio_led_ext_conn_export 	  : out   std_logic_vector(31 downto 0);         				-- export
+		pio_button_ext_conn_export   : in    std_logic_vector(7 downto 0)  := (others => 'X'); -- export
+		pio_matrix_ext_conn_export   : out   std_logic_vector(19 downto 0)                     -- export
+  
+	);
+	end component nios2_uc;
+
+	signal button_states: std_logic_vector(7 downto 0);
+	signal button_timer: integer range 0 to 2**20-1 := 0;
+
+	signal matrix_timer: integer range 0 to 2**15-1 := 0;
+	signal matrix_col_index: integer range 0 to 8 := 0;
+	signal matrix_s: matrix_t;
+	signal pio_matrix_s: std_logic_vector(19 downto 0);
 
 begin
 	 
-	     u0 : component nios2_uc
-        port map (
-            clk_clk                 => clk,                 --              clk.clk
-            pio_led_ext_conn_export => pio_led, -- pio_led_ext_conn.export
-            reset_reset_n           => rst            --            reset.reset_n
-        );
-		  
-		  
-		  toggle: process(clk, rst)
+	u0: component nios2_uc
+	port map (
+		clk_clk                 => clk, 
+		pio_led_ext_conn_export => pio_led, 
+		reset_reset_n           => rst,
+		pio_matrix_ext_conn_export => pio_matrix_s,
+		pio_button_ext_conn_export => button_states
+	);
+
 
+
+	matrix_set: process(clk, rst)
+	variable col_id : integer range 0 to 7;
+	begin
+		if rst = '0' then
+			matrix_s <= (
+				"111110011111",
+				"000100000101",
+				"010000000111",
+				"111110000000",
+				"000000011111",
+				"111110010001",
+				"101010011111",
+				"111010000000"
+			);
+		elsif rising_edge(clk) then
+			col_id := to_integer(unsigned(pio_matrix_s(15 downto 12)));
+			if col_id > 0 then
+				matrix_s(col_id-1) <= pio_matrix_s(11 downto 0);
+			end if;
+		end if;
+	end process;
+
+	
+	matrix_multiplex: process(clk, rst)
+
+	begin
+		if rst = '0' then
+			matrix_rows <= "111111111111";
+			matrix_cols <= "11111111";
+			matrix_timer <= 0;
+			matrix_col_index <= 0;
+		elsif rising_edge(clk) then
+			if matrix_timer = 2**15-1 then
+				matrix_timer <= 0;
+				if matrix_col_index = 7 then
+					matrix_col_index <= 0;
+				else
+					matrix_col_index <= matrix_col_index + 1;
+				end if;
 				
-		  begin
-				if rst = '0' then
-					counter <= 0;
-					state <= '0';
-				elsif rising_edge(clk) then
-					if counter = 2**15-1 then
-						counter <= 0;
-						if toggle_button = not state then
-							state <= toggle_button;
-							if toggle_button = '1' then
-								toggle_led_s <= not toggle_led_s;
-							end if;
-						end if;
-					else
-						counter <= counter + 1;
+				matrix_cols <= (others => '0');
+				matrix_rows <= (others => '0');
+			elsif matrix_timer = 2**11-1 then
+				matrix_cols(matrix_col_index) <= '1';
+				matrix_rows <= matrix_s(matrix_col_index);
+				matrix_timer <= matrix_timer + 1;
+			else
+				matrix_timer <= matrix_timer + 1;
+			end if;
+		end if;
+	end process;
+
+
+	button_debounce: process(clk, rst)	
+	begin
+		if rst = '0' then
+			button_timer <= 0;
+		elsif rising_edge(clk) then
+			if button_timer = 2**20-1 then
+				button_timer <= 0;
+				for id in 0 to 7 loop
+					if buttons(id) = not button_states(id) then
+						button_states(id) <= buttons(id);
+						
 					end if;
-				end if;
-		  end process;
-		  
-		  toggle_led <= toggle_led_s;
+				end loop;
+			else
+				button_timer <= button_timer + 1;
+			end if;
+		end if;
+	end process;
 end behav;
 

File diff suppressed because it is too large
+ 218 - 11
nios2_uc.qsys


File diff suppressed because it is too large
+ 4296 - 1213
nios2_uc.sopcinfo


+ 82 - 26
nios2_uc/nios2_uc.bsf

@@ -4,9 +4,9 @@ editor if you plan to continue editing the block that represents it in
 the Block Editor! File corruption is VERY likely to occur.
 */
 /*
-Copyright (C) 2019  Intel Corporation. All rights reserved.
+Copyright (C) 2018  Intel Corporation. All rights reserved.
 Your use of Intel Corporation's design tools, logic functions 
-and other software and tools, and any partner logic 
+and other software and tools, and its AMPP partner logic 
 functions, and any output files from any of the foregoing 
 (including device programming or simulation files), and any 
 associated documentation or information are expressly subject 
@@ -16,14 +16,13 @@ the Intel FPGA IP License Agreement, or other applicable license
 agreement, including, without limitation, that your use is for
 the sole purpose of programming logic devices manufactured by
 Intel and sold by Intel or its authorized distributors.  Please
-refer to the applicable agreement for further details, at
-https://fpgasoftware.intel.com/eula.
+refer to the applicable agreement for further details.
 */
 (header "symbol" (version "1.1"))
 (symbol
-	(rect 0 0 416 184)
+	(rect 0 0 416 352)
 	(text "nios2_uc" (rect 182 -1 217 11)(font "Arial" (font_size 10)))
-	(text "inst" (rect 8 168 20 180)(font "Arial" ))
+	(text "inst" (rect 8 336 20 348)(font "Arial" ))
 	(port
 		(pt 0 72)
 		(input)
@@ -32,40 +31,97 @@ https://fpgasoftware.intel.com/eula.
 		(line (pt 0 72)(pt 176 72)(line_width 1))
 	)
 	(port
-		(pt 0 152)
+		(pt 0 200)
+		(input)
+		(text "pio_button_ext_conn_export[7..0]" (rect 0 0 133 12)(font "Arial" (font_size 8)))
+		(text "pio_button_ext_conn_export[7..0]" (rect 4 189 196 200)(font "Arial" (font_size 8)))
+		(line (pt 0 200)(pt 176 200)(line_width 3))
+	)
+	(port
+		(pt 0 320)
 		(input)
 		(text "reset_reset_n" (rect 0 0 56 12)(font "Arial" (font_size 8)))
-		(text "reset_reset_n" (rect 4 141 82 152)(font "Arial" (font_size 8)))
-		(line (pt 0 152)(pt 176 152)(line_width 1))
+		(text "reset_reset_n" (rect 4 309 82 320)(font "Arial" (font_size 8)))
+		(line (pt 0 320)(pt 176 320)(line_width 1))
 	)
 	(port
 		(pt 0 112)
 		(output)
+		(text "lcd_16207_ext_RS" (rect 0 0 76 12)(font "Arial" (font_size 8)))
+		(text "lcd_16207_ext_RS" (rect 4 101 100 112)(font "Arial" (font_size 8)))
+		(line (pt 0 112)(pt 176 112)(line_width 1))
+	)
+	(port
+		(pt 0 128)
+		(output)
+		(text "lcd_16207_ext_RW" (rect 0 0 81 12)(font "Arial" (font_size 8)))
+		(text "lcd_16207_ext_RW" (rect 4 117 100 128)(font "Arial" (font_size 8)))
+		(line (pt 0 128)(pt 176 128)(line_width 1))
+	)
+	(port
+		(pt 0 160)
+		(output)
+		(text "lcd_16207_ext_E" (rect 0 0 69 12)(font "Arial" (font_size 8)))
+		(text "lcd_16207_ext_E" (rect 4 149 94 160)(font "Arial" (font_size 8)))
+		(line (pt 0 160)(pt 176 160)(line_width 1))
+	)
+	(port
+		(pt 0 240)
+		(output)
 		(text "pio_led_ext_conn_export[31..0]" (rect 0 0 123 12)(font "Arial" (font_size 8)))
-		(text "pio_led_ext_conn_export[31..0]" (rect 4 101 184 112)(font "Arial" (font_size 8)))
-		(line (pt 0 112)(pt 176 112)(line_width 3))
+		(text "pio_led_ext_conn_export[31..0]" (rect 4 229 184 240)(font "Arial" (font_size 8)))
+		(line (pt 0 240)(pt 176 240)(line_width 3))
+	)
+	(port
+		(pt 0 280)
+		(output)
+		(text "pio_matrix_ext_conn_export[19..0]" (rect 0 0 138 12)(font "Arial" (font_size 8)))
+		(text "pio_matrix_ext_conn_export[19..0]" (rect 4 269 202 280)(font "Arial" (font_size 8)))
+		(line (pt 0 280)(pt 176 280)(line_width 3))
+	)
+	(port
+		(pt 0 144)
+		(bidir)
+		(text "lcd_16207_ext_data[7..0]" (rect 0 0 99 12)(font "Arial" (font_size 8)))
+		(text "lcd_16207_ext_data[7..0]" (rect 4 133 148 144)(font "Arial" (font_size 8)))
+		(line (pt 0 144)(pt 176 144)(line_width 3))
 	)
 	(drawing
 		(text "clk" (rect 161 43 340 99)(font "Arial" (color 128 0 0)(font_size 9)))
 		(text "clk" (rect 181 67 380 144)(font "Arial" (color 0 0 0)))
-		(text "pio_led_ext_conn" (rect 75 83 246 179)(font "Arial" (color 128 0 0)(font_size 9)))
-		(text "export" (rect 181 107 398 224)(font "Arial" (color 0 0 0)))
-		(text "reset" (rect 147 123 324 259)(font "Arial" (color 128 0 0)(font_size 9)))
-		(text "reset_n" (rect 181 147 404 304)(font "Arial" (color 0 0 0)))
-		(text " nios2_uc " (rect 375 168 810 346)(font "Arial" ))
+		(text "lcd_16207_ext" (rect 95 83 268 179)(font "Arial" (color 128 0 0)(font_size 9)))
+		(text "RS" (rect 181 107 374 224)(font "Arial" (color 0 0 0)))
+		(text "RW" (rect 181 123 374 256)(font "Arial" (color 0 0 0)))
+		(text "data" (rect 181 139 386 288)(font "Arial" (color 0 0 0)))
+		(text "E" (rect 181 155 368 320)(font "Arial" (color 0 0 0)))
+		(text "pio_button_ext_conn" (rect 56 171 226 355)(font "Arial" (color 128 0 0)(font_size 9)))
+		(text "export" (rect 181 195 398 400)(font "Arial" (color 0 0 0)))
+		(text "pio_led_ext_conn" (rect 75 211 246 435)(font "Arial" (color 128 0 0)(font_size 9)))
+		(text "export" (rect 181 235 398 480)(font "Arial" (color 0 0 0)))
+		(text "pio_matrix_ext_conn" (rect 56 251 226 515)(font "Arial" (color 128 0 0)(font_size 9)))
+		(text "export" (rect 181 275 398 560)(font "Arial" (color 0 0 0)))
+		(text "reset" (rect 147 291 324 595)(font "Arial" (color 128 0 0)(font_size 9)))
+		(text "reset_n" (rect 181 315 404 640)(font "Arial" (color 0 0 0)))
+		(text " nios2_uc " (rect 375 336 810 682)(font "Arial" ))
 		(line (pt 176 32)(pt 240 32)(line_width 1))
-		(line (pt 240 32)(pt 240 168)(line_width 1))
-		(line (pt 176 168)(pt 240 168)(line_width 1))
-		(line (pt 176 32)(pt 176 168)(line_width 1))
+		(line (pt 240 32)(pt 240 336)(line_width 1))
+		(line (pt 176 336)(pt 240 336)(line_width 1))
+		(line (pt 176 32)(pt 176 336)(line_width 1))
 		(line (pt 177 52)(pt 177 76)(line_width 1))
 		(line (pt 178 52)(pt 178 76)(line_width 1))
-		(line (pt 177 92)(pt 177 116)(line_width 1))
-		(line (pt 178 92)(pt 178 116)(line_width 1))
-		(line (pt 177 132)(pt 177 156)(line_width 1))
-		(line (pt 178 132)(pt 178 156)(line_width 1))
+		(line (pt 177 92)(pt 177 164)(line_width 1))
+		(line (pt 178 92)(pt 178 164)(line_width 1))
+		(line (pt 177 180)(pt 177 204)(line_width 1))
+		(line (pt 178 180)(pt 178 204)(line_width 1))
+		(line (pt 177 220)(pt 177 244)(line_width 1))
+		(line (pt 178 220)(pt 178 244)(line_width 1))
+		(line (pt 177 260)(pt 177 284)(line_width 1))
+		(line (pt 178 260)(pt 178 284)(line_width 1))
+		(line (pt 177 300)(pt 177 324)(line_width 1))
+		(line (pt 178 300)(pt 178 324)(line_width 1))
 		(line (pt 0 0)(pt 416 0)(line_width 1))
-		(line (pt 416 0)(pt 416 184)(line_width 1))
-		(line (pt 0 184)(pt 416 184)(line_width 1))
-		(line (pt 0 0)(pt 0 184)(line_width 1))
+		(line (pt 416 0)(pt 416 352)(line_width 1))
+		(line (pt 0 352)(pt 416 352)(line_width 1))
+		(line (pt 0 0)(pt 0 352)(line_width 1))
 	)
 )

File diff suppressed because it is too large
+ 1340 - 475
nios2_uc/nios2_uc.xml


+ 15 - 3
nios2_uc/nios2_uc_bb.v

@@ -1,10 +1,22 @@
 
 module nios2_uc (
 	clk_clk,
-	reset_reset_n,
-	pio_led_ext_conn_export);	
+	lcd_16207_ext_RS,
+	lcd_16207_ext_RW,
+	lcd_16207_ext_data,
+	lcd_16207_ext_E,
+	pio_button_ext_conn_export,
+	pio_led_ext_conn_export,
+	pio_matrix_ext_conn_export,
+	reset_reset_n);	
 
 	input		clk_clk;
-	input		reset_reset_n;
+	output		lcd_16207_ext_RS;
+	output		lcd_16207_ext_RW;
+	inout	[7:0]	lcd_16207_ext_data;
+	output		lcd_16207_ext_E;
+	input	[7:0]	pio_button_ext_conn_export;
 	output	[31:0]	pio_led_ext_conn_export;
+	output	[19:0]	pio_matrix_ext_conn_export;
+	input		reset_reset_n;
 endmodule

+ 9 - 3
nios2_uc/nios2_uc_inst.v

@@ -1,6 +1,12 @@
 	nios2_uc u0 (
-		.clk_clk                 (<connected-to-clk_clk>),                 //              clk.clk
-		.reset_reset_n           (<connected-to-reset_reset_n>),           //            reset.reset_n
-		.pio_led_ext_conn_export (<connected-to-pio_led_ext_conn_export>)  // pio_led_ext_conn.export
+		.clk_clk                    (<connected-to-clk_clk>),                    //                 clk.clk
+		.lcd_16207_ext_RS           (<connected-to-lcd_16207_ext_RS>),           //       lcd_16207_ext.RS
+		.lcd_16207_ext_RW           (<connected-to-lcd_16207_ext_RW>),           //                    .RW
+		.lcd_16207_ext_data         (<connected-to-lcd_16207_ext_data>),         //                    .data
+		.lcd_16207_ext_E            (<connected-to-lcd_16207_ext_E>),            //                    .E
+		.pio_button_ext_conn_export (<connected-to-pio_button_ext_conn_export>), // pio_button_ext_conn.export
+		.pio_led_ext_conn_export    (<connected-to-pio_led_ext_conn_export>),    //    pio_led_ext_conn.export
+		.pio_matrix_ext_conn_export (<connected-to-pio_matrix_ext_conn_export>), // pio_matrix_ext_conn.export
+		.reset_reset_n              (<connected-to-reset_reset_n>)               //               reset.reset_n
 	);
 

File diff suppressed because it is too large
+ 9237 - 3553
nios2_uc/synthesis/nios2_uc.debuginfo


File diff suppressed because it is too large
+ 220 - 82
nios2_uc/synthesis/nios2_uc.qip


File diff suppressed because it is too large
+ 236 - 0
nios2_uc/synthesis/nios2_uc.regmap


+ 609 - 56
nios2_uc/synthesis/nios2_uc.vhd

@@ -1,6 +1,6 @@
 -- nios2_uc.vhd
 
+-- Generated using ACDS version 18.1 625
 
 library IEEE;
 use IEEE.std_logic_1164.all;
@@ -8,9 +8,15 @@ use IEEE.numeric_std.all;
 
 entity nios2_uc is
 	port (
-		clk_clk                 : in  std_logic                     := '0'; --              clk.clk
-		pio_led_ext_conn_export : out std_logic_vector(31 downto 0);        -- pio_led_ext_conn.export
-		reset_reset_n           : in  std_logic                     := '0'  --            reset.reset_n
+		clk_clk                    : in    std_logic                     := '0';             --                 clk.clk
+		lcd_16207_ext_RS           : out   std_logic;                                        --       lcd_16207_ext.RS
+		lcd_16207_ext_RW           : out   std_logic;                                        --                    .RW
+		lcd_16207_ext_data         : inout std_logic_vector(7 downto 0)  := (others => '0'); --                    .data
+		lcd_16207_ext_E            : out   std_logic;                                        --                    .E
+		pio_button_ext_conn_export : in    std_logic_vector(7 downto 0)  := (others => '0'); -- pio_button_ext_conn.export
+		pio_led_ext_conn_export    : out   std_logic_vector(31 downto 0);                    --    pio_led_ext_conn.export
+		pio_matrix_ext_conn_export : out   std_logic_vector(19 downto 0);                    -- pio_matrix_ext_conn.export
+		reset_reset_n              : in    std_logic                     := '0'              --               reset.reset_n
 	);
 end entity nios2_uc;
 
@@ -30,6 +36,23 @@ architecture rtl of nios2_uc is
 		);
 	end component nios2_uc_jtag_uart;
 
+	component nios2_uc_lcd_16207 is
+		port (
+			reset_n       : in    std_logic                    := 'X';             -- reset_n
+			clk           : in    std_logic                    := 'X';             -- clk
+			begintransfer : in    std_logic                    := 'X';             -- begintransfer
+			read          : in    std_logic                    := 'X';             -- read
+			write         : in    std_logic                    := 'X';             -- write
+			readdata      : out   std_logic_vector(7 downto 0);                    -- readdata
+			writedata     : in    std_logic_vector(7 downto 0) := (others => 'X'); -- writedata
+			address       : in    std_logic_vector(1 downto 0) := (others => 'X'); -- address
+			LCD_RS        : out   std_logic;                                       -- export
+			LCD_RW        : out   std_logic;                                       -- export
+			LCD_data      : inout std_logic_vector(7 downto 0) := (others => 'X'); -- export
+			LCD_E         : out   std_logic                                        -- export
+		);
+	end component nios2_uc_lcd_16207;
+
 	component nios2_uc_nios2 is
 		port (
 			clk                                 : in  std_logic                     := 'X';             -- clk
@@ -57,10 +80,44 @@ architecture rtl of nios2_uc is
 			debug_mem_slave_waitrequest         : out std_logic;                                        -- waitrequest
 			debug_mem_slave_write               : in  std_logic                     := 'X';             -- write
 			debug_mem_slave_writedata           : in  std_logic_vector(31 downto 0) := (others => 'X'); -- writedata
-			dummy_ci_port                       : out std_logic                                         -- readra
+			E_ci_multi_done                     : in  std_logic                     := 'X';             -- done
+			E_ci_multi_clk_en                   : out std_logic;                                        -- clk_en
+			E_ci_multi_start                    : out std_logic;                                        -- start
+			E_ci_result                         : in  std_logic_vector(31 downto 0) := (others => 'X'); -- result
+			D_ci_a                              : out std_logic_vector(4 downto 0);                     -- a
+			D_ci_b                              : out std_logic_vector(4 downto 0);                     -- b
+			D_ci_c                              : out std_logic_vector(4 downto 0);                     -- c
+			D_ci_n                              : out std_logic_vector(7 downto 0);                     -- n
+			D_ci_readra                         : out std_logic;                                        -- readra
+			D_ci_readrb                         : out std_logic;                                        -- readrb
+			D_ci_writerc                        : out std_logic;                                        -- writerc
+			E_ci_dataa                          : out std_logic_vector(31 downto 0);                    -- dataa
+			E_ci_datab                          : out std_logic_vector(31 downto 0);                    -- datab
+			E_ci_multi_clock                    : out std_logic;                                        -- clk
+			E_ci_multi_reset                    : out std_logic;                                        -- reset
+			E_ci_multi_reset_req                : out std_logic;                                        -- reset_req
+			W_ci_estatus                        : out std_logic;                                        -- estatus
+			W_ci_ipending                       : out std_logic_vector(31 downto 0)                     -- ipending
 		);
 	end component nios2_uc_nios2;
 
+	component fpoint_wrapper is
+		generic (
+			useDivider : integer := 0
+		);
+		port (
+			clk    : in  std_logic                     := 'X';             -- clk
+			clk_en : in  std_logic                     := 'X';             -- clk_en
+			dataa  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- dataa
+			datab  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- datab
+			n      : in  std_logic_vector(1 downto 0)  := (others => 'X'); -- n
+			reset  : in  std_logic                     := 'X';             -- reset
+			start  : in  std_logic                     := 'X';             -- start
+			done   : out std_logic;                                        -- done
+			result : out std_logic_vector(31 downto 0)                     -- result
+		);
+	end component fpoint_wrapper;
+
 	component nios2_uc_onchip_memory2 is
 		port (
 			clk        : in  std_logic                     := 'X';             -- clk
@@ -77,6 +134,16 @@ architecture rtl of nios2_uc is
 		);
 	end component nios2_uc_onchip_memory2;
 
+	component nios2_uc_pio_BUTTON is
+		port (
+			clk      : in  std_logic                     := 'X';             -- clk
+			reset_n  : in  std_logic                     := 'X';             -- reset_n
+			address  : in  std_logic_vector(1 downto 0)  := (others => 'X'); -- address
+			readdata : out std_logic_vector(31 downto 0);                    -- readdata
+			in_port  : in  std_logic_vector(7 downto 0)  := (others => 'X')  -- export
+		);
+	end component nios2_uc_pio_BUTTON;
+
 	component nios2_uc_pio_LED is
 		port (
 			clk        : in  std_logic                     := 'X';             -- clk
@@ -90,6 +157,170 @@ architecture rtl of nios2_uc is
 		);
 	end component nios2_uc_pio_LED;
 
+	component nios2_uc_pio_MATRIX is
+		port (
+			clk        : in  std_logic                     := 'X';             -- clk
+			reset_n    : in  std_logic                     := 'X';             -- reset_n
+			address    : in  std_logic_vector(1 downto 0)  := (others => 'X'); -- address
+			write_n    : in  std_logic                     := 'X';             -- write_n
+			writedata  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- writedata
+			chipselect : in  std_logic                     := 'X';             -- chipselect
+			readdata   : out std_logic_vector(31 downto 0);                    -- readdata
+			out_port   : out std_logic_vector(19 downto 0)                     -- export
+		);
+	end component nios2_uc_pio_MATRIX;
+
+	component altera_customins_master_translator is
+		generic (
+			SHARED_COMB_AND_MULTI : integer := 0
+		);
+		port (
+			ci_slave_dataa            : in  std_logic_vector(31 downto 0) := (others => 'X'); -- dataa
+			ci_slave_datab            : in  std_logic_vector(31 downto 0) := (others => 'X'); -- datab
+			ci_slave_result           : out std_logic_vector(31 downto 0);                    -- result
+			ci_slave_n                : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- n
+			ci_slave_readra           : in  std_logic                     := 'X';             -- readra
+			ci_slave_readrb           : in  std_logic                     := 'X';             -- readrb
+			ci_slave_writerc          : in  std_logic                     := 'X';             -- writerc
+			ci_slave_a                : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- a
+			ci_slave_b                : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- b
+			ci_slave_c                : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- c
+			ci_slave_ipending         : in  std_logic_vector(31 downto 0) := (others => 'X'); -- ipending
+			ci_slave_estatus          : in  std_logic                     := 'X';             -- estatus
+			ci_slave_multi_clk        : in  std_logic                     := 'X';             -- clk
+			ci_slave_multi_reset      : in  std_logic                     := 'X';             -- reset
+			ci_slave_multi_clken      : in  std_logic                     := 'X';             -- clk_en
+			ci_slave_multi_reset_req  : in  std_logic                     := 'X';             -- reset_req
+			ci_slave_multi_start      : in  std_logic                     := 'X';             -- start
+			ci_slave_multi_done       : out std_logic;                                        -- done
+			comb_ci_master_dataa      : out std_logic_vector(31 downto 0);                    -- dataa
+			comb_ci_master_datab      : out std_logic_vector(31 downto 0);                    -- datab
+			comb_ci_master_result     : in  std_logic_vector(31 downto 0) := (others => 'X'); -- result
+			comb_ci_master_n          : out std_logic_vector(7 downto 0);                     -- n
+			comb_ci_master_readra     : out std_logic;                                        -- readra
+			comb_ci_master_readrb     : out std_logic;                                        -- readrb
+			comb_ci_master_writerc    : out std_logic;                                        -- writerc
+			comb_ci_master_a          : out std_logic_vector(4 downto 0);                     -- a
+			comb_ci_master_b          : out std_logic_vector(4 downto 0);                     -- b
+			comb_ci_master_c          : out std_logic_vector(4 downto 0);                     -- c
+			comb_ci_master_ipending   : out std_logic_vector(31 downto 0);                    -- ipending
+			comb_ci_master_estatus    : out std_logic;                                        -- estatus
+			multi_ci_master_clk       : out std_logic;                                        -- clk
+			multi_ci_master_reset     : out std_logic;                                        -- reset
+			multi_ci_master_clken     : out std_logic;                                        -- clk_en
+			multi_ci_master_reset_req : out std_logic;                                        -- reset_req
+			multi_ci_master_start     : out std_logic;                                        -- start
+			multi_ci_master_done      : in  std_logic                     := 'X';             -- done
+			multi_ci_master_dataa     : out std_logic_vector(31 downto 0);                    -- dataa
+			multi_ci_master_datab     : out std_logic_vector(31 downto 0);                    -- datab
+			multi_ci_master_result    : in  std_logic_vector(31 downto 0) := (others => 'X'); -- result
+			multi_ci_master_n         : out std_logic_vector(7 downto 0);                     -- n
+			multi_ci_master_readra    : out std_logic;                                        -- readra
+			multi_ci_master_readrb    : out std_logic;                                        -- readrb
+			multi_ci_master_writerc   : out std_logic;                                        -- writerc
+			multi_ci_master_a         : out std_logic_vector(4 downto 0);                     -- a
+			multi_ci_master_b         : out std_logic_vector(4 downto 0);                     -- b
+			multi_ci_master_c         : out std_logic_vector(4 downto 0);                     -- c
+			ci_slave_multi_dataa      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- multi_dataa
+			ci_slave_multi_datab      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- multi_datab
+			ci_slave_multi_result     : out std_logic_vector(31 downto 0);                    -- multi_result
+			ci_slave_multi_n          : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- multi_n
+			ci_slave_multi_readra     : in  std_logic                     := 'X';             -- multi_readra
+			ci_slave_multi_readrb     : in  std_logic                     := 'X';             -- multi_readrb
+			ci_slave_multi_writerc    : in  std_logic                     := 'X';             -- multi_writerc
+			ci_slave_multi_a          : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- multi_a
+			ci_slave_multi_b          : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- multi_b
+			ci_slave_multi_c          : in  std_logic_vector(4 downto 0)  := (others => 'X')  -- multi_c
+		);
+	end component altera_customins_master_translator;
+
+	component nios2_uc_nios2_custom_instruction_master_multi_xconnect is
+		port (
+			ci_slave_dataa       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- dataa
+			ci_slave_datab       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- datab
+			ci_slave_result      : out std_logic_vector(31 downto 0);                    -- result
+			ci_slave_n           : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- n
+			ci_slave_readra      : in  std_logic                     := 'X';             -- readra
+			ci_slave_readrb      : in  std_logic                     := 'X';             -- readrb
+			ci_slave_writerc     : in  std_logic                     := 'X';             -- writerc
+			ci_slave_a           : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- a
+			ci_slave_b           : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- b
+			ci_slave_c           : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- c
+			ci_slave_ipending    : in  std_logic_vector(31 downto 0) := (others => 'X'); -- ipending
+			ci_slave_estatus     : in  std_logic                     := 'X';             -- estatus
+			ci_slave_clk         : in  std_logic                     := 'X';             -- clk
+			ci_slave_reset       : in  std_logic                     := 'X';             -- reset
+			ci_slave_clken       : in  std_logic                     := 'X';             -- clk_en
+			ci_slave_reset_req   : in  std_logic                     := 'X';             -- reset_req
+			ci_slave_start       : in  std_logic                     := 'X';             -- start
+			ci_slave_done        : out std_logic;                                        -- done
+			ci_master0_dataa     : out std_logic_vector(31 downto 0);                    -- dataa
+			ci_master0_datab     : out std_logic_vector(31 downto 0);                    -- datab
+			ci_master0_result    : in  std_logic_vector(31 downto 0) := (others => 'X'); -- result
+			ci_master0_n         : out std_logic_vector(7 downto 0);                     -- n
+			ci_master0_readra    : out std_logic;                                        -- readra
+			ci_master0_readrb    : out std_logic;                                        -- readrb
+			ci_master0_writerc   : out std_logic;                                        -- writerc
+			ci_master0_a         : out std_logic_vector(4 downto 0);                     -- a
+			ci_master0_b         : out std_logic_vector(4 downto 0);                     -- b
+			ci_master0_c         : out std_logic_vector(4 downto 0);                     -- c
+			ci_master0_ipending  : out std_logic_vector(31 downto 0);                    -- ipending
+			ci_master0_estatus   : out std_logic;                                        -- estatus
+			ci_master0_clk       : out std_logic;                                        -- clk
+			ci_master0_reset     : out std_logic;                                        -- reset
+			ci_master0_clken     : out std_logic;                                        -- clk_en
+			ci_master0_reset_req : out std_logic;                                        -- reset_req
+			ci_master0_start     : out std_logic;                                        -- start
+			ci_master0_done      : in  std_logic                     := 'X'              -- done
+		);
+	end component nios2_uc_nios2_custom_instruction_master_multi_xconnect;
+
+	component altera_customins_slave_translator is
+		generic (
+			N_WIDTH          : integer := 8;
+			USE_DONE         : integer := 1;
+			NUM_FIXED_CYCLES : integer := 2
+		);
+		port (
+			ci_slave_dataa      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- dataa
+			ci_slave_datab      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- datab
+			ci_slave_result     : out std_logic_vector(31 downto 0);                    -- result
+			ci_slave_n          : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- n
+			ci_slave_readra     : in  std_logic                     := 'X';             -- readra
+			ci_slave_readrb     : in  std_logic                     := 'X';             -- readrb
+			ci_slave_writerc    : in  std_logic                     := 'X';             -- writerc
+			ci_slave_a          : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- a
+			ci_slave_b          : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- b
+			ci_slave_c          : in  std_logic_vector(4 downto 0)  := (others => 'X'); -- c
+			ci_slave_ipending   : in  std_logic_vector(31 downto 0) := (others => 'X'); -- ipending
+			ci_slave_estatus    : in  std_logic                     := 'X';             -- estatus
+			ci_slave_clk        : in  std_logic                     := 'X';             -- clk
+			ci_slave_clken      : in  std_logic                     := 'X';             -- clk_en
+			ci_slave_reset_req  : in  std_logic                     := 'X';             -- reset_req
+			ci_slave_reset      : in  std_logic                     := 'X';             -- reset
+			ci_slave_start      : in  std_logic                     := 'X';             -- start
+			ci_slave_done       : out std_logic;                                        -- done
+			ci_master_dataa     : out std_logic_vector(31 downto 0);                    -- dataa
+			ci_master_datab     : out std_logic_vector(31 downto 0);                    -- datab
+			ci_master_result    : in  std_logic_vector(31 downto 0) := (others => 'X'); -- result
+			ci_master_n         : out std_logic_vector(1 downto 0);                     -- n
+			ci_master_clk       : out std_logic;                                        -- clk
+			ci_master_clken     : out std_logic;                                        -- clk_en
+			ci_master_reset     : out std_logic;                                        -- reset
+			ci_master_start     : out std_logic;                                        -- start
+			ci_master_done      : in  std_logic                     := 'X';             -- done
+			ci_master_readra    : out std_logic;                                        -- readra
+			ci_master_readrb    : out std_logic;                                        -- readrb
+			ci_master_writerc   : out std_logic;                                        -- writerc
+			ci_master_a         : out std_logic_vector(4 downto 0);                     -- a
+			ci_master_b         : out std_logic_vector(4 downto 0);                     -- b
+			ci_master_c         : out std_logic_vector(4 downto 0);                     -- c
+			ci_master_ipending  : out std_logic_vector(31 downto 0);                    -- ipending
+			ci_master_estatus   : out std_logic;                                        -- estatus
+			ci_master_reset_req : out std_logic                                         -- reset_req
+		);
+	end component altera_customins_slave_translator;
+
 	component nios2_uc_mm_interconnect_0 is
 		port (
 			clk_50_clk_clk                          : in  std_logic                     := 'X';             -- clk
@@ -113,6 +344,12 @@ architecture rtl of nios2_uc is
 			jtag_uart_avalon_jtag_slave_writedata   : out std_logic_vector(31 downto 0);                    -- writedata
 			jtag_uart_avalon_jtag_slave_waitrequest : in  std_logic                     := 'X';             -- waitrequest
 			jtag_uart_avalon_jtag_slave_chipselect  : out std_logic;                                        -- chipselect
+			lcd_16207_control_slave_address         : out std_logic_vector(1 downto 0);                     -- address
+			lcd_16207_control_slave_write           : out std_logic;                                        -- write
+			lcd_16207_control_slave_read            : out std_logic;                                        -- read
+			lcd_16207_control_slave_readdata        : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- readdata
+			lcd_16207_control_slave_writedata       : out std_logic_vector(7 downto 0);                     -- writedata
+			lcd_16207_control_slave_begintransfer   : out std_logic;                                        -- begintransfer
 			nios2_debug_mem_slave_address           : out std_logic_vector(8 downto 0);                     -- address
 			nios2_debug_mem_slave_write             : out std_logic;                                        -- write
 			nios2_debug_mem_slave_read              : out std_logic;                                        -- read
@@ -128,11 +365,18 @@ architecture rtl of nios2_uc is
 			onchip_memory2_s1_byteenable            : out std_logic_vector(3 downto 0);                     -- byteenable
 			onchip_memory2_s1_chipselect            : out std_logic;                                        -- chipselect
 			onchip_memory2_s1_clken                 : out std_logic;                                        -- clken
+			pio_BUTTON_s1_address                   : out std_logic_vector(1 downto 0);                     -- address
+			pio_BUTTON_s1_readdata                  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- readdata
 			pio_LED_s1_address                      : out std_logic_vector(1 downto 0);                     -- address
 			pio_LED_s1_write                        : out std_logic;                                        -- write
 			pio_LED_s1_readdata                     : in  std_logic_vector(31 downto 0) := (others => 'X'); -- readdata
 			pio_LED_s1_writedata                    : out std_logic_vector(31 downto 0);                    -- writedata
-			pio_LED_s1_chipselect                   : out std_logic                                         -- chipselect
+			pio_LED_s1_chipselect                   : out std_logic;                                        -- chipselect
+			pio_MATRIX_s1_address                   : out std_logic_vector(1 downto 0);                     -- address
+			pio_MATRIX_s1_write                     : out std_logic;                                        -- write
+			pio_MATRIX_s1_readdata                  : in  std_logic_vector(31 downto 0) := (others => 'X'); -- readdata
+			pio_MATRIX_s1_writedata                 : out std_logic_vector(31 downto 0);                    -- writedata
+			pio_MATRIX_s1_chipselect                : out std_logic                                         -- chipselect
 		);
 	end component nios2_uc_mm_interconnect_0;
 
@@ -211,55 +455,130 @@ architecture rtl of nios2_uc is
 		);
 	end component altera_reset_controller;
 
-	signal nios2_data_master_readdata                                    : std_logic_vector(31 downto 0); -- mm_interconnect_0:nios2_data_master_readdata -> nios2:d_readdata
-	signal nios2_data_master_waitrequest                                 : std_logic;                     -- mm_interconnect_0:nios2_data_master_waitrequest -> nios2:d_waitrequest
-	signal nios2_data_master_debugaccess                                 : std_logic;                     -- nios2:debug_mem_slave_debugaccess_to_roms -> mm_interconnect_0:nios2_data_master_debugaccess
-	signal nios2_data_master_address                                     : std_logic_vector(19 downto 0); -- nios2:d_address -> mm_interconnect_0:nios2_data_master_address
-	signal nios2_data_master_byteenable                                  : std_logic_vector(3 downto 0);  -- nios2:d_byteenable -> mm_interconnect_0:nios2_data_master_byteenable
-	signal nios2_data_master_read                                        : std_logic;                     -- nios2:d_read -> mm_interconnect_0:nios2_data_master_read
-	signal nios2_data_master_write                                       : std_logic;                     -- nios2:d_write -> mm_interconnect_0:nios2_data_master_write
-	signal nios2_data_master_writedata                                   : std_logic_vector(31 downto 0); -- nios2:d_writedata -> mm_interconnect_0:nios2_data_master_writedata
-	signal nios2_instruction_master_readdata                             : std_logic_vector(31 downto 0); -- mm_interconnect_0:nios2_instruction_master_readdata -> nios2:i_readdata
-	signal nios2_instruction_master_waitrequest                          : std_logic;                     -- mm_interconnect_0:nios2_instruction_master_waitrequest -> nios2:i_waitrequest
-	signal nios2_instruction_master_address                              : std_logic_vector(19 downto 0); -- nios2:i_address -> mm_interconnect_0:nios2_instruction_master_address
-	signal nios2_instruction_master_read                                 : std_logic;                     -- nios2:i_read -> mm_interconnect_0:nios2_instruction_master_read
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_chipselect      : std_logic;                     -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_chipselect -> jtag_uart:av_chipselect
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_readdata        : std_logic_vector(31 downto 0); -- jtag_uart:av_readdata -> mm_interconnect_0:jtag_uart_avalon_jtag_slave_readdata
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_waitrequest     : std_logic;                     -- jtag_uart:av_waitrequest -> mm_interconnect_0:jtag_uart_avalon_jtag_slave_waitrequest
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_address         : std_logic_vector(0 downto 0);  -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_address -> jtag_uart:av_address
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_read            : std_logic;                     -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_read -> mm_interconnect_0_jtag_uart_avalon_jtag_slave_read:in
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_write           : std_logic;                     -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_write -> mm_interconnect_0_jtag_uart_avalon_jtag_slave_write:in
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_writedata       : std_logic_vector(31 downto 0); -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_writedata -> jtag_uart:av_writedata
-	signal mm_interconnect_0_nios2_debug_mem_slave_readdata              : std_logic_vector(31 downto 0); -- nios2:debug_mem_slave_readdata -> mm_interconnect_0:nios2_debug_mem_slave_readdata
-	signal mm_interconnect_0_nios2_debug_mem_slave_waitrequest           : std_logic;                     -- nios2:debug_mem_slave_waitrequest -> mm_interconnect_0:nios2_debug_mem_slave_waitrequest
-	signal mm_interconnect_0_nios2_debug_mem_slave_debugaccess           : std_logic;                     -- mm_interconnect_0:nios2_debug_mem_slave_debugaccess -> nios2:debug_mem_slave_debugaccess
-	signal mm_interconnect_0_nios2_debug_mem_slave_address               : std_logic_vector(8 downto 0);  -- mm_interconnect_0:nios2_debug_mem_slave_address -> nios2:debug_mem_slave_address
-	signal mm_interconnect_0_nios2_debug_mem_slave_read                  : std_logic;                     -- mm_interconnect_0:nios2_debug_mem_slave_read -> nios2:debug_mem_slave_read
-	signal mm_interconnect_0_nios2_debug_mem_slave_byteenable            : std_logic_vector(3 downto 0);  -- mm_interconnect_0:nios2_debug_mem_slave_byteenable -> nios2:debug_mem_slave_byteenable
-	signal mm_interconnect_0_nios2_debug_mem_slave_write                 : std_logic;                     -- mm_interconnect_0:nios2_debug_mem_slave_write -> nios2:debug_mem_slave_write
-	signal mm_interconnect_0_nios2_debug_mem_slave_writedata             : std_logic_vector(31 downto 0); -- mm_interconnect_0:nios2_debug_mem_slave_writedata -> nios2:debug_mem_slave_writedata
-	signal mm_interconnect_0_onchip_memory2_s1_chipselect                : std_logic;                     -- mm_interconnect_0:onchip_memory2_s1_chipselect -> onchip_memory2:chipselect
-	signal mm_interconnect_0_onchip_memory2_s1_readdata                  : std_logic_vector(31 downto 0); -- onchip_memory2:readdata -> mm_interconnect_0:onchip_memory2_s1_readdata
-	signal mm_interconnect_0_onchip_memory2_s1_address                   : std_logic_vector(15 downto 0); -- mm_interconnect_0:onchip_memory2_s1_address -> onchip_memory2:address
-	signal mm_interconnect_0_onchip_memory2_s1_byteenable                : std_logic_vector(3 downto 0);  -- mm_interconnect_0:onchip_memory2_s1_byteenable -> onchip_memory2:byteenable
-	signal mm_interconnect_0_onchip_memory2_s1_write                     : std_logic;                     -- mm_interconnect_0:onchip_memory2_s1_write -> onchip_memory2:write
-	signal mm_interconnect_0_onchip_memory2_s1_writedata                 : std_logic_vector(31 downto 0); -- mm_interconnect_0:onchip_memory2_s1_writedata -> onchip_memory2:writedata
-	signal mm_interconnect_0_onchip_memory2_s1_clken                     : std_logic;                     -- mm_interconnect_0:onchip_memory2_s1_clken -> onchip_memory2:clken
-	signal mm_interconnect_0_pio_led_s1_chipselect                       : std_logic;                     -- mm_interconnect_0:pio_LED_s1_chipselect -> pio_LED:chipselect
-	signal mm_interconnect_0_pio_led_s1_readdata                         : std_logic_vector(31 downto 0); -- pio_LED:readdata -> mm_interconnect_0:pio_LED_s1_readdata
-	signal mm_interconnect_0_pio_led_s1_address                          : std_logic_vector(1 downto 0);  -- mm_interconnect_0:pio_LED_s1_address -> pio_LED:address
-	signal mm_interconnect_0_pio_led_s1_write                            : std_logic;                     -- mm_interconnect_0:pio_LED_s1_write -> mm_interconnect_0_pio_led_s1_write:in
-	signal mm_interconnect_0_pio_led_s1_writedata                        : std_logic_vector(31 downto 0); -- mm_interconnect_0:pio_LED_s1_writedata -> pio_LED:writedata
-	signal irq_mapper_receiver0_irq                                      : std_logic;                     -- jtag_uart:av_irq -> irq_mapper:receiver0_irq
-	signal nios2_irq_irq                                                 : std_logic_vector(31 downto 0); -- irq_mapper:sender_irq -> nios2:irq
-	signal rst_controller_reset_out_reset                                : std_logic;                     -- rst_controller:reset_out -> [irq_mapper:reset, mm_interconnect_0:nios2_reset_reset_bridge_in_reset_reset, onchip_memory2:reset, rst_controller_reset_out_reset:in, rst_translator:in_reset]
-	signal rst_controller_reset_out_reset_req                            : std_logic;                     -- rst_controller:reset_req -> [nios2:reset_req, onchip_memory2:reset_req, rst_translator:reset_req_in]
-	signal nios2_debug_reset_request_reset                               : std_logic;                     -- nios2:debug_reset_request -> rst_controller:reset_in1
-	signal reset_reset_n_ports_inv                                       : std_logic;                     -- reset_reset_n:inv -> rst_controller:reset_in0
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_read_ports_inv  : std_logic;                     -- mm_interconnect_0_jtag_uart_avalon_jtag_slave_read:inv -> jtag_uart:av_read_n
-	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_write_ports_inv : std_logic;                     -- mm_interconnect_0_jtag_uart_avalon_jtag_slave_write:inv -> jtag_uart:av_write_n
-	signal mm_interconnect_0_pio_led_s1_write_ports_inv                  : std_logic;                     -- mm_interconnect_0_pio_led_s1_write:inv -> pio_LED:write_n
-	signal rst_controller_reset_out_reset_ports_inv                      : std_logic;                     -- rst_controller_reset_out_reset:inv -> [jtag_uart:rst_n, nios2:reset_n, pio_LED:reset_n]
+	signal nios2_custom_instruction_master_readra                                   : std_logic;                     -- nios2:D_ci_readra -> nios2_custom_instruction_master_translator:ci_slave_readra
+	signal nios2_custom_instruction_master_a                                        : std_logic_vector(4 downto 0);  -- nios2:D_ci_a -> nios2_custom_instruction_master_translator:ci_slave_a
+	signal nios2_custom_instruction_master_b                                        : std_logic_vector(4 downto 0);  -- nios2:D_ci_b -> nios2_custom_instruction_master_translator:ci_slave_b
+	signal nios2_custom_instruction_master_c                                        : std_logic_vector(4 downto 0);  -- nios2:D_ci_c -> nios2_custom_instruction_master_translator:ci_slave_c
+	signal nios2_custom_instruction_master_readrb                                   : std_logic;                     -- nios2:D_ci_readrb -> nios2_custom_instruction_master_translator:ci_slave_readrb
+	signal nios2_custom_instruction_master_clk                                      : std_logic;                     -- nios2:E_ci_multi_clock -> nios2_custom_instruction_master_translator:ci_slave_multi_clk
+	signal nios2_custom_instruction_master_ipending                                 : std_logic_vector(31 downto 0); -- nios2:W_ci_ipending -> nios2_custom_instruction_master_translator:ci_slave_ipending
+	signal nios2_custom_instruction_master_start                                    : std_logic;                     -- nios2:E_ci_multi_start -> nios2_custom_instruction_master_translator:ci_slave_multi_start
+	signal nios2_custom_instruction_master_reset_req                                : std_logic;                     -- nios2:E_ci_multi_reset_req -> nios2_custom_instruction_master_translator:ci_slave_multi_reset_req
+	signal nios2_custom_instruction_master_done                                     : std_logic;                     -- nios2_custom_instruction_master_translator:ci_slave_multi_done -> nios2:E_ci_multi_done
+	signal nios2_custom_instruction_master_n                                        : std_logic_vector(7 downto 0);  -- nios2:D_ci_n -> nios2_custom_instruction_master_translator:ci_slave_n
+	signal nios2_custom_instruction_master_result                                   : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_translator:ci_slave_result -> nios2:E_ci_result
+	signal nios2_custom_instruction_master_estatus                                  : std_logic;                     -- nios2:W_ci_estatus -> nios2_custom_instruction_master_translator:ci_slave_estatus
+	signal nios2_custom_instruction_master_clk_en                                   : std_logic;                     -- nios2:E_ci_multi_clk_en -> nios2_custom_instruction_master_translator:ci_slave_multi_clken
+	signal nios2_custom_instruction_master_datab                                    : std_logic_vector(31 downto 0); -- nios2:E_ci_datab -> nios2_custom_instruction_master_translator:ci_slave_datab
+	signal nios2_custom_instruction_master_dataa                                    : std_logic_vector(31 downto 0); -- nios2:E_ci_dataa -> nios2_custom_instruction_master_translator:ci_slave_dataa
+	signal nios2_custom_instruction_master_reset                                    : std_logic;                     -- nios2:E_ci_multi_reset -> nios2_custom_instruction_master_translator:ci_slave_multi_reset
+	signal nios2_custom_instruction_master_writerc                                  : std_logic;                     -- nios2:D_ci_writerc -> nios2_custom_instruction_master_translator:ci_slave_writerc
+	signal nios2_custom_instruction_master_translator_multi_ci_master_readra        : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_readra -> nios2_custom_instruction_master_multi_xconnect:ci_slave_readra
+	signal nios2_custom_instruction_master_translator_multi_ci_master_a             : std_logic_vector(4 downto 0);  -- nios2_custom_instruction_master_translator:multi_ci_master_a -> nios2_custom_instruction_master_multi_xconnect:ci_slave_a
+	signal nios2_custom_instruction_master_translator_multi_ci_master_b             : std_logic_vector(4 downto 0);  -- nios2_custom_instruction_master_translator:multi_ci_master_b -> nios2_custom_instruction_master_multi_xconnect:ci_slave_b
+	signal nios2_custom_instruction_master_translator_multi_ci_master_clk           : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_clk -> nios2_custom_instruction_master_multi_xconnect:ci_slave_clk
+	signal nios2_custom_instruction_master_translator_multi_ci_master_readrb        : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_readrb -> nios2_custom_instruction_master_multi_xconnect:ci_slave_readrb
+	signal nios2_custom_instruction_master_translator_multi_ci_master_c             : std_logic_vector(4 downto 0);  -- nios2_custom_instruction_master_translator:multi_ci_master_c -> nios2_custom_instruction_master_multi_xconnect:ci_slave_c
+	signal nios2_custom_instruction_master_translator_multi_ci_master_start         : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_start -> nios2_custom_instruction_master_multi_xconnect:ci_slave_start
+	signal nios2_custom_instruction_master_translator_multi_ci_master_reset_req     : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_reset_req -> nios2_custom_instruction_master_multi_xconnect:ci_slave_reset_req
+	signal nios2_custom_instruction_master_translator_multi_ci_master_done          : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_slave_done -> nios2_custom_instruction_master_translator:multi_ci_master_done
+	signal nios2_custom_instruction_master_translator_multi_ci_master_n             : std_logic_vector(7 downto 0);  -- nios2_custom_instruction_master_translator:multi_ci_master_n -> nios2_custom_instruction_master_multi_xconnect:ci_slave_n
+	signal nios2_custom_instruction_master_translator_multi_ci_master_result        : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_xconnect:ci_slave_result -> nios2_custom_instruction_master_translator:multi_ci_master_result
+	signal nios2_custom_instruction_master_translator_multi_ci_master_clk_en        : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_clken -> nios2_custom_instruction_master_multi_xconnect:ci_slave_clken
+	signal nios2_custom_instruction_master_translator_multi_ci_master_datab         : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_translator:multi_ci_master_datab -> nios2_custom_instruction_master_multi_xconnect:ci_slave_datab
+	signal nios2_custom_instruction_master_translator_multi_ci_master_dataa         : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_translator:multi_ci_master_dataa -> nios2_custom_instruction_master_multi_xconnect:ci_slave_dataa
+	signal nios2_custom_instruction_master_translator_multi_ci_master_reset         : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_reset -> nios2_custom_instruction_master_multi_xconnect:ci_slave_reset
+	signal nios2_custom_instruction_master_translator_multi_ci_master_writerc       : std_logic;                     -- nios2_custom_instruction_master_translator:multi_ci_master_writerc -> nios2_custom_instruction_master_multi_xconnect:ci_slave_writerc
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_readra         : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_readra -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_readra
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_a              : std_logic_vector(4 downto 0);  -- nios2_custom_instruction_master_multi_xconnect:ci_master0_a -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_a
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_b              : std_logic_vector(4 downto 0);  -- nios2_custom_instruction_master_multi_xconnect:ci_master0_b -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_b
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_readrb         : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_readrb -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_readrb
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_c              : std_logic_vector(4 downto 0);  -- nios2_custom_instruction_master_multi_xconnect:ci_master0_c -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_c
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_clk            : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_clk -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_clk
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_ipending       : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_xconnect:ci_master0_ipending -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_ipending
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_start          : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_start -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_start
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_reset_req      : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_reset_req -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_reset_req
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_done           : std_logic;                     -- nios2_custom_instruction_master_multi_slave_translator0:ci_slave_done -> nios2_custom_instruction_master_multi_xconnect:ci_master0_done
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_n              : std_logic_vector(7 downto 0);  -- nios2_custom_instruction_master_multi_xconnect:ci_master0_n -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_n
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_result         : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_slave_translator0:ci_slave_result -> nios2_custom_instruction_master_multi_xconnect:ci_master0_result
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_estatus        : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_estatus -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_estatus
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_clk_en         : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_clken -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_clken
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_datab          : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_xconnect:ci_master0_datab -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_datab
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_dataa          : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_xconnect:ci_master0_dataa -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_dataa
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_reset          : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_reset -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_reset
+	signal nios2_custom_instruction_master_multi_xconnect_ci_master0_writerc        : std_logic;                     -- nios2_custom_instruction_master_multi_xconnect:ci_master0_writerc -> nios2_custom_instruction_master_multi_slave_translator0:ci_slave_writerc
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_result : std_logic_vector(31 downto 0); -- nios_custom_instr_floating_point_0:result -> nios2_custom_instruction_master_multi_slave_translator0:ci_master_result
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_clk    : std_logic;                     -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_clk -> nios_custom_instr_floating_point_0:clk
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_clk_en : std_logic;                     -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_clken -> nios_custom_instr_floating_point_0:clk_en
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_datab  : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_datab -> nios_custom_instr_floating_point_0:datab
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_dataa  : std_logic_vector(31 downto 0); -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_dataa -> nios_custom_instr_floating_point_0:dataa
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_start  : std_logic;                     -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_start -> nios_custom_instr_floating_point_0:start
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_reset  : std_logic;                     -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_reset -> nios_custom_instr_floating_point_0:reset
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_done   : std_logic;                     -- nios_custom_instr_floating_point_0:done -> nios2_custom_instruction_master_multi_slave_translator0:ci_master_done
+	signal nios2_custom_instruction_master_multi_slave_translator0_ci_master_n      : std_logic_vector(1 downto 0);  -- nios2_custom_instruction_master_multi_slave_translator0:ci_master_n -> nios_custom_instr_floating_point_0:n
+	signal nios2_data_master_readdata                                               : std_logic_vector(31 downto 0); -- mm_interconnect_0:nios2_data_master_readdata -> nios2:d_readdata
+	signal nios2_data_master_waitrequest                                            : std_logic;                     -- mm_interconnect_0:nios2_data_master_waitrequest -> nios2:d_waitrequest
+	signal nios2_data_master_debugaccess                                            : std_logic;                     -- nios2:debug_mem_slave_debugaccess_to_roms -> mm_interconnect_0:nios2_data_master_debugaccess
+	signal nios2_data_master_address                                                : std_logic_vector(19 downto 0); -- nios2:d_address -> mm_interconnect_0:nios2_data_master_address
+	signal nios2_data_master_byteenable                                             : std_logic_vector(3 downto 0);  -- nios2:d_byteenable -> mm_interconnect_0:nios2_data_master_byteenable
+	signal nios2_data_master_read                                                   : std_logic;                     -- nios2:d_read -> mm_interconnect_0:nios2_data_master_read
+	signal nios2_data_master_write                                                  : std_logic;                     -- nios2:d_write -> mm_interconnect_0:nios2_data_master_write
+	signal nios2_data_master_writedata                                              : std_logic_vector(31 downto 0); -- nios2:d_writedata -> mm_interconnect_0:nios2_data_master_writedata
+	signal nios2_instruction_master_readdata                                        : std_logic_vector(31 downto 0); -- mm_interconnect_0:nios2_instruction_master_readdata -> nios2:i_readdata
+	signal nios2_instruction_master_waitrequest                                     : std_logic;                     -- mm_interconnect_0:nios2_instruction_master_waitrequest -> nios2:i_waitrequest
+	signal nios2_instruction_master_address                                         : std_logic_vector(19 downto 0); -- nios2:i_address -> mm_interconnect_0:nios2_instruction_master_address
+	signal nios2_instruction_master_read                                            : std_logic;                     -- nios2:i_read -> mm_interconnect_0:nios2_instruction_master_read
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_chipselect                 : std_logic;                     -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_chipselect -> jtag_uart:av_chipselect
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_readdata                   : std_logic_vector(31 downto 0); -- jtag_uart:av_readdata -> mm_interconnect_0:jtag_uart_avalon_jtag_slave_readdata
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_waitrequest                : std_logic;                     -- jtag_uart:av_waitrequest -> mm_interconnect_0:jtag_uart_avalon_jtag_slave_waitrequest
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_address                    : std_logic_vector(0 downto 0);  -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_address -> jtag_uart:av_address
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_read                       : std_logic;                     -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_read -> mm_interconnect_0_jtag_uart_avalon_jtag_slave_read:in
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_write                      : std_logic;                     -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_write -> mm_interconnect_0_jtag_uart_avalon_jtag_slave_write:in
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_writedata                  : std_logic_vector(31 downto 0); -- mm_interconnect_0:jtag_uart_avalon_jtag_slave_writedata -> jtag_uart:av_writedata
+	signal mm_interconnect_0_lcd_16207_control_slave_readdata                       : std_logic_vector(7 downto 0);  -- lcd_16207:readdata -> mm_interconnect_0:lcd_16207_control_slave_readdata
+	signal mm_interconnect_0_lcd_16207_control_slave_address                        : std_logic_vector(1 downto 0);  -- mm_interconnect_0:lcd_16207_control_slave_address -> lcd_16207:address
+	signal mm_interconnect_0_lcd_16207_control_slave_read                           : std_logic;                     -- mm_interconnect_0:lcd_16207_control_slave_read -> lcd_16207:read
+	signal mm_interconnect_0_lcd_16207_control_slave_begintransfer                  : std_logic;                     -- mm_interconnect_0:lcd_16207_control_slave_begintransfer -> lcd_16207:begintransfer
+	signal mm_interconnect_0_lcd_16207_control_slave_write                          : std_logic;                     -- mm_interconnect_0:lcd_16207_control_slave_write -> lcd_16207:write
+	signal mm_interconnect_0_lcd_16207_control_slave_writedata                      : std_logic_vector(7 downto 0);  -- mm_interconnect_0:lcd_16207_control_slave_writedata -> lcd_16207:writedata
+	signal mm_interconnect_0_nios2_debug_mem_slave_readdata                         : std_logic_vector(31 downto 0); -- nios2:debug_mem_slave_readdata -> mm_interconnect_0:nios2_debug_mem_slave_readdata
+	signal mm_interconnect_0_nios2_debug_mem_slave_waitrequest                      : std_logic;                     -- nios2:debug_mem_slave_waitrequest -> mm_interconnect_0:nios2_debug_mem_slave_waitrequest
+	signal mm_interconnect_0_nios2_debug_mem_slave_debugaccess                      : std_logic;                     -- mm_interconnect_0:nios2_debug_mem_slave_debugaccess -> nios2:debug_mem_slave_debugaccess
+	signal mm_interconnect_0_nios2_debug_mem_slave_address                          : std_logic_vector(8 downto 0);  -- mm_interconnect_0:nios2_debug_mem_slave_address -> nios2:debug_mem_slave_address
+	signal mm_interconnect_0_nios2_debug_mem_slave_read                             : std_logic;                     -- mm_interconnect_0:nios2_debug_mem_slave_read -> nios2:debug_mem_slave_read
+	signal mm_interconnect_0_nios2_debug_mem_slave_byteenable                       : std_logic_vector(3 downto 0);  -- mm_interconnect_0:nios2_debug_mem_slave_byteenable -> nios2:debug_mem_slave_byteenable
+	signal mm_interconnect_0_nios2_debug_mem_slave_write                            : std_logic;                     -- mm_interconnect_0:nios2_debug_mem_slave_write -> nios2:debug_mem_slave_write
+	signal mm_interconnect_0_nios2_debug_mem_slave_writedata                        : std_logic_vector(31 downto 0); -- mm_interconnect_0:nios2_debug_mem_slave_writedata -> nios2:debug_mem_slave_writedata
+	signal mm_interconnect_0_onchip_memory2_s1_chipselect                           : std_logic;                     -- mm_interconnect_0:onchip_memory2_s1_chipselect -> onchip_memory2:chipselect
+	signal mm_interconnect_0_onchip_memory2_s1_readdata                             : std_logic_vector(31 downto 0); -- onchip_memory2:readdata -> mm_interconnect_0:onchip_memory2_s1_readdata
+	signal mm_interconnect_0_onchip_memory2_s1_address                              : std_logic_vector(15 downto 0); -- mm_interconnect_0:onchip_memory2_s1_address -> onchip_memory2:address
+	signal mm_interconnect_0_onchip_memory2_s1_byteenable                           : std_logic_vector(3 downto 0);  -- mm_interconnect_0:onchip_memory2_s1_byteenable -> onchip_memory2:byteenable
+	signal mm_interconnect_0_onchip_memory2_s1_write                                : std_logic;                     -- mm_interconnect_0:onchip_memory2_s1_write -> onchip_memory2:write
+	signal mm_interconnect_0_onchip_memory2_s1_writedata                            : std_logic_vector(31 downto 0); -- mm_interconnect_0:onchip_memory2_s1_writedata -> onchip_memory2:writedata
+	signal mm_interconnect_0_onchip_memory2_s1_clken                                : std_logic;                     -- mm_interconnect_0:onchip_memory2_s1_clken -> onchip_memory2:clken
+	signal mm_interconnect_0_pio_led_s1_chipselect                                  : std_logic;                     -- mm_interconnect_0:pio_LED_s1_chipselect -> pio_LED:chipselect
+	signal mm_interconnect_0_pio_led_s1_readdata                                    : std_logic_vector(31 downto 0); -- pio_LED:readdata -> mm_interconnect_0:pio_LED_s1_readdata
+	signal mm_interconnect_0_pio_led_s1_address                                     : std_logic_vector(1 downto 0);  -- mm_interconnect_0:pio_LED_s1_address -> pio_LED:address
+	signal mm_interconnect_0_pio_led_s1_write                                       : std_logic;                     -- mm_interconnect_0:pio_LED_s1_write -> mm_interconnect_0_pio_led_s1_write:in
+	signal mm_interconnect_0_pio_led_s1_writedata                                   : std_logic_vector(31 downto 0); -- mm_interconnect_0:pio_LED_s1_writedata -> pio_LED:writedata
+	signal mm_interconnect_0_pio_matrix_s1_chipselect                               : std_logic;                     -- mm_interconnect_0:pio_MATRIX_s1_chipselect -> pio_MATRIX:chipselect
+	signal mm_interconnect_0_pio_matrix_s1_readdata                                 : std_logic_vector(31 downto 0); -- pio_MATRIX:readdata -> mm_interconnect_0:pio_MATRIX_s1_readdata
+	signal mm_interconnect_0_pio_matrix_s1_address                                  : std_logic_vector(1 downto 0);  -- mm_interconnect_0:pio_MATRIX_s1_address -> pio_MATRIX:address
+	signal mm_interconnect_0_pio_matrix_s1_write                                    : std_logic;                     -- mm_interconnect_0:pio_MATRIX_s1_write -> mm_interconnect_0_pio_matrix_s1_write:in
+	signal mm_interconnect_0_pio_matrix_s1_writedata                                : std_logic_vector(31 downto 0); -- mm_interconnect_0:pio_MATRIX_s1_writedata -> pio_MATRIX:writedata
+	signal mm_interconnect_0_pio_button_s1_readdata                                 : std_logic_vector(31 downto 0); -- pio_BUTTON:readdata -> mm_interconnect_0:pio_BUTTON_s1_readdata
+	signal mm_interconnect_0_pio_button_s1_address                                  : std_logic_vector(1 downto 0);  -- mm_interconnect_0:pio_BUTTON_s1_address -> pio_BUTTON:address
+	signal irq_mapper_receiver0_irq                                                 : std_logic;                     -- jtag_uart:av_irq -> irq_mapper:receiver0_irq
+	signal nios2_irq_irq                                                            : std_logic_vector(31 downto 0); -- irq_mapper:sender_irq -> nios2:irq
+	signal rst_controller_reset_out_reset                                           : std_logic;                     -- rst_controller:reset_out -> [irq_mapper:reset, mm_interconnect_0:nios2_reset_reset_bridge_in_reset_reset, onchip_memory2:reset, rst_controller_reset_out_reset:in, rst_translator:in_reset]
+	signal rst_controller_reset_out_reset_req                                       : std_logic;                     -- rst_controller:reset_req -> [nios2:reset_req, onchip_memory2:reset_req, rst_translator:reset_req_in]
+	signal nios2_debug_reset_request_reset                                          : std_logic;                     -- nios2:debug_reset_request -> rst_controller:reset_in1
+	signal reset_reset_n_ports_inv                                                  : std_logic;                     -- reset_reset_n:inv -> rst_controller:reset_in0
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_read_ports_inv             : std_logic;                     -- mm_interconnect_0_jtag_uart_avalon_jtag_slave_read:inv -> jtag_uart:av_read_n
+	signal mm_interconnect_0_jtag_uart_avalon_jtag_slave_write_ports_inv            : std_logic;                     -- mm_interconnect_0_jtag_uart_avalon_jtag_slave_write:inv -> jtag_uart:av_write_n
+	signal mm_interconnect_0_pio_led_s1_write_ports_inv                             : std_logic;                     -- mm_interconnect_0_pio_led_s1_write:inv -> pio_LED:write_n
+	signal mm_interconnect_0_pio_matrix_s1_write_ports_inv                          : std_logic;                     -- mm_interconnect_0_pio_matrix_s1_write:inv -> pio_MATRIX:write_n
+	signal rst_controller_reset_out_reset_ports_inv                                 : std_logic;                     -- rst_controller_reset_out_reset:inv -> [jtag_uart:rst_n, lcd_16207:reset_n, nios2:reset_n, pio_BUTTON:reset_n, pio_LED:reset_n, pio_MATRIX:reset_n]
 
 begin
 
@@ -277,6 +596,22 @@ begin
 			av_irq         => irq_mapper_receiver0_irq                                       --               irq.irq
 		);
 
+	lcd_16207 : component nios2_uc_lcd_16207
+		port map (
+			reset_n       => rst_controller_reset_out_reset_ports_inv,                --         reset.reset_n
+			clk           => clk_clk,                                                 --           clk.clk
+			begintransfer => mm_interconnect_0_lcd_16207_control_slave_begintransfer, -- control_slave.begintransfer
+			read          => mm_interconnect_0_lcd_16207_control_slave_read,          --              .read
+			write         => mm_interconnect_0_lcd_16207_control_slave_write,         --              .write
+			readdata      => mm_interconnect_0_lcd_16207_control_slave_readdata,      --              .readdata
+			writedata     => mm_interconnect_0_lcd_16207_control_slave_writedata,     --              .writedata
+			address       => mm_interconnect_0_lcd_16207_control_slave_address,       --              .address
+			LCD_RS        => lcd_16207_ext_RS,                                        --      external.export
+			LCD_RW        => lcd_16207_ext_RW,                                        --              .export
+			LCD_data      => lcd_16207_ext_data,                                      --              .export
+			LCD_E         => lcd_16207_ext_E                                          --              .export
+		);
+
 	nios2 : component nios2_uc_nios2
 		port map (
 			clk                                 => clk_clk,                                             --                       clk.clk
@@ -304,7 +639,40 @@ begin
 			debug_mem_slave_waitrequest         => mm_interconnect_0_nios2_debug_mem_slave_waitrequest, --                          .waitrequest
 			debug_mem_slave_write               => mm_interconnect_0_nios2_debug_mem_slave_write,       --                          .write
 			debug_mem_slave_writedata           => mm_interconnect_0_nios2_debug_mem_slave_writedata,   --                          .writedata
-			dummy_ci_port                       => open                                                 -- custom_instruction_master.readra
+			E_ci_multi_done                     => nios2_custom_instruction_master_done,                -- custom_instruction_master.done
+			E_ci_multi_clk_en                   => nios2_custom_instruction_master_clk_en,              --                          .clk_en
+			E_ci_multi_start                    => nios2_custom_instruction_master_start,               --                          .start
+			E_ci_result                         => nios2_custom_instruction_master_result,              --                          .result
+			D_ci_a                              => nios2_custom_instruction_master_a,                   --                          .a
+			D_ci_b                              => nios2_custom_instruction_master_b,                   --                          .b
+			D_ci_c                              => nios2_custom_instruction_master_c,                   --                          .c
+			D_ci_n                              => nios2_custom_instruction_master_n,                   --                          .n
+			D_ci_readra                         => nios2_custom_instruction_master_readra,              --                          .readra
+			D_ci_readrb                         => nios2_custom_instruction_master_readrb,              --                          .readrb
+			D_ci_writerc                        => nios2_custom_instruction_master_writerc,             --                          .writerc
+			E_ci_dataa                          => nios2_custom_instruction_master_dataa,               --                          .dataa
+			E_ci_datab                          => nios2_custom_instruction_master_datab,               --                          .datab
+			E_ci_multi_clock                    => nios2_custom_instruction_master_clk,                 --                          .clk
+			E_ci_multi_reset                    => nios2_custom_instruction_master_reset,               --                          .reset
+			E_ci_multi_reset_req                => nios2_custom_instruction_master_reset_req,           --                          .reset_req
+			W_ci_estatus                        => nios2_custom_instruction_master_estatus,             --                          .estatus
+			W_ci_ipending                       => nios2_custom_instruction_master_ipending             --                          .ipending
+		);
+
+	nios_custom_instr_floating_point_0 : component fpoint_wrapper
+		generic map (
+			useDivider => 1
+		)
+		port map (
+			clk    => nios2_custom_instruction_master_multi_slave_translator0_ci_master_clk,    -- s1.clk
+			clk_en => nios2_custom_instruction_master_multi_slave_translator0_ci_master_clk_en, --   .clk_en
+			dataa  => nios2_custom_instruction_master_multi_slave_translator0_ci_master_dataa,  --   .dataa
+			datab  => nios2_custom_instruction_master_multi_slave_translator0_ci_master_datab,  --   .datab
+			n      => nios2_custom_instruction_master_multi_slave_translator0_ci_master_n,      --   .n
+			reset  => nios2_custom_instruction_master_multi_slave_translator0_ci_master_reset,  --   .reset
+			start  => nios2_custom_instruction_master_multi_slave_translator0_ci_master_start,  --   .start
+			done   => nios2_custom_instruction_master_multi_slave_translator0_ci_master_done,   --   .done
+			result => nios2_custom_instruction_master_multi_slave_translator0_ci_master_result  --   .result
 		);
 
 	onchip_memory2 : component nios2_uc_onchip_memory2
@@ -322,6 +690,15 @@ begin
 			freeze     => '0'                                             -- (terminated)
 		);
 
+	pio_button : component nios2_uc_pio_BUTTON
+		port map (
+			clk      => clk_clk,                                  --                 clk.clk
+			reset_n  => rst_controller_reset_out_reset_ports_inv, --               reset.reset_n
+			address  => mm_interconnect_0_pio_button_s1_address,  --                  s1.address
+			readdata => mm_interconnect_0_pio_button_s1_readdata, --                    .readdata
+			in_port  => pio_button_ext_conn_export                -- external_connection.export
+		);
+
 	pio_led : component nios2_uc_pio_LED
 		port map (
 			clk        => clk_clk,                                      --                 clk.clk
@@ -334,6 +711,166 @@ begin
 			out_port   => pio_led_ext_conn_export                       -- external_connection.export
 		);
 
+	pio_matrix : component nios2_uc_pio_MATRIX
+		port map (
+			clk        => clk_clk,                                         --                 clk.clk
+			reset_n    => rst_controller_reset_out_reset_ports_inv,        --               reset.reset_n
+			address    => mm_interconnect_0_pio_matrix_s1_address,         --                  s1.address
+			write_n    => mm_interconnect_0_pio_matrix_s1_write_ports_inv, --                    .write_n
+			writedata  => mm_interconnect_0_pio_matrix_s1_writedata,       --                    .writedata
+			chipselect => mm_interconnect_0_pio_matrix_s1_chipselect,      --                    .chipselect
+			readdata   => mm_interconnect_0_pio_matrix_s1_readdata,        --                    .readdata
+			out_port   => pio_matrix_ext_conn_export                       -- external_connection.export
+		);
+
+	nios2_custom_instruction_master_translator : component altera_customins_master_translator
+		generic map (
+			SHARED_COMB_AND_MULTI => 1
+		)
+		port map (
+			ci_slave_dataa            => nios2_custom_instruction_master_dataa,                                --        ci_slave.dataa
+			ci_slave_datab            => nios2_custom_instruction_master_datab,                                --                .datab
+			ci_slave_result           => nios2_custom_instruction_master_result,                               --                .result
+			ci_slave_n                => nios2_custom_instruction_master_n,                                    --                .n
+			ci_slave_readra           => nios2_custom_instruction_master_readra,                               --                .readra
+			ci_slave_readrb           => nios2_custom_instruction_master_readrb,                               --                .readrb
+			ci_slave_writerc          => nios2_custom_instruction_master_writerc,                              --                .writerc
+			ci_slave_a                => nios2_custom_instruction_master_a,                                    --                .a
+			ci_slave_b                => nios2_custom_instruction_master_b,                                    --                .b
+			ci_slave_c                => nios2_custom_instruction_master_c,                                    --                .c
+			ci_slave_ipending         => nios2_custom_instruction_master_ipending,                             --                .ipending
+			ci_slave_estatus          => nios2_custom_instruction_master_estatus,                              --                .estatus
+			ci_slave_multi_clk        => nios2_custom_instruction_master_clk,                                  --                .clk
+			ci_slave_multi_reset      => nios2_custom_instruction_master_reset,                                --                .reset
+			ci_slave_multi_clken      => nios2_custom_instruction_master_clk_en,                               --                .clk_en
+			ci_slave_multi_reset_req  => nios2_custom_instruction_master_reset_req,                            --                .reset_req
+			ci_slave_multi_start      => nios2_custom_instruction_master_start,                                --                .start
+			ci_slave_multi_done       => nios2_custom_instruction_master_done,                                 --                .done
+			comb_ci_master_dataa      => open,                                                                 --  comb_ci_master.dataa
+			comb_ci_master_datab      => open,                                                                 --                .datab
+			comb_ci_master_result     => open,                                                                 --                .result
+			comb_ci_master_n          => open,                                                                 --                .n
+			comb_ci_master_readra     => open,                                                                 --                .readra
+			comb_ci_master_readrb     => open,                                                                 --                .readrb
+			comb_ci_master_writerc    => open,                                                                 --                .writerc
+			comb_ci_master_a          => open,                                                                 --                .a
+			comb_ci_master_b          => open,                                                                 --                .b
+			comb_ci_master_c          => open,                                                                 --                .c
+			comb_ci_master_ipending   => open,                                                                 --                .ipending
+			comb_ci_master_estatus    => open,                                                                 --                .estatus
+			multi_ci_master_clk       => nios2_custom_instruction_master_translator_multi_ci_master_clk,       -- multi_ci_master.clk
+			multi_ci_master_reset     => nios2_custom_instruction_master_translator_multi_ci_master_reset,     --                .reset
+			multi_ci_master_clken     => nios2_custom_instruction_master_translator_multi_ci_master_clk_en,    --                .clk_en
+			multi_ci_master_reset_req => nios2_custom_instruction_master_translator_multi_ci_master_reset_req, --                .reset_req
+			multi_ci_master_start     => nios2_custom_instruction_master_translator_multi_ci_master_start,     --                .start
+			multi_ci_master_done      => nios2_custom_instruction_master_translator_multi_ci_master_done,      --                .done
+			multi_ci_master_dataa     => nios2_custom_instruction_master_translator_multi_ci_master_dataa,     --                .dataa
+			multi_ci_master_datab     => nios2_custom_instruction_master_translator_multi_ci_master_datab,     --                .datab
+			multi_ci_master_result    => nios2_custom_instruction_master_translator_multi_ci_master_result,    --                .result
+			multi_ci_master_n         => nios2_custom_instruction_master_translator_multi_ci_master_n,         --                .n
+			multi_ci_master_readra    => nios2_custom_instruction_master_translator_multi_ci_master_readra,    --                .readra
+			multi_ci_master_readrb    => nios2_custom_instruction_master_translator_multi_ci_master_readrb,    --                .readrb
+			multi_ci_master_writerc   => nios2_custom_instruction_master_translator_multi_ci_master_writerc,   --                .writerc
+			multi_ci_master_a         => nios2_custom_instruction_master_translator_multi_ci_master_a,         --                .a
+			multi_ci_master_b         => nios2_custom_instruction_master_translator_multi_ci_master_b,         --                .b
+			multi_ci_master_c         => nios2_custom_instruction_master_translator_multi_ci_master_c,         --                .c
+			ci_slave_multi_dataa      => "00000000000000000000000000000000",                                   --     (terminated)
+			ci_slave_multi_datab      => "00000000000000000000000000000000",                                   --     (terminated)
+			ci_slave_multi_result     => open,                                                                 --     (terminated)
+			ci_slave_multi_n          => "00000000",                                                           --     (terminated)
+			ci_slave_multi_readra     => '0',                                                                  --     (terminated)
+			ci_slave_multi_readrb     => '0',                                                                  --     (terminated)
+			ci_slave_multi_writerc    => '0',                                                                  --     (terminated)
+			ci_slave_multi_a          => "00000",                                                              --     (terminated)
+			ci_slave_multi_b          => "00000",                                                              --     (terminated)
+			ci_slave_multi_c          => "00000"                                                               --     (terminated)
+		);
+
+	nios2_custom_instruction_master_multi_xconnect : component nios2_uc_nios2_custom_instruction_master_multi_xconnect
+		port map (
+			ci_slave_dataa       => nios2_custom_instruction_master_translator_multi_ci_master_dataa,     --   ci_slave.dataa
+			ci_slave_datab       => nios2_custom_instruction_master_translator_multi_ci_master_datab,     --           .datab
+			ci_slave_result      => nios2_custom_instruction_master_translator_multi_ci_master_result,    --           .result
+			ci_slave_n           => nios2_custom_instruction_master_translator_multi_ci_master_n,         --           .n
+			ci_slave_readra      => nios2_custom_instruction_master_translator_multi_ci_master_readra,    --           .readra
+			ci_slave_readrb      => nios2_custom_instruction_master_translator_multi_ci_master_readrb,    --           .readrb
+			ci_slave_writerc     => nios2_custom_instruction_master_translator_multi_ci_master_writerc,   --           .writerc
+			ci_slave_a           => nios2_custom_instruction_master_translator_multi_ci_master_a,         --           .a
+			ci_slave_b           => nios2_custom_instruction_master_translator_multi_ci_master_b,         --           .b
+			ci_slave_c           => nios2_custom_instruction_master_translator_multi_ci_master_c,         --           .c
+			ci_slave_ipending    => open,                                                                 --           .ipending
+			ci_slave_estatus     => open,                                                                 --           .estatus
+			ci_slave_clk         => nios2_custom_instruction_master_translator_multi_ci_master_clk,       --           .clk
+			ci_slave_reset       => nios2_custom_instruction_master_translator_multi_ci_master_reset,     --           .reset
+			ci_slave_clken       => nios2_custom_instruction_master_translator_multi_ci_master_clk_en,    --           .clk_en
+			ci_slave_reset_req   => nios2_custom_instruction_master_translator_multi_ci_master_reset_req, --           .reset_req
+			ci_slave_start       => nios2_custom_instruction_master_translator_multi_ci_master_start,     --           .start
+			ci_slave_done        => nios2_custom_instruction_master_translator_multi_ci_master_done,      --           .done
+			ci_master0_dataa     => nios2_custom_instruction_master_multi_xconnect_ci_master0_dataa,      -- ci_master0.dataa
+			ci_master0_datab     => nios2_custom_instruction_master_multi_xconnect_ci_master0_datab,      --           .datab
+			ci_master0_result    => nios2_custom_instruction_master_multi_xconnect_ci_master0_result,     --           .result
+			ci_master0_n         => nios2_custom_instruction_master_multi_xconnect_ci_master0_n,          --           .n
+			ci_master0_readra    => nios2_custom_instruction_master_multi_xconnect_ci_master0_readra,     --           .readra
+			ci_master0_readrb    => nios2_custom_instruction_master_multi_xconnect_ci_master0_readrb,     --           .readrb
+			ci_master0_writerc   => nios2_custom_instruction_master_multi_xconnect_ci_master0_writerc,    --           .writerc
+			ci_master0_a         => nios2_custom_instruction_master_multi_xconnect_ci_master0_a,          --           .a
+			ci_master0_b         => nios2_custom_instruction_master_multi_xconnect_ci_master0_b,          --           .b
+			ci_master0_c         => nios2_custom_instruction_master_multi_xconnect_ci_master0_c,          --           .c
+			ci_master0_ipending  => nios2_custom_instruction_master_multi_xconnect_ci_master0_ipending,   --           .ipending
+			ci_master0_estatus   => nios2_custom_instruction_master_multi_xconnect_ci_master0_estatus,    --           .estatus
+			ci_master0_clk       => nios2_custom_instruction_master_multi_xconnect_ci_master0_clk,        --           .clk
+			ci_master0_reset     => nios2_custom_instruction_master_multi_xconnect_ci_master0_reset,      --           .reset
+			ci_master0_clken     => nios2_custom_instruction_master_multi_xconnect_ci_master0_clk_en,     --           .clk_en
+			ci_master0_reset_req => nios2_custom_instruction_master_multi_xconnect_ci_master0_reset_req,  --           .reset_req
+			ci_master0_start     => nios2_custom_instruction_master_multi_xconnect_ci_master0_start,      --           .start
+			ci_master0_done      => nios2_custom_instruction_master_multi_xconnect_ci_master0_done        --           .done
+		);
+
+	nios2_custom_instruction_master_multi_slave_translator0 : component altera_customins_slave_translator
+		generic map (
+			N_WIDTH          => 2,
+			USE_DONE         => 1,
+			NUM_FIXED_CYCLES => 1
+		)
+		port map (
+			ci_slave_dataa      => nios2_custom_instruction_master_multi_xconnect_ci_master0_dataa,          --  ci_slave.dataa
+			ci_slave_datab      => nios2_custom_instruction_master_multi_xconnect_ci_master0_datab,          --          .datab
+			ci_slave_result     => nios2_custom_instruction_master_multi_xconnect_ci_master0_result,         --          .result
+			ci_slave_n          => nios2_custom_instruction_master_multi_xconnect_ci_master0_n,              --          .n
+			ci_slave_readra     => nios2_custom_instruction_master_multi_xconnect_ci_master0_readra,         --          .readra
+			ci_slave_readrb     => nios2_custom_instruction_master_multi_xconnect_ci_master0_readrb,         --          .readrb
+			ci_slave_writerc    => nios2_custom_instruction_master_multi_xconnect_ci_master0_writerc,        --          .writerc
+			ci_slave_a          => nios2_custom_instruction_master_multi_xconnect_ci_master0_a,              --          .a
+			ci_slave_b          => nios2_custom_instruction_master_multi_xconnect_ci_master0_b,              --          .b
+			ci_slave_c          => nios2_custom_instruction_master_multi_xconnect_ci_master0_c,              --          .c
+			ci_slave_ipending   => nios2_custom_instruction_master_multi_xconnect_ci_master0_ipending,       --          .ipending
+			ci_slave_estatus    => nios2_custom_instruction_master_multi_xconnect_ci_master0_estatus,        --          .estatus
+			ci_slave_clk        => nios2_custom_instruction_master_multi_xconnect_ci_master0_clk,            --          .clk
+			ci_slave_clken      => nios2_custom_instruction_master_multi_xconnect_ci_master0_clk_en,         --          .clk_en
+			ci_slave_reset_req  => nios2_custom_instruction_master_multi_xconnect_ci_master0_reset_req,      --          .reset_req
+			ci_slave_reset      => nios2_custom_instruction_master_multi_xconnect_ci_master0_reset,          --          .reset
+			ci_slave_start      => nios2_custom_instruction_master_multi_xconnect_ci_master0_start,          --          .start
+			ci_slave_done       => nios2_custom_instruction_master_multi_xconnect_ci_master0_done,           --          .done
+			ci_master_dataa     => nios2_custom_instruction_master_multi_slave_translator0_ci_master_dataa,  -- ci_master.dataa
+			ci_master_datab     => nios2_custom_instruction_master_multi_slave_translator0_ci_master_datab,  --          .datab
+			ci_master_result    => nios2_custom_instruction_master_multi_slave_translator0_ci_master_result, --          .result
+			ci_master_n         => nios2_custom_instruction_master_multi_slave_translator0_ci_master_n,      --          .n
+			ci_master_clk       => nios2_custom_instruction_master_multi_slave_translator0_ci_master_clk,    --          .clk
+			ci_master_clken     => nios2_custom_instruction_master_multi_slave_translator0_ci_master_clk_en, --          .clk_en
+			ci_master_reset     => nios2_custom_instruction_master_multi_slave_translator0_ci_master_reset,  --          .reset
+			ci_master_start     => nios2_custom_instruction_master_multi_slave_translator0_ci_master_start,  --          .start
+			ci_master_done      => nios2_custom_instruction_master_multi_slave_translator0_ci_master_done,   --          .done
+			ci_master_readra    => open,                                                                     -- (terminated)
+			ci_master_readrb    => open,                                                                     -- (terminated)
+			ci_master_writerc   => open,                                                                     -- (terminated)
+			ci_master_a         => open,                                                                     -- (terminated)
+			ci_master_b         => open,                                                                     -- (terminated)
+			ci_master_c         => open,                                                                     -- (terminated)
+			ci_master_ipending  => open,                                                                     -- (terminated)
+			ci_master_estatus   => open,                                                                     -- (terminated)
+			ci_master_reset_req => open                                                                      -- (terminated)
+		);
+
 	mm_interconnect_0 : component nios2_uc_mm_interconnect_0
 		port map (
 			clk_50_clk_clk                          => clk_clk,                                                   --                        clk_50_clk.clk
@@ -357,6 +894,12 @@ begin
 			jtag_uart_avalon_jtag_slave_writedata   => mm_interconnect_0_jtag_uart_avalon_jtag_slave_writedata,   --                                  .writedata
 			jtag_uart_avalon_jtag_slave_waitrequest => mm_interconnect_0_jtag_uart_avalon_jtag_slave_waitrequest, --                                  .waitrequest
 			jtag_uart_avalon_jtag_slave_chipselect  => mm_interconnect_0_jtag_uart_avalon_jtag_slave_chipselect,  --                                  .chipselect
+			lcd_16207_control_slave_address         => mm_interconnect_0_lcd_16207_control_slave_address,         --           lcd_16207_control_slave.address
+			lcd_16207_control_slave_write           => mm_interconnect_0_lcd_16207_control_slave_write,           --                                  .write
+			lcd_16207_control_slave_read            => mm_interconnect_0_lcd_16207_control_slave_read,            --                                  .read
+			lcd_16207_control_slave_readdata        => mm_interconnect_0_lcd_16207_control_slave_readdata,        --                                  .readdata
+			lcd_16207_control_slave_writedata       => mm_interconnect_0_lcd_16207_control_slave_writedata,       --                                  .writedata
+			lcd_16207_control_slave_begintransfer   => mm_interconnect_0_lcd_16207_control_slave_begintransfer,   --                                  .begintransfer
 			nios2_debug_mem_slave_address           => mm_interconnect_0_nios2_debug_mem_slave_address,           --             nios2_debug_mem_slave.address
 			nios2_debug_mem_slave_write             => mm_interconnect_0_nios2_debug_mem_slave_write,             --                                  .write
 			nios2_debug_mem_slave_read              => mm_interconnect_0_nios2_debug_mem_slave_read,              --                                  .read
@@ -372,11 +915,18 @@ begin
 			onchip_memory2_s1_byteenable            => mm_interconnect_0_onchip_memory2_s1_byteenable,            --                                  .byteenable
 			onchip_memory2_s1_chipselect            => mm_interconnect_0_onchip_memory2_s1_chipselect,            --                                  .chipselect
 			onchip_memory2_s1_clken                 => mm_interconnect_0_onchip_memory2_s1_clken,                 --                                  .clken
+			pio_BUTTON_s1_address                   => mm_interconnect_0_pio_button_s1_address,                   --                     pio_BUTTON_s1.address
+			pio_BUTTON_s1_readdata                  => mm_interconnect_0_pio_button_s1_readdata,                  --                                  .readdata
 			pio_LED_s1_address                      => mm_interconnect_0_pio_led_s1_address,                      --                        pio_LED_s1.address
 			pio_LED_s1_write                        => mm_interconnect_0_pio_led_s1_write,                        --                                  .write
 			pio_LED_s1_readdata                     => mm_interconnect_0_pio_led_s1_readdata,                     --                                  .readdata
 			pio_LED_s1_writedata                    => mm_interconnect_0_pio_led_s1_writedata,                    --                                  .writedata
-			pio_LED_s1_chipselect                   => mm_interconnect_0_pio_led_s1_chipselect                    --                                  .chipselect
+			pio_LED_s1_chipselect                   => mm_interconnect_0_pio_led_s1_chipselect,                   --                                  .chipselect
+			pio_MATRIX_s1_address                   => mm_interconnect_0_pio_matrix_s1_address,                   --                     pio_MATRIX_s1.address
+			pio_MATRIX_s1_write                     => mm_interconnect_0_pio_matrix_s1_write,                     --                                  .write
+			pio_MATRIX_s1_readdata                  => mm_interconnect_0_pio_matrix_s1_readdata,                  --                                  .readdata
+			pio_MATRIX_s1_writedata                 => mm_interconnect_0_pio_matrix_s1_writedata,                 --                                  .writedata
+			pio_MATRIX_s1_chipselect                => mm_interconnect_0_pio_matrix_s1_chipselect                 --                                  .chipselect
 		);
 
 	irq_mapper : component nios2_uc_irq_mapper
@@ -460,6 +1010,8 @@ begin
 
 	mm_interconnect_0_pio_led_s1_write_ports_inv <= not mm_interconnect_0_pio_led_s1_write;
 
+	mm_interconnect_0_pio_matrix_s1_write_ports_inv <= not mm_interconnect_0_pio_matrix_s1_write;
+
 	rst_controller_reset_out_reset_ports_inv <= not rst_controller_reset_out_reset;
 
 end architecture rtl; -- of nios2_uc

+ 148 - 0
nios2_uc/synthesis/submodules/altera_customins_master_translator.v

@@ -0,0 +1,148 @@
+// (C) 2001-2018 Intel Corporation. All rights reserved.
+// Your use of Intel Corporation's design tools, logic functions and other 
+// software and tools, and its AMPP partner logic functions, and any output 
+// files from any of the foregoing (including device programming or simulation 
+// files), and any associated documentation or information are expressly subject 
+// to the terms and conditions of the Intel Program License Subscription 
+// Agreement, Intel FPGA IP License Agreement, or other applicable 
+// license agreement, including, without limitation, that your use is for the 
+// sole purpose of programming logic devices manufactured by Intel and sold by 
+// Intel or its authorized distributors.  Please refer to the applicable 
+// agreement for further details.
+
+
+// $Id: //acds/rel/18.1std/ip/merlin/altera_customins_master_translator/altera_customins_master_translator.v#1 $
+// $Revision: #1 $
+// $Date: 2018/07/18 $
+// $Author: psgswbuild $
+// ------------------------------------------
+// Custom instruction master translator
+// ------------------------------------------
+`timescale 1 ns / 1 ns
+
+module altera_customins_master_translator 
+#(
+    parameter SHARED_COMB_AND_MULTI = 0
+)
+(
+    // ------------------------------------------
+    // Hybrid slave
+    // ------------------------------------------
+    input  wire [31:0] ci_slave_dataa,          //        ci_slave.dataa
+    input  wire [31:0] ci_slave_datab,          //                .datab
+    output wire [31:0] ci_slave_result,         //                .result
+    input  wire [7:0]  ci_slave_n,              //                .n
+    input  wire        ci_slave_readra,         //                .readra
+    input  wire        ci_slave_readrb,         //                .readrb
+    input  wire        ci_slave_writerc,        //                .writerc
+    input  wire [4:0]  ci_slave_a,              //                .a
+    input  wire [4:0]  ci_slave_b,              //                .b
+    input  wire [4:0]  ci_slave_c,              //                .c
+    input  wire [31:0] ci_slave_ipending,       //                .ipending
+    input  wire        ci_slave_estatus,        //                .estatus
+    input  wire        ci_slave_multi_clk,      //                .clk
+    input  wire        ci_slave_multi_reset,    //                .reset
+    input  wire        ci_slave_multi_reset_req,//                .reset_req
+    input  wire        ci_slave_multi_clken,    //                .clk_en
+    input  wire        ci_slave_multi_start,    //                .start
+    output wire        ci_slave_multi_done,     //                .done
+    input  wire [31:0] ci_slave_multi_dataa,    //                .multi_dataa
+    input  wire [31:0] ci_slave_multi_datab,    //                .multi_datab
+    output wire [31:0] ci_slave_multi_result,   //                .multi_result
+    input  wire [7:0]  ci_slave_multi_n,        //                .multi_n
+    input  wire        ci_slave_multi_readra,   //                .multi_readra
+    input  wire        ci_slave_multi_readrb,   //                .multi_readrb
+    input  wire        ci_slave_multi_writerc,  //                .multi_writerc
+    input  wire [4:0]  ci_slave_multi_a,        //                .multi_a
+    input  wire [4:0]  ci_slave_multi_b,        //                .multi_b
+    input  wire [4:0]  ci_slave_multi_c,        //                .multi_c
+    // ------------------------------------------
+    // Comb master
+    // ------------------------------------------
+    output wire [31:0] comb_ci_master_dataa,    //  comb_ci_master.dataa
+    output wire [31:0] comb_ci_master_datab,    //                .datab
+    input  wire [31:0] comb_ci_master_result,   //                .result
+    output wire [7:0]  comb_ci_master_n,        //                .n
+    output wire        comb_ci_master_readra,   //                .readra
+    output wire        comb_ci_master_readrb,   //                .readrb
+    output wire        comb_ci_master_writerc,  //                .writerc
+    output wire [4:0]  comb_ci_master_a,        //                .a
+    output wire [4:0]  comb_ci_master_b,        //                .b
+    output wire [4:0]  comb_ci_master_c,        //                .c
+    output wire [31:0] comb_ci_master_ipending, //                .ipending
+    output wire        comb_ci_master_estatus,  //                .estatus
+    // ------------------------------------------
+    // Multi master
+    // ------------------------------------------
+    output wire        multi_ci_master_clk,     // multi_ci_master.clk
+    output wire        multi_ci_master_reset,   //                .reset
+    output wire        multi_ci_master_reset_req, //              .reset_req
+    output wire        multi_ci_master_clken,   //                .clk_en
+    output wire        multi_ci_master_start,   //                .start
+    input  wire        multi_ci_master_done,    //                .done
+    output wire [31:0] multi_ci_master_dataa,   //                .dataa
+    output wire [31:0] multi_ci_master_datab,   //                .datab
+    input  wire [31:0] multi_ci_master_result,  //                .result
+    output wire [7:0]  multi_ci_master_n,       //                .n
+    output wire        multi_ci_master_readra,  //                .readra
+    output wire        multi_ci_master_readrb,  //                .readrb
+    output wire        multi_ci_master_writerc, //                .writerc
+    output wire [4:0]  multi_ci_master_a,       //                .a
+    output wire [4:0]  multi_ci_master_b,       //                .b
+    output wire [4:0]  multi_ci_master_c        //                .c
+	);
+
+    assign comb_ci_master_dataa   = ci_slave_dataa;
+    assign comb_ci_master_datab   = ci_slave_datab;
+    assign comb_ci_master_n       = ci_slave_n;
+    assign comb_ci_master_a       = ci_slave_a;
+    assign comb_ci_master_b       = ci_slave_b;
+    assign comb_ci_master_c       = ci_slave_c;
+    assign comb_ci_master_readra  = ci_slave_readra;
+    assign comb_ci_master_readrb  = ci_slave_readrb;
+    assign comb_ci_master_writerc = ci_slave_writerc;
+    assign comb_ci_master_ipending = ci_slave_ipending;
+    assign comb_ci_master_estatus  = ci_slave_estatus;
+
+    assign multi_ci_master_clk   = ci_slave_multi_clk;
+    assign multi_ci_master_reset = ci_slave_multi_reset;
+    assign multi_ci_master_reset_req = ci_slave_multi_reset_req;
+    assign multi_ci_master_clken = ci_slave_multi_clken;
+    assign multi_ci_master_start = ci_slave_multi_start;
+    assign ci_slave_multi_done   = multi_ci_master_done;
+
+    generate if (SHARED_COMB_AND_MULTI == 0) begin
+
+        assign multi_ci_master_dataa   = ci_slave_multi_dataa;
+        assign multi_ci_master_datab   = ci_slave_multi_datab;
+        assign multi_ci_master_n       = ci_slave_multi_n;
+        assign multi_ci_master_a       = ci_slave_multi_a;
+        assign multi_ci_master_b       = ci_slave_multi_b;
+        assign multi_ci_master_c       = ci_slave_multi_c;
+        assign multi_ci_master_readra  = ci_slave_multi_readra;
+        assign multi_ci_master_readrb  = ci_slave_multi_readrb;
+        assign multi_ci_master_writerc = ci_slave_multi_writerc;
+        
+        assign ci_slave_result         = comb_ci_master_result;
+        assign ci_slave_multi_result   = multi_ci_master_result;
+
+    end else begin
+
+	    assign multi_ci_master_dataa   = ci_slave_dataa;
+	    assign multi_ci_master_datab   = ci_slave_datab;
+        assign multi_ci_master_n       = ci_slave_n;
+        assign multi_ci_master_a       = ci_slave_a;
+        assign multi_ci_master_b       = ci_slave_b;
+        assign multi_ci_master_c       = ci_slave_c;
+        assign multi_ci_master_readra  = ci_slave_readra;
+        assign multi_ci_master_readrb  = ci_slave_readrb;
+        assign multi_ci_master_writerc = ci_slave_writerc;
+
+        assign ci_slave_result = ci_slave_multi_done ? multi_ci_master_result :
+                                    comb_ci_master_result;
+
+    end
+
+    endgenerate
+
+endmodule

+ 148 - 0
nios2_uc/synthesis/submodules/altera_customins_slave_translator.sv

@@ -0,0 +1,148 @@
+// (C) 2001-2018 Intel Corporation. All rights reserved.
+// Your use of Intel Corporation's design tools, logic functions and other 
+// software and tools, and its AMPP partner logic functions, and any output 
+// files from any of the foregoing (including device programming or simulation 
+// files), and any associated documentation or information are expressly subject 
+// to the terms and conditions of the Intel Program License Subscription 
+// Agreement, Intel FPGA IP License Agreement, or other applicable 
+// license agreement, including, without limitation, that your use is for the 
+// sole purpose of programming logic devices manufactured by Intel and sold by 
+// Intel or its authorized distributors.  Please refer to the applicable 
+// agreement for further details.
+
+
+// $Id: //acds/rel/18.1std/ip/merlin/altera_customins_slave_translator/altera_customins_slave_translator.sv#1 $
+// $Revision: #1 $
+// $Date: 2018/07/18 $
+// $Author: psgswbuild $
+// --------------------------------------
+// Custom instruction slave translator
+// --------------------------------------
+`timescale 1 ns / 1 ns
+
+module altera_customins_slave_translator
+#(
+    parameter N_WIDTH          = 8,
+              USE_DONE         = 1,
+              NUM_FIXED_CYCLES = 2
+)
+(
+    // --------------------------------------
+    // Slave
+    // --------------------------------------
+    input  wire [31:0] ci_slave_dataa,   
+    input  wire [31:0] ci_slave_datab,   
+    output wire [31:0] ci_slave_result,  
+    input  wire [7:0]  ci_slave_n,       
+    input  wire        ci_slave_readra,  
+    input  wire        ci_slave_readrb,  
+    input  wire        ci_slave_writerc, 
+    input  wire [4:0]  ci_slave_a,       
+    input  wire [4:0]  ci_slave_b,       
+    input  wire [4:0]  ci_slave_c,
+    input  wire [31:0] ci_slave_ipending,
+    input  wire        ci_slave_estatus,
+
+    input  wire        ci_slave_clk,
+    input  wire        ci_slave_clken,
+    input  wire        ci_slave_reset,
+    input  wire        ci_slave_reset_req,
+    input  wire        ci_slave_start,
+    output wire        ci_slave_done,
+
+    // --------------------------------------
+    // Master
+    // --------------------------------------
+    output wire [31:0] ci_master_dataa, 
+    output wire [31:0] ci_master_datab, 
+    input  wire [31:0] ci_master_result,
+    output wire [N_WIDTH-1:0]  ci_master_n,       
+    output wire        ci_master_readra, 
+    output wire        ci_master_readrb, 
+    output wire        ci_master_writerc,
+    output wire [4:0]  ci_master_a,      
+    output wire [4:0]  ci_master_b,      
+    output wire [4:0]  ci_master_c,
+    output wire [31:0] ci_master_ipending,
+    output wire        ci_master_estatus,
+
+    output wire        ci_master_clk,
+    output wire        ci_master_clken,
+    output wire        ci_master_reset,
+    output wire        ci_master_reset_req,
+    output wire        ci_master_start,
+    input  wire        ci_master_done
+       
+);
+    localparam COUNTER_WIDTH = $clog2(NUM_FIXED_CYCLES);
+
+    wire                     gen_done;
+    reg  [COUNTER_WIDTH-1:0] count;
+    reg                      running;
+    reg                      reg_start;
+
+    assign ci_slave_result   = ci_master_result;
+    assign ci_master_writerc = ci_slave_writerc;
+    assign ci_master_dataa   = ci_slave_dataa;
+    assign ci_master_readra  = ci_slave_readra;
+    assign ci_master_datab   = ci_slave_datab;
+    assign ci_master_readrb  = ci_slave_readrb;
+    assign ci_master_b = ci_slave_b;
+    assign ci_master_c = ci_slave_c;
+    assign ci_master_a = ci_slave_a;
+    assign ci_master_ipending = ci_slave_ipending;
+    assign ci_master_estatus = ci_slave_estatus;
+
+    assign ci_master_clk    = ci_slave_clk;
+    assign ci_master_clken  = ci_slave_clken;
+    assign ci_master_reset  = ci_slave_reset;
+    assign ci_master_reset_req = ci_slave_reset_req;
+
+    // --------------------------------------
+    // Is there something we need to do if the master does not 
+    // have start?
+    // --------------------------------------
+    assign ci_master_start  = ci_slave_start;
+
+    // --------------------------------------
+    // Create the done signal if the slave does not drive it.
+    // 
+    // For num_cycles = 2, this is just the registered start.
+    // Anything larger and we use a down-counter.
+    // --------------------------------------
+    assign ci_slave_done = (USE_DONE == 1) ? ci_master_done : gen_done;
+    assign gen_done      = (NUM_FIXED_CYCLES == 2) ? reg_start : (count == 0);
+
+    always @(posedge ci_slave_clk, posedge ci_slave_reset) begin
+        if (ci_slave_reset)
+            reg_start <= 0;
+        else if (ci_slave_clken)
+            reg_start <= ci_slave_start;
+    end
+
+    always @(posedge ci_slave_clk, posedge ci_slave_reset) begin
+        if (ci_slave_reset) begin
+            running <= 0;
+            count   <= NUM_FIXED_CYCLES - 2;
+        end 
+        else if (ci_slave_clken) begin
+            if (ci_slave_start)
+                running <= 1;
+            if (running)
+                count   <= count - 1;
+            if (ci_slave_done) begin
+                running <= 0;
+                count   <= NUM_FIXED_CYCLES - 2;
+            end
+        end
+    end
+
+    // --------------------------------------
+    // Opcode base addresses must be a multiple of their span,
+    // just like base addresses. This simplifies the following
+    // assignment (just drop the high order bits)
+    // --------------------------------------
+    assign ci_master_n = ci_slave_n[N_WIDTH-1:0];
+
+
+endmodule

+ 1 - 1
nios2_uc/synthesis/submodules/altera_merlin_arbitrator.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 

+ 3 - 3
nios2_uc/synthesis/submodules/altera_merlin_burst_uncompressor.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_slave_agent/altera_merlin_burst_uncompressor.sv#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_slave_agent/altera_merlin_burst_uncompressor.sv#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // ------------------------------------------

+ 3 - 3
nios2_uc/synthesis/submodules/altera_merlin_master_agent.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -11,9 +11,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_master_agent/altera_merlin_master_agent.sv#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_master_agent/altera_merlin_master_agent.sv#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // --------------------------------------

+ 3 - 3
nios2_uc/synthesis/submodules/altera_merlin_master_translator.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -11,9 +11,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_master_translator/altera_merlin_master_translator.sv#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_master_translator/altera_merlin_master_translator.sv#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // --------------------------------------

+ 3 - 3
nios2_uc/synthesis/submodules/altera_merlin_slave_agent.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_slave_agent/altera_merlin_slave_agent.sv#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_slave_agent/altera_merlin_slave_agent.sv#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 `timescale 1 ns / 1 ns

+ 3 - 3
nios2_uc/synthesis/submodules/altera_merlin_slave_translator.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -12,9 +12,9 @@
 
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_slave_translator/altera_merlin_slave_translator.sv#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_slave_translator/altera_merlin_slave_translator.sv#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -------------------------------------

+ 1 - 1
nios2_uc/synthesis/submodules/altera_reset_controller.sdc

@@ -1,4 +1,4 @@
-# (C) 2001-2019 Intel Corporation. All rights reserved.
+# (C) 2001-2018 Intel Corporation. All rights reserved.
 # Your use of Intel Corporation's design tools, logic functions and other 
 # software and tools, and its AMPP partner logic functions, and any output 
 # files from any of the foregoing (including device programming or simulation 

+ 3 - 3
nios2_uc/synthesis/submodules/altera_reset_controller.v

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_reset_controller/altera_reset_controller.v#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_reset_controller/altera_reset_controller.v#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // --------------------------------------

+ 3 - 3
nios2_uc/synthesis/submodules/altera_reset_synchronizer.v

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -11,9 +11,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_reset_controller/altera_reset_synchronizer.v#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_reset_controller/altera_reset_synchronizer.v#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -----------------------------------------------

File diff suppressed because it is too large
+ 7469 - 0
nios2_uc/synthesis/submodules/fpoint_hw_qsys.v


File diff suppressed because it is too large
+ 3587 - 0
nios2_uc/synthesis/submodules/fpoint_qsys.v


+ 80 - 0
nios2_uc/synthesis/submodules/fpoint_wrapper.v

@@ -0,0 +1,80 @@
+// (C) 2001-2018 Intel Corporation. All rights reserved.
+// Your use of Intel Corporation's design tools, logic functions and other 
+// software and tools, and its AMPP partner logic functions, and any output 
+// files from any of the foregoing (including device programming or simulation 
+// files), and any associated documentation or information are expressly subject 
+// to the terms and conditions of the Intel Program License Subscription 
+// Agreement, Intel FPGA IP License Agreement, or other applicable 
+// license agreement, including, without limitation, that your use is for the 
+// sole purpose of programming logic devices manufactured by Intel and sold by 
+// Intel or its authorized distributors.  Please refer to the applicable 
+// agreement for further details.
+
+
+//synopsys translate_off
+`timescale 1 ps / 1 ps
+//synopsys translate_on
+
+module fpoint_wrapper (
+		clk,
+		clk_en,
+		dataa,
+		datab,
+		n,
+		reset,
+		start,
+		
+		done,
+		result
+);
+
+	output           done;
+	output  [ 31: 0] result;
+	input            clk;
+	input            clk_en;
+	input   [ 31: 0] dataa;
+	input   [ 31: 0] datab;
+	input   [  1: 0] n;
+	input            reset;
+	input            start;
+
+	wire		done;
+	wire	[ 31: 0] result;
+
+	parameter useDivider = 0;
+
+	generate
+		if (useDivider)
+			begin
+				fpoint_hw_qsys fpoint_instance (
+					.clk(clk),
+					.clk_en(clk_en),
+					.dataa(dataa),
+					.datab(datab),
+					.n(n),
+					.reset(reset),
+					.start(start),
+					.done(done),
+					.result(result)
+				);
+			end
+		else
+			begin
+				fpoint_qsys fpoint_instance (
+					.clk(clk),
+					.clk_en(clk_en),
+					.dataa(dataa),
+					.datab(datab),
+					.n(n),
+					.reset(reset),
+					.start(start),
+					.done(done),
+					.result(result)
+				);	
+			end
+	
+	endgenerate
+
+
+endmodule
+

+ 3 - 3
nios2_uc/synthesis/submodules/nios2_uc_irq_mapper.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -11,9 +11,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_irq_mapper/altera_irq_mapper.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_irq_mapper/altera_irq_mapper.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -------------------------------------------------------

+ 67 - 0
nios2_uc/synthesis/submodules/nios2_uc_lcd_16207.v

@@ -0,0 +1,67 @@
+//Legal Notice: (C)2020 Altera Corporation. All rights reserved.  Your
+//use of Altera Corporation's design tools, logic functions and other
+//software and tools, and its AMPP partner logic functions, and any
+//output files any of the foregoing (including device programming or
+//simulation files), and any associated documentation or information are
+//expressly subject to the terms and conditions of the Altera Program
+//License Subscription Agreement or other applicable license agreement,
+//including, without limitation, that your use is for the sole purpose
+//of programming logic devices manufactured by Altera and sold by Altera
+//or its authorized distributors.  Please refer to the applicable
+//agreement for further details.
+
+// synthesis translate_off
+`timescale 1ns / 1ps
+// synthesis translate_on
+
+// turn off superfluous verilog processor warnings 
+// altera message_level Level1 
+// altera message_off 10034 10035 10036 10037 10230 10240 10030 
+
+module nios2_uc_lcd_16207 (
+                            // inputs:
+                             address,
+                             begintransfer,
+                             clk,
+                             read,
+                             reset_n,
+                             write,
+                             writedata,
+
+                            // outputs:
+                             LCD_E,
+                             LCD_RS,
+                             LCD_RW,
+                             LCD_data,
+                             readdata
+                          )
+;
+
+  output           LCD_E;
+  output           LCD_RS;
+  output           LCD_RW;
+  inout   [  7: 0] LCD_data;
+  output  [  7: 0] readdata;
+  input   [  1: 0] address;
+  input            begintransfer;
+  input            clk;
+  input            read;
+  input            reset_n;
+  input            write;
+  input   [  7: 0] writedata;
+
+
+wire             LCD_E;
+wire             LCD_RS;
+wire             LCD_RW;
+wire    [  7: 0] LCD_data;
+wire    [  7: 0] readdata;
+  assign LCD_RW = address[0];
+  assign LCD_RS = address[1];
+  assign LCD_E = read | write;
+  assign LCD_data = (address[0]) ? {8{1'bz}} : writedata;
+  assign readdata = LCD_data;
+  //control_slave, which is an e_avalon_slave
+
+endmodule
+

File diff suppressed because it is too large
+ 1395 - 263
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0.v


+ 1 - 1
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_avalon_st_adapter.v

@@ -3,7 +3,7 @@
 // This file was auto-generated from altera_avalon_st_adapter_hw.tcl.  If you edit it your changes
 // will probably be lost.
 // 
-// Generated using ACDS version 18.1 646
+// Generated using ACDS version 18.1 625
 
 `timescale 1 ps / 1 ps
 module nios2_uc_mm_interconnect_0_avalon_st_adapter #(

+ 1 - 1
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_avalon_st_adapter_error_adapter_0.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 

+ 62 - 17
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_cmd_demux.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -11,9 +11,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -------------------------------------
@@ -28,9 +28,9 @@
 // ------------------------------------------
 // Generation parameters:
 //   output_name:         nios2_uc_mm_interconnect_0_cmd_demux
-//   ST_DATA_W:           94
-//   ST_CHANNEL_W:        4
-//   NUM_OUTPUTS:         4
+//   ST_DATA_W:           96
+//   ST_CHANNEL_W:        7
+//   NUM_OUTPUTS:         7
 //   VALID_WIDTH:         1
 // ------------------------------------------
 
@@ -46,8 +46,8 @@ module nios2_uc_mm_interconnect_0_cmd_demux
     // Sink
     // -------------------
     input  [1-1      : 0]   sink_valid,
-    input  [94-1    : 0]   sink_data, // ST_DATA_W=94
-    input  [4-1 : 0]   sink_channel, // ST_CHANNEL_W=4
+    input  [96-1    : 0]   sink_data, // ST_DATA_W=96
+    input  [7-1 : 0]   sink_channel, // ST_CHANNEL_W=7
     input                         sink_startofpacket,
     input                         sink_endofpacket,
     output                        sink_ready,
@@ -56,33 +56,54 @@ module nios2_uc_mm_interconnect_0_cmd_demux
     // Sources 
     // -------------------
     output reg                      src0_valid,
-    output reg [94-1    : 0] src0_data, // ST_DATA_W=94
-    output reg [4-1 : 0] src0_channel, // ST_CHANNEL_W=4
+    output reg [96-1    : 0] src0_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src0_channel, // ST_CHANNEL_W=7
     output reg                      src0_startofpacket,
     output reg                      src0_endofpacket,
     input                           src0_ready,
 
     output reg                      src1_valid,
-    output reg [94-1    : 0] src1_data, // ST_DATA_W=94
-    output reg [4-1 : 0] src1_channel, // ST_CHANNEL_W=4
+    output reg [96-1    : 0] src1_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src1_channel, // ST_CHANNEL_W=7
     output reg                      src1_startofpacket,
     output reg                      src1_endofpacket,
     input                           src1_ready,
 
     output reg                      src2_valid,
-    output reg [94-1    : 0] src2_data, // ST_DATA_W=94
-    output reg [4-1 : 0] src2_channel, // ST_CHANNEL_W=4
+    output reg [96-1    : 0] src2_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src2_channel, // ST_CHANNEL_W=7
     output reg                      src2_startofpacket,
     output reg                      src2_endofpacket,
     input                           src2_ready,
 
     output reg                      src3_valid,
-    output reg [94-1    : 0] src3_data, // ST_DATA_W=94
-    output reg [4-1 : 0] src3_channel, // ST_CHANNEL_W=4
+    output reg [96-1    : 0] src3_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src3_channel, // ST_CHANNEL_W=7
     output reg                      src3_startofpacket,
     output reg                      src3_endofpacket,
     input                           src3_ready,
 
+    output reg                      src4_valid,
+    output reg [96-1    : 0] src4_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src4_channel, // ST_CHANNEL_W=7
+    output reg                      src4_startofpacket,
+    output reg                      src4_endofpacket,
+    input                           src4_ready,
+
+    output reg                      src5_valid,
+    output reg [96-1    : 0] src5_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src5_channel, // ST_CHANNEL_W=7
+    output reg                      src5_startofpacket,
+    output reg                      src5_endofpacket,
+    input                           src5_ready,
+
+    output reg                      src6_valid,
+    output reg [96-1    : 0] src6_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src6_channel, // ST_CHANNEL_W=7
+    output reg                      src6_startofpacket,
+    output reg                      src6_endofpacket,
+    input                           src6_ready,
+
 
     // -------------------
     // Clock & Reset
@@ -94,7 +115,7 @@ module nios2_uc_mm_interconnect_0_cmd_demux
 
 );
 
-    localparam NUM_OUTPUTS = 4;
+    localparam NUM_OUTPUTS = 7;
     wire [NUM_OUTPUTS - 1 : 0] ready_vector;
 
     // -------------------
@@ -129,6 +150,27 @@ module nios2_uc_mm_interconnect_0_cmd_demux
 
         src3_valid         = sink_channel[3] && sink_valid;
 
+        src4_data          = sink_data;
+        src4_startofpacket = sink_startofpacket;
+        src4_endofpacket   = sink_endofpacket;
+        src4_channel       = sink_channel >> NUM_OUTPUTS;
+
+        src4_valid         = sink_channel[4] && sink_valid;
+
+        src5_data          = sink_data;
+        src5_startofpacket = sink_startofpacket;
+        src5_endofpacket   = sink_endofpacket;
+        src5_channel       = sink_channel >> NUM_OUTPUTS;
+
+        src5_valid         = sink_channel[5] && sink_valid;
+
+        src6_data          = sink_data;
+        src6_startofpacket = sink_startofpacket;
+        src6_endofpacket   = sink_endofpacket;
+        src6_channel       = sink_channel >> NUM_OUTPUTS;
+
+        src6_valid         = sink_channel[6] && sink_valid;
+
     end
 
     // -------------------
@@ -138,6 +180,9 @@ module nios2_uc_mm_interconnect_0_cmd_demux
     assign ready_vector[1] = src1_ready;
     assign ready_vector[2] = src2_ready;
     assign ready_vector[3] = src3_ready;
+    assign ready_vector[4] = src4_ready;
+    assign ready_vector[5] = src5_ready;
+    assign ready_vector[6] = src6_ready;
 
     assign sink_ready = |(sink_channel & ready_vector);
 

+ 14 - 14
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_cmd_mux.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // ------------------------------------------
@@ -44,8 +44,8 @@
 //   ARBITRATION_SCHEME   "round-robin"
 //   PIPELINE_ARB:        1
 //   PKT_TRANS_LOCK:      60 (arbitration locking enabled)
-//   ST_DATA_W:           94
-//   ST_CHANNEL_W:        4
+//   ST_DATA_W:           96
+//   ST_CHANNEL_W:        7
 // ------------------------------------------
 
 module nios2_uc_mm_interconnect_0_cmd_mux
@@ -54,15 +54,15 @@ module nios2_uc_mm_interconnect_0_cmd_mux
     // Sinks
     // ----------------------
     input                       sink0_valid,
-    input [94-1   : 0]  sink0_data,
-    input [4-1: 0]  sink0_channel,
+    input [96-1   : 0]  sink0_data,
+    input [7-1: 0]  sink0_channel,
     input                       sink0_startofpacket,
     input                       sink0_endofpacket,
     output                      sink0_ready,
 
     input                       sink1_valid,
-    input [94-1   : 0]  sink1_data,
-    input [4-1: 0]  sink1_channel,
+    input [96-1   : 0]  sink1_data,
+    input [7-1: 0]  sink1_channel,
     input                       sink1_startofpacket,
     input                       sink1_endofpacket,
     output                      sink1_ready,
@@ -72,8 +72,8 @@ module nios2_uc_mm_interconnect_0_cmd_mux
     // Source
     // ----------------------
     output                      src_valid,
-    output [94-1    : 0] src_data,
-    output [4-1 : 0] src_channel,
+    output [96-1    : 0] src_data,
+    output [7-1 : 0] src_channel,
     output                      src_startofpacket,
     output                      src_endofpacket,
     input                       src_ready,
@@ -84,12 +84,12 @@ module nios2_uc_mm_interconnect_0_cmd_mux
     input clk,
     input reset
 );
-    localparam PAYLOAD_W        = 94 + 4 + 2;
+    localparam PAYLOAD_W        = 96 + 7 + 2;
     localparam NUM_INPUTS       = 2;
     localparam SHARE_COUNTER_W  = 1;
     localparam PIPELINE_ARB     = 1;
-    localparam ST_DATA_W        = 94;
-    localparam ST_CHANNEL_W     = 4;
+    localparam ST_DATA_W        = 96;
+    localparam ST_CHANNEL_W     = 7;
     localparam PKT_TRANS_LOCK   = 60;
 
     // ------------------------------------------

+ 63 - 37
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_router.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -------------------------------------------------------
@@ -44,26 +44,26 @@
 
 module nios2_uc_mm_interconnect_0_router_default_decode
   #(
-     parameter DEFAULT_CHANNEL = 2,
+     parameter DEFAULT_CHANNEL = 3,
                DEFAULT_WR_CHANNEL = -1,
                DEFAULT_RD_CHANNEL = -1,
-               DEFAULT_DESTID = 2 
+               DEFAULT_DESTID = 3 
    )
-  (output [80 - 79 : 0] default_destination_id,
-   output [4-1 : 0] default_wr_channel,
-   output [4-1 : 0] default_rd_channel,
-   output [4-1 : 0] default_src_channel
+  (output [82 - 80 : 0] default_destination_id,
+   output [7-1 : 0] default_wr_channel,
+   output [7-1 : 0] default_rd_channel,
+   output [7-1 : 0] default_src_channel
   );
 
   assign default_destination_id = 
-    DEFAULT_DESTID[80 - 79 : 0];
+    DEFAULT_DESTID[82 - 80 : 0];
 
   generate
     if (DEFAULT_CHANNEL == -1) begin : no_default_channel_assignment
       assign default_src_channel = '0;
     end
     else begin : default_channel_assignment
-      assign default_src_channel = 4'b1 << DEFAULT_CHANNEL;
+      assign default_src_channel = 7'b1 << DEFAULT_CHANNEL;
     end
   endgenerate
 
@@ -73,8 +73,8 @@ module nios2_uc_mm_interconnect_0_router_default_decode
       assign default_rd_channel = '0;
     end
     else begin : default_rw_channel_assignment
-      assign default_wr_channel = 4'b1 << DEFAULT_WR_CHANNEL;
-      assign default_rd_channel = 4'b1 << DEFAULT_RD_CHANNEL;
+      assign default_wr_channel = 7'b1 << DEFAULT_WR_CHANNEL;
+      assign default_rd_channel = 7'b1 << DEFAULT_RD_CHANNEL;
     end
   endgenerate
 
@@ -93,7 +93,7 @@ module nios2_uc_mm_interconnect_0_router
     // Command Sink (Input)
     // -------------------
     input                       sink_valid,
-    input  [94-1 : 0]    sink_data,
+    input  [96-1 : 0]    sink_data,
     input                       sink_startofpacket,
     input                       sink_endofpacket,
     output                      sink_ready,
@@ -102,8 +102,8 @@ module nios2_uc_mm_interconnect_0_router
     // Command Source (Output)
     // -------------------
     output                          src_valid,
-    output reg [94-1    : 0] src_data,
-    output reg [4-1 : 0] src_channel,
+    output reg [96-1    : 0] src_data,
+    output reg [7-1 : 0] src_channel,
     output                          src_startofpacket,
     output                          src_endofpacket,
     input                           src_ready
@@ -114,12 +114,12 @@ module nios2_uc_mm_interconnect_0_router
     // -------------------------------------------------------
     localparam PKT_ADDR_H = 55;
     localparam PKT_ADDR_L = 36;
-    localparam PKT_DEST_ID_H = 80;
-    localparam PKT_DEST_ID_L = 79;
-    localparam PKT_PROTECTION_H = 84;
-    localparam PKT_PROTECTION_L = 82;
-    localparam ST_DATA_W = 94;
-    localparam ST_CHANNEL_W = 4;
+    localparam PKT_DEST_ID_H = 82;
+    localparam PKT_DEST_ID_L = 80;
+    localparam PKT_PROTECTION_H = 86;
+    localparam PKT_PROTECTION_L = 84;
+    localparam ST_DATA_W = 96;
+    localparam ST_CHANNEL_W = 7;
     localparam DECODER_TYPE = 0;
 
     localparam PKT_TRANS_WRITE = 58;
@@ -136,14 +136,17 @@ module nios2_uc_mm_interconnect_0_router
     // -------------------------------------------------------
     localparam PAD0 = log2ceil(64'h80000 - 64'h40000); 
     localparam PAD1 = log2ceil(64'h81000 - 64'h80800); 
-    localparam PAD2 = log2ceil(64'h81020 - 64'h81010); 
-    localparam PAD3 = log2ceil(64'h81030 - 64'h81028); 
+    localparam PAD2 = log2ceil(64'h81050 - 64'h81040); 
+    localparam PAD3 = log2ceil(64'h81060 - 64'h81050); 
+    localparam PAD4 = log2ceil(64'h81070 - 64'h81060); 
+    localparam PAD5 = log2ceil(64'h81080 - 64'h81070); 
+    localparam PAD6 = log2ceil(64'h81090 - 64'h81088); 
     // -------------------------------------------------------
     // Work out which address bits are significant based on the
     // address range of the slaves. If the required width is too
     // large or too small, we use the address field width instead.
     // -------------------------------------------------------
-    localparam ADDR_RANGE = 64'h81030;
+    localparam ADDR_RANGE = 64'h81090;
     localparam RANGE_ADDR_WIDTH = log2ceil(ADDR_RANGE);
     localparam OPTIMIZED_ADDR_H = (RANGE_ADDR_WIDTH > PKT_ADDR_W) ||
                                   (RANGE_ADDR_WIDTH == 0) ?
@@ -167,11 +170,16 @@ module nios2_uc_mm_interconnect_0_router
     assign src_startofpacket = sink_startofpacket;
     assign src_endofpacket   = sink_endofpacket;
     wire [PKT_DEST_ID_W-1:0] default_destid;
-    wire [4-1 : 0] default_src_channel;
+    wire [7-1 : 0] default_src_channel;
 
 
 
 
+    // -------------------------------------------------------
+    // Write and read transaction signals
+    // -------------------------------------------------------
+    wire read_transaction;
+    assign read_transaction  = sink_data[PKT_TRANS_READ];
 
 
     nios2_uc_mm_interconnect_0_router_default_decode the_default_decode(
@@ -193,25 +201,43 @@ module nios2_uc_mm_interconnect_0_router
 
     // ( 0x40000 .. 0x80000 )
     if ( {address[RG:PAD0],{PAD0{1'b0}}} == 20'h40000   ) begin
-            src_channel = 4'b0100;
-            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 2;
+            src_channel = 7'b0001000;
+            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 3;
     end
 
     // ( 0x80800 .. 0x81000 )
     if ( {address[RG:PAD1],{PAD1{1'b0}}} == 20'h80800   ) begin
-            src_channel = 4'b0010;
-            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 1;
+            src_channel = 7'b0000100;
+            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 2;
     end
 
-    // ( 0x81010 .. 0x81020 )
-    if ( {address[RG:PAD2],{PAD2{1'b0}}} == 20'h81010   ) begin
-            src_channel = 4'b1000;
-            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 3;
+    // ( 0x81040 .. 0x81050 )
+    if ( {address[RG:PAD2],{PAD2{1'b0}}} == 20'h81040  && read_transaction  ) begin
+            src_channel = 7'b1000000;
+            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 4;
+    end
+
+    // ( 0x81050 .. 0x81060 )
+    if ( {address[RG:PAD3],{PAD3{1'b0}}} == 20'h81050   ) begin
+            src_channel = 7'b0100000;
+            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 6;
+    end
+
+    // ( 0x81060 .. 0x81070 )
+    if ( {address[RG:PAD4],{PAD4{1'b0}}} == 20'h81060   ) begin
+            src_channel = 7'b0010000;
+            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 5;
+    end
+
+    // ( 0x81070 .. 0x81080 )
+    if ( {address[RG:PAD5],{PAD5{1'b0}}} == 20'h81070   ) begin
+            src_channel = 7'b0000010;
+            src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 1;
     end
 
-    // ( 0x81028 .. 0x81030 )
-    if ( {address[RG:PAD3],{PAD3{1'b0}}} == 20'h81028   ) begin
-            src_channel = 4'b0001;
+    // ( 0x81088 .. 0x81090 )
+    if ( {address[RG:PAD6],{PAD6{1'b0}}} == 20'h81088   ) begin
+            src_channel = 7'b0000001;
             src_data[PKT_DEST_ID_H:PKT_DEST_ID_L] = 0;
     end
 

+ 23 - 23
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_router_002.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_router/altera_merlin_router.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -------------------------------------------------------
@@ -49,21 +49,21 @@ module nios2_uc_mm_interconnect_0_router_002_default_decode
                DEFAULT_RD_CHANNEL = -1,
                DEFAULT_DESTID = 0 
    )
-  (output [80 - 79 : 0] default_destination_id,
-   output [4-1 : 0] default_wr_channel,
-   output [4-1 : 0] default_rd_channel,
-   output [4-1 : 0] default_src_channel
+  (output [82 - 80 : 0] default_destination_id,
+   output [7-1 : 0] default_wr_channel,
+   output [7-1 : 0] default_rd_channel,
+   output [7-1 : 0] default_src_channel
   );
 
   assign default_destination_id = 
-    DEFAULT_DESTID[80 - 79 : 0];
+    DEFAULT_DESTID[82 - 80 : 0];
 
   generate
     if (DEFAULT_CHANNEL == -1) begin : no_default_channel_assignment
       assign default_src_channel = '0;
     end
     else begin : default_channel_assignment
-      assign default_src_channel = 4'b1 << DEFAULT_CHANNEL;
+      assign default_src_channel = 7'b1 << DEFAULT_CHANNEL;
     end
   endgenerate
 
@@ -73,8 +73,8 @@ module nios2_uc_mm_interconnect_0_router_002_default_decode
       assign default_rd_channel = '0;
     end
     else begin : default_rw_channel_assignment
-      assign default_wr_channel = 4'b1 << DEFAULT_WR_CHANNEL;
-      assign default_rd_channel = 4'b1 << DEFAULT_RD_CHANNEL;
+      assign default_wr_channel = 7'b1 << DEFAULT_WR_CHANNEL;
+      assign default_rd_channel = 7'b1 << DEFAULT_RD_CHANNEL;
     end
   endgenerate
 
@@ -93,7 +93,7 @@ module nios2_uc_mm_interconnect_0_router_002
     // Command Sink (Input)
     // -------------------
     input                       sink_valid,
-    input  [94-1 : 0]    sink_data,
+    input  [96-1 : 0]    sink_data,
     input                       sink_startofpacket,
     input                       sink_endofpacket,
     output                      sink_ready,
@@ -102,8 +102,8 @@ module nios2_uc_mm_interconnect_0_router_002
     // Command Source (Output)
     // -------------------
     output                          src_valid,
-    output reg [94-1    : 0] src_data,
-    output reg [4-1 : 0] src_channel,
+    output reg [96-1    : 0] src_data,
+    output reg [7-1 : 0] src_channel,
     output                          src_startofpacket,
     output                          src_endofpacket,
     input                           src_ready
@@ -114,12 +114,12 @@ module nios2_uc_mm_interconnect_0_router_002
     // -------------------------------------------------------
     localparam PKT_ADDR_H = 55;
     localparam PKT_ADDR_L = 36;
-    localparam PKT_DEST_ID_H = 80;
-    localparam PKT_DEST_ID_L = 79;
-    localparam PKT_PROTECTION_H = 84;
-    localparam PKT_PROTECTION_L = 82;
-    localparam ST_DATA_W = 94;
-    localparam ST_CHANNEL_W = 4;
+    localparam PKT_DEST_ID_H = 82;
+    localparam PKT_DEST_ID_L = 80;
+    localparam PKT_PROTECTION_H = 86;
+    localparam PKT_PROTECTION_L = 84;
+    localparam ST_DATA_W = 96;
+    localparam ST_CHANNEL_W = 7;
     localparam DECODER_TYPE = 1;
 
     localparam PKT_TRANS_WRITE = 58;
@@ -158,7 +158,7 @@ module nios2_uc_mm_interconnect_0_router_002
     assign src_valid         = sink_valid;
     assign src_startofpacket = sink_startofpacket;
     assign src_endofpacket   = sink_endofpacket;
-    wire [4-1 : 0] default_src_channel;
+    wire [7-1 : 0] default_src_channel;
 
 
 
@@ -190,11 +190,11 @@ module nios2_uc_mm_interconnect_0_router_002
 
 
         if (destid == 0 ) begin
-            src_channel = 4'b01;
+            src_channel = 7'b01;
         end
 
         if (destid == 1  && read_transaction) begin
-            src_channel = 4'b10;
+            src_channel = 7'b10;
         end
 
 

+ 12 - 12
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_rsp_demux.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -11,9 +11,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_demultiplexer/altera_merlin_demultiplexer.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // -------------------------------------
@@ -28,8 +28,8 @@
 // ------------------------------------------
 // Generation parameters:
 //   output_name:         nios2_uc_mm_interconnect_0_rsp_demux
-//   ST_DATA_W:           94
-//   ST_CHANNEL_W:        4
+//   ST_DATA_W:           96
+//   ST_CHANNEL_W:        7
 //   NUM_OUTPUTS:         2
 //   VALID_WIDTH:         1
 // ------------------------------------------
@@ -46,8 +46,8 @@ module nios2_uc_mm_interconnect_0_rsp_demux
     // Sink
     // -------------------
     input  [1-1      : 0]   sink_valid,
-    input  [94-1    : 0]   sink_data, // ST_DATA_W=94
-    input  [4-1 : 0]   sink_channel, // ST_CHANNEL_W=4
+    input  [96-1    : 0]   sink_data, // ST_DATA_W=96
+    input  [7-1 : 0]   sink_channel, // ST_CHANNEL_W=7
     input                         sink_startofpacket,
     input                         sink_endofpacket,
     output                        sink_ready,
@@ -56,15 +56,15 @@ module nios2_uc_mm_interconnect_0_rsp_demux
     // Sources 
     // -------------------
     output reg                      src0_valid,
-    output reg [94-1    : 0] src0_data, // ST_DATA_W=94
-    output reg [4-1 : 0] src0_channel, // ST_CHANNEL_W=4
+    output reg [96-1    : 0] src0_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src0_channel, // ST_CHANNEL_W=7
     output reg                      src0_startofpacket,
     output reg                      src0_endofpacket,
     input                           src0_ready,
 
     output reg                      src1_valid,
-    output reg [94-1    : 0] src1_data, // ST_DATA_W=94
-    output reg [4-1 : 0] src1_channel, // ST_CHANNEL_W=4
+    output reg [96-1    : 0] src1_data, // ST_DATA_W=96
+    output reg [7-1 : 0] src1_channel, // ST_CHANNEL_W=7
     output reg                      src1_startofpacket,
     output reg                      src1_endofpacket,
     input                           src1_ready,
@@ -109,7 +109,7 @@ module nios2_uc_mm_interconnect_0_rsp_demux
     assign ready_vector[0] = src0_ready;
     assign ready_vector[1] = src1_ready;
 
-    assign sink_ready = |(sink_channel & {{2{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}});
+    assign sink_ready = |(sink_channel & {{5{1'b0}},{ready_vector[NUM_OUTPUTS - 1 : 0]}});
 
 endmodule
 

+ 83 - 23
nios2_uc/synthesis/submodules/nios2_uc_mm_interconnect_0_rsp_mux.sv

@@ -1,4 +1,4 @@
-// (C) 2001-2019 Intel Corporation. All rights reserved.
+// (C) 2001-2018 Intel Corporation. All rights reserved.
 // Your use of Intel Corporation's design tools, logic functions and other 
 // software and tools, and its AMPP partner logic functions, and any output 
 // files from any of the foregoing (including device programming or simulation 
@@ -24,9 +24,9 @@
 // agreement for further details.
 
 
-// $Id: //acds/rel/19.1std/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $
+// $Id: //acds/rel/18.1std/ip/merlin/altera_merlin_multiplexer/altera_merlin_multiplexer.sv.terp#1 $
 // $Revision: #1 $
-// $Date: 2018/11/07 $
+// $Date: 2018/07/18 $
 // $Author: psgswbuild $
 
 // ------------------------------------------
@@ -39,13 +39,13 @@
 // ------------------------------------------
 // Generation parameters:
 //   output_name:         nios2_uc_mm_interconnect_0_rsp_mux
-//   NUM_INPUTS:          4
-//   ARBITRATION_SHARES:  1 1 1 1
+//   NUM_INPUTS:          7
+//   ARBITRATION_SHARES:  1 1 1 1 1 1 1
 //   ARBITRATION_SCHEME   "no-arb"
 //   PIPELINE_ARB:        0
 //   PKT_TRANS_LOCK:      60 (arbitration locking enabled)
-//   ST_DATA_W:           94
-//   ST_CHANNEL_W:        4
+//   ST_DATA_W:           96
+//   ST_CHANNEL_W:        7
 // ------------------------------------------
 
 module nios2_uc_mm_interconnect_0_rsp_mux
@@ -54,40 +54,61 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     // Sinks
     // ----------------------
     input                       sink0_valid,
-    input [94-1   : 0]  sink0_data,
-    input [4-1: 0]  sink0_channel,
+    input [96-1   : 0]  sink0_data,
+    input [7-1: 0]  sink0_channel,
     input                       sink0_startofpacket,
     input                       sink0_endofpacket,
     output                      sink0_ready,
 
     input                       sink1_valid,
-    input [94-1   : 0]  sink1_data,
-    input [4-1: 0]  sink1_channel,
+    input [96-1   : 0]  sink1_data,
+    input [7-1: 0]  sink1_channel,
     input                       sink1_startofpacket,
     input                       sink1_endofpacket,
     output                      sink1_ready,
 
     input                       sink2_valid,
-    input [94-1   : 0]  sink2_data,
-    input [4-1: 0]  sink2_channel,
+    input [96-1   : 0]  sink2_data,
+    input [7-1: 0]  sink2_channel,
     input                       sink2_startofpacket,
     input                       sink2_endofpacket,
     output                      sink2_ready,
 
     input                       sink3_valid,
-    input [94-1   : 0]  sink3_data,
-    input [4-1: 0]  sink3_channel,
+    input [96-1   : 0]  sink3_data,
+    input [7-1: 0]  sink3_channel,
     input                       sink3_startofpacket,
     input                       sink3_endofpacket,
     output                      sink3_ready,
 
+    input                       sink4_valid,
+    input [96-1   : 0]  sink4_data,
+    input [7-1: 0]  sink4_channel,
+    input                       sink4_startofpacket,
+    input                       sink4_endofpacket,
+    output                      sink4_ready,
+
+    input                       sink5_valid,
+    input [96-1   : 0]  sink5_data,
+    input [7-1: 0]  sink5_channel,
+    input                       sink5_startofpacket,
+    input                       sink5_endofpacket,
+    output                      sink5_ready,
+
+    input                       sink6_valid,
+    input [96-1   : 0]  sink6_data,
+    input [7-1: 0]  sink6_channel,
+    input                       sink6_startofpacket,
+    input                       sink6_endofpacket,
+    output                      sink6_ready,
+
 
     // ----------------------
     // Source
     // ----------------------
     output                      src_valid,
-    output [94-1    : 0] src_data,
-    output [4-1 : 0] src_channel,
+    output [96-1    : 0] src_data,
+    output [7-1 : 0] src_channel,
     output                      src_startofpacket,
     output                      src_endofpacket,
     input                       src_ready,
@@ -98,12 +119,12 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     input clk,
     input reset
 );
-    localparam PAYLOAD_W        = 94 + 4 + 2;
-    localparam NUM_INPUTS       = 4;
+    localparam PAYLOAD_W        = 96 + 7 + 2;
+    localparam NUM_INPUTS       = 7;
     localparam SHARE_COUNTER_W  = 1;
     localparam PIPELINE_ARB     = 0;
-    localparam ST_DATA_W        = 94;
-    localparam ST_CHANNEL_W     = 4;
+    localparam ST_DATA_W        = 96;
+    localparam ST_CHANNEL_W     = 7;
     localparam PKT_TRANS_LOCK   = 60;
 
     // ------------------------------------------
@@ -123,11 +144,17 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     wire [PAYLOAD_W - 1 : 0] sink1_payload;
     wire [PAYLOAD_W - 1 : 0] sink2_payload;
     wire [PAYLOAD_W - 1 : 0] sink3_payload;
+    wire [PAYLOAD_W - 1 : 0] sink4_payload;
+    wire [PAYLOAD_W - 1 : 0] sink5_payload;
+    wire [PAYLOAD_W - 1 : 0] sink6_payload;
 
     assign valid[0] = sink0_valid;
     assign valid[1] = sink1_valid;
     assign valid[2] = sink2_valid;
     assign valid[3] = sink3_valid;
+    assign valid[4] = sink4_valid;
+    assign valid[5] = sink5_valid;
+    assign valid[6] = sink6_valid;
 
 
     // ------------------------------------------
@@ -141,6 +168,9 @@ module nios2_uc_mm_interconnect_0_rsp_mux
       lock[1] = sink1_data[60];
       lock[2] = sink2_data[60];
       lock[3] = sink3_data[60];
+      lock[4] = sink4_data[60];
+      lock[5] = sink5_data[60];
+      lock[6] = sink6_data[60];
     end
 
     assign last_cycle = src_valid & src_ready & src_endofpacket & ~(|(lock & grant));
@@ -175,10 +205,16 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     // 1      |      1       |  0
     // 2      |      1       |  0
     // 3      |      1       |  0
+    // 4      |      1       |  0
+    // 5      |      1       |  0
+    // 6      |      1       |  0
      wire [SHARE_COUNTER_W - 1 : 0] share_0 = 1'd0;
      wire [SHARE_COUNTER_W - 1 : 0] share_1 = 1'd0;
      wire [SHARE_COUNTER_W - 1 : 0] share_2 = 1'd0;
      wire [SHARE_COUNTER_W - 1 : 0] share_3 = 1'd0;
+     wire [SHARE_COUNTER_W - 1 : 0] share_4 = 1'd0;
+     wire [SHARE_COUNTER_W - 1 : 0] share_5 = 1'd0;
+     wire [SHARE_COUNTER_W - 1 : 0] share_6 = 1'd0;
 
     // ------------------------------------------
     // Choose the share value corresponding to the grant.
@@ -189,7 +225,10 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     share_0 & { SHARE_COUNTER_W {next_grant[0]} } |
     share_1 & { SHARE_COUNTER_W {next_grant[1]} } |
     share_2 & { SHARE_COUNTER_W {next_grant[2]} } |
-    share_3 & { SHARE_COUNTER_W {next_grant[3]} };
+    share_3 & { SHARE_COUNTER_W {next_grant[3]} } |
+    share_4 & { SHARE_COUNTER_W {next_grant[4]} } |
+    share_5 & { SHARE_COUNTER_W {next_grant[5]} } |
+    share_6 & { SHARE_COUNTER_W {next_grant[6]} };
     end
 
     // ------------------------------------------
@@ -259,11 +298,20 @@ module nios2_uc_mm_interconnect_0_rsp_mux
 
     wire final_packet_3 = 1'b1;
 
+    wire final_packet_4 = 1'b1;
+
+    wire final_packet_5 = 1'b1;
+
+    wire final_packet_6 = 1'b1;
+
 
     // ------------------------------------------
     // Concatenate all final_packet signals (wire or reg) into a handy vector.
     // ------------------------------------------
     wire [NUM_INPUTS - 1 : 0] final_packet = {
+    final_packet_6,
+    final_packet_5,
+    final_packet_4,
     final_packet_3,
     final_packet_2,
     final_packet_1,
@@ -355,6 +403,9 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     assign sink1_ready = src_ready && grant[1];
     assign sink2_ready = src_ready && grant[2];
     assign sink3_ready = src_ready && grant[3];
+    assign sink4_ready = src_ready && grant[4];
+    assign sink5_ready = src_ready && grant[5];
+    assign sink6_ready = src_ready && grant[6];
 
     assign src_valid = |(grant & valid);
 
@@ -363,7 +414,10 @@ module nios2_uc_mm_interconnect_0_rsp_mux
       sink0_payload & {PAYLOAD_W {grant[0]} } |
       sink1_payload & {PAYLOAD_W {grant[1]} } |
       sink2_payload & {PAYLOAD_W {grant[2]} } |
-      sink3_payload & {PAYLOAD_W {grant[3]} };
+      sink3_payload & {PAYLOAD_W {grant[3]} } |
+      sink4_payload & {PAYLOAD_W {grant[4]} } |
+      sink5_payload & {PAYLOAD_W {grant[5]} } |
+      sink6_payload & {PAYLOAD_W {grant[6]} };
     end
 
     // ------------------------------------------
@@ -378,6 +432,12 @@ module nios2_uc_mm_interconnect_0_rsp_mux
     sink2_startofpacket,sink2_endofpacket};
     assign sink3_payload = {sink3_channel,sink3_data,
     sink3_startofpacket,sink3_endofpacket};
+    assign sink4_payload = {sink4_channel,sink4_data,
+    sink4_startofpacket,sink4_endofpacket};
+    assign sink5_payload = {sink5_channel,sink5_data,
+    sink5_startofpacket,sink5_endofpacket};
+    assign sink6_payload = {sink6_channel,sink6_data,
+    sink6_startofpacket,sink6_endofpacket};
 
     assign {src_channel,src_data,src_startofpacket,src_endofpacket} = src_payload;
 endmodule

+ 37 - 3
nios2_uc/synthesis/submodules/nios2_uc_nios2.v

@@ -3,7 +3,7 @@
 // This file was auto-generated from altera_nios2_hw.tcl.  If you edit it your changes
 // will probably be lost.
 // 
-// Generated using ACDS version 18.1 646
+// Generated using ACDS version 18.1 625
 
 `timescale 1 ps / 1 ps
 module nios2_uc_nios2 (
@@ -32,7 +32,24 @@ module nios2_uc_nios2 (
 		output wire        debug_mem_slave_waitrequest,         //                          .waitrequest
 		input  wire        debug_mem_slave_write,               //                          .write
 		input  wire [31:0] debug_mem_slave_writedata,           //                          .writedata
-		output wire        dummy_ci_port                        // custom_instruction_master.readra
+		input  wire        E_ci_multi_done,                     // custom_instruction_master.done
+		output wire        E_ci_multi_clk_en,                   //                          .clk_en
+		output wire        E_ci_multi_start,                    //                          .start
+		input  wire [31:0] E_ci_result,                         //                          .result
+		output wire [4:0]  D_ci_a,                              //                          .a
+		output wire [4:0]  D_ci_b,                              //                          .b
+		output wire [4:0]  D_ci_c,                              //                          .c
+		output wire [7:0]  D_ci_n,                              //                          .n
+		output wire        D_ci_readra,                         //                          .readra
+		output wire        D_ci_readrb,                         //                          .readrb
+		output wire        D_ci_writerc,                        //                          .writerc
+		output wire [31:0] E_ci_dataa,                          //                          .dataa
+		output wire [31:0] E_ci_datab,                          //                          .datab
+		output wire        E_ci_multi_clock,                    //                          .clk
+		output wire        E_ci_multi_reset,                    //                          .reset
+		output wire        E_ci_multi_reset_req,                //                          .reset_req
+		output wire        W_ci_estatus,                        //                          .estatus
+		output wire [31:0] W_ci_ipending                        //                          .ipending
 	);
 
 	nios2_uc_nios2_cpu cpu (
@@ -61,7 +78,24 @@ module nios2_uc_nios2 (
 		.debug_mem_slave_waitrequest         (debug_mem_slave_waitrequest),         //                          .waitrequest
 		.debug_mem_slave_write               (debug_mem_slave_write),               //                          .write
 		.debug_mem_slave_writedata           (debug_mem_slave_writedata),           //                          .writedata
-		.dummy_ci_port                       (dummy_ci_port)                        // custom_instruction_master.readra
+		.E_ci_multi_done                     (E_ci_multi_done),                     // custom_instruction_master.done
+		.E_ci_multi_clk_en                   (E_ci_multi_clk_en),                   //                          .clk_en
+		.E_ci_multi_start                    (E_ci_multi_start),                    //                          .start
+		.E_ci_result                         (E_ci_result),                         //                          .result
+		.D_ci_a                              (D_ci_a),                              //                          .a
+		.D_ci_b                              (D_ci_b),                              //                          .b
+		.D_ci_c                              (D_ci_c),                              //                          .c
+		.D_ci_n                              (D_ci_n),                              //                          .n
+		.D_ci_readra                         (D_ci_readra),                         //                          .readra
+		.D_ci_readrb                         (D_ci_readrb),                         //                          .readrb
+		.D_ci_writerc                        (D_ci_writerc),                        //                          .writerc
+		.E_ci_dataa                          (E_ci_dataa),                          //                          .dataa
+		.E_ci_datab                          (E_ci_datab),                          //                          .datab
+		.E_ci_multi_clock                    (E_ci_multi_clock),                    //                          .clk
+		.E_ci_multi_reset                    (E_ci_multi_reset),                    //                          .reset
+		.E_ci_multi_reset_req                (E_ci_multi_reset_req),                //                          .reset_req
+		.W_ci_estatus                        (W_ci_estatus),                        //                          .estatus
+		.W_ci_ipending                       (W_ci_ipending)                        //                          .ipending
 	);
 
 endmodule

+ 295 - 203
nios2_uc/synthesis/submodules/nios2_uc_nios2_cpu.v

@@ -2833,6 +2833,8 @@ endmodule
 
 module nios2_uc_nios2_cpu (
                             // inputs:
+                             E_ci_multi_done,
+                             E_ci_result,
                              clk,
                              d_readdata,
                              d_waitrequest,
@@ -2849,6 +2851,23 @@ module nios2_uc_nios2_cpu (
                              reset_req,
 
                             // outputs:
+                             D_ci_a,
+                             D_ci_b,
+                             D_ci_c,
+                             D_ci_n,
+                             D_ci_readra,
+                             D_ci_readrb,
+                             D_ci_writerc,
+                             E_ci_dataa,
+                             E_ci_datab,
+                             E_ci_multi_clk_en,
+                             E_ci_multi_clock,
+                             E_ci_multi_reset,
+                             E_ci_multi_reset_req,
+                             E_ci_multi_start,
+                             W_ci_estatus,
+                             W_ci_ipending,
+                             W_ci_status,
                              d_address,
                              d_byteenable,
                              d_read,
@@ -2858,12 +2877,28 @@ module nios2_uc_nios2_cpu (
                              debug_mem_slave_readdata,
                              debug_mem_slave_waitrequest,
                              debug_reset_request,
-                             dummy_ci_port,
                              i_address,
                              i_read
                           )
 ;
 
+  output  [  4: 0] D_ci_a;
+  output  [  4: 0] D_ci_b;
+  output  [  4: 0] D_ci_c;
+  output  [  7: 0] D_ci_n;
+  output           D_ci_readra;
+  output           D_ci_readrb;
+  output           D_ci_writerc;
+  output  [ 31: 0] E_ci_dataa;
+  output  [ 31: 0] E_ci_datab;
+  output           E_ci_multi_clk_en;
+  output           E_ci_multi_clock;
+  output           E_ci_multi_reset;
+  output           E_ci_multi_reset_req;
+  output           E_ci_multi_start;
+  output           W_ci_estatus;
+  output  [ 31: 0] W_ci_ipending;
+  output           W_ci_status;
   output  [ 19: 0] d_address;
   output  [  3: 0] d_byteenable;
   output           d_read;
@@ -2873,9 +2908,10 @@ module nios2_uc_nios2_cpu (
   output  [ 31: 0] debug_mem_slave_readdata;
   output           debug_mem_slave_waitrequest;
   output           debug_reset_request;
-  output           dummy_ci_port;
   output  [ 19: 0] i_address;
   output           i_read;
+  input            E_ci_multi_done;
+  input   [ 31: 0] E_ci_result;
   input            clk;
   input   [ 31: 0] d_readdata;
   input            d_waitrequest;
@@ -2893,6 +2929,13 @@ module nios2_uc_nios2_cpu (
 
 
 reg              A_valid_from_M /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */;
+wire    [  4: 0] D_ci_a;
+wire    [  4: 0] D_ci_b;
+wire    [  4: 0] D_ci_c;
+wire    [  7: 0] D_ci_n;
+wire             D_ci_readra;
+wire             D_ci_readrb;
+wire             D_ci_writerc;
 wire    [  1: 0] D_compare_op;
 wire             D_ctrl_alu_force_and;
 wire             D_ctrl_alu_force_xor;
@@ -2942,7 +2985,7 @@ wire             D_ctrl_uncond_cti_non_br;
 wire             D_ctrl_unsigned_lo_imm16;
 wire             D_ctrl_wrctl_inst;
 wire    [  4: 0] D_dst_regnum;
-wire    [ 55: 0] D_inst;
+wire    [271: 0] D_inst;
 wire             D_is_opx_inst;
 reg     [ 31: 0] D_iw /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */;
 wire    [  4: 0] D_iw_a;
@@ -3026,6 +3069,7 @@ wire             D_op_mulxss;
 wire             D_op_mulxsu;
 wire             D_op_mulxuu;
 wire             D_op_nextpc;
+wire             D_op_nios_custom_instr_floating_point_0;
 wire             D_op_nor;
 wire             D_op_op_rsv02;
 wire             D_op_op_rsv09;
@@ -3093,15 +3137,21 @@ wire             D_op_xor;
 wire             D_op_xorhi;
 wire             D_op_xori;
 reg              D_valid;
-wire    [ 71: 0] D_vinst;
+wire    [271: 0] D_vinst;
 wire             D_wr_dst_reg;
 wire    [ 31: 0] E_alu_result;
 reg              E_alu_sub;
 wire    [ 32: 0] E_arith_result;
 wire    [ 31: 0] E_arith_src1;
 wire    [ 31: 0] E_arith_src2;
+wire    [ 31: 0] E_ci_dataa;
+wire    [ 31: 0] E_ci_datab;
+reg              E_ci_multi_clk_en;
+wire             E_ci_multi_clock;
+wire             E_ci_multi_reset;
+wire             E_ci_multi_reset_req;
 wire             E_ci_multi_stall;
-wire    [ 31: 0] E_ci_result;
+reg              E_ci_multi_start;
 wire             E_cmp_result;
 wire    [ 31: 0] E_control_rd_data;
 wire             E_eq;
@@ -3131,7 +3181,7 @@ wire             E_st_stall;
 wire             E_stall;
 wire             E_valid;
 reg              E_valid_from_R;
-wire    [ 71: 0] E_vinst;
+wire    [271: 0] E_vinst;
 wire             E_wrctl_bstatus;
 wire             E_wrctl_estatus;
 wire             E_wrctl_ienable;
@@ -3154,7 +3204,7 @@ wire    [  5: 0] F_av_iw_opx;
 wire             F_av_mem16;
 wire             F_av_mem32;
 wire             F_av_mem8;
-wire    [ 55: 0] F_inst;
+wire    [271: 0] F_inst;
 wire             F_is_opx_inst;
 wire    [ 31: 0] F_iw;
 wire    [  4: 0] F_iw_a;
@@ -3235,6 +3285,7 @@ wire             F_op_mulxss;
 wire             F_op_mulxsu;
 wire             F_op_mulxuu;
 wire             F_op_nextpc;
+wire             F_op_nios_custom_instr_floating_point_0;
 wire             F_op_nor;
 wire             F_op_op_rsv02;
 wire             F_op_op_rsv09;
@@ -3311,7 +3362,7 @@ wire    [ 19: 0] F_pcb;
 wire    [ 19: 0] F_pcb_nxt;
 wire    [ 19: 0] F_pcb_plus_four;
 wire             F_valid;
-wire    [ 71: 0] F_vinst;
+wire    [271: 0] F_vinst;
 reg     [  1: 0] R_compare_op;
 reg              R_ctrl_alu_force_and;
 wire             R_ctrl_alu_force_and_nxt;
@@ -3423,7 +3474,7 @@ wire    [  7: 0] R_stb_data;
 wire    [ 15: 0] R_sth_data;
 wire    [ 31: 0] R_stw_data;
 reg              R_valid;
-wire    [ 71: 0] R_vinst;
+wire    [271: 0] R_vinst;
 reg              R_wr_dst_reg;
 reg              W1_rf_ecc_recoverable_valid;
 reg     [ 31: 0] W_alu_result;
@@ -3432,6 +3483,9 @@ reg              W_bstatus_reg;
 wire             W_bstatus_reg_inst_nxt;
 wire             W_bstatus_reg_nxt;
 reg     [ 31: 0] W_cdsr_reg;
+wire             W_ci_estatus;
+wire    [ 31: 0] W_ci_ipending;
+wire             W_ci_status;
 reg              W_cmp_result;
 reg     [ 31: 0] W_control_rd_data;
 wire    [ 31: 0] W_cpuid_reg;
@@ -3456,7 +3510,7 @@ wire             W_status_reg_pie_nxt;
 reg              W_up_ex_mon_state;
 reg              W_valid /* synthesis ALTERA_IP_DEBUG_VISIBLE = 1 */;
 wire             W_valid_from_M;
-wire    [ 71: 0] W_vinst;
+wire    [271: 0] W_vinst;
 wire    [ 31: 0] W_wr_data;
 wire    [ 31: 0] W_wr_data_non_zero;
 wire             av_fill_bit;
@@ -3496,7 +3550,6 @@ wire    [ 31: 0] debug_mem_slave_readdata;
 wire             debug_mem_slave_reset;
 wire             debug_mem_slave_waitrequest;
 wire             debug_reset_request;
-wire             dummy_ci_port;
 reg              hbreak_enabled;
 reg              hbreak_pending;
 wire             hbreak_pending_nxt;
@@ -3722,6 +3775,7 @@ reg              wait_for_one_post_bret_inst;
   assign F_op_intr = (F_iw_opx == 61) & F_is_opx_inst;
   assign F_op_crst = (F_iw_opx == 62) & F_is_opx_inst;
   assign F_op_opx_rsv63 = (F_iw_opx == 63) & F_is_opx_inst;
+  assign F_op_nios_custom_instr_floating_point_0 = F_op_custom & 1'b1;
   assign F_is_opx_inst = F_iw_op == 58;
   assign D_op_call = D_iw_op == 0;
   assign D_op_jmpi = D_iw_op == 1;
@@ -3850,12 +3904,25 @@ reg              wait_for_one_post_bret_inst;
   assign D_op_intr = (D_iw_opx == 61) & D_is_opx_inst;
   assign D_op_crst = (D_iw_opx == 62) & D_is_opx_inst;
   assign D_op_opx_rsv63 = (D_iw_opx == 63) & D_is_opx_inst;
+  assign D_op_nios_custom_instr_floating_point_0 = D_op_custom & 1'b1;
   assign D_is_opx_inst = D_iw_op == 58;
   assign R_en = 1'b1;
-  assign E_ci_result = 0;
+  assign E_ci_dataa = E_src1;
+  assign E_ci_datab = E_src2;
+  assign W_ci_ipending = W_ipending_reg;
+  assign W_ci_status = W_status_reg;
+  assign W_ci_estatus = W_estatus_reg;
+  assign D_ci_n = D_iw_custom_n;
+  assign D_ci_a = D_iw_a;
+  assign D_ci_b = D_iw_b;
+  assign D_ci_c = D_iw_c;
+  assign D_ci_readra = D_iw_custom_readra;
+  assign D_ci_readrb = D_iw_custom_readrb;
+  assign D_ci_writerc = D_iw_custom_writerc;
+  assign E_ci_multi_clock = clk;
+  assign E_ci_multi_reset = ~reset_n;
+  assign E_ci_multi_reset_req = reset_req;
   //custom_instruction_master, which is an e_custom_instruction_master
-  assign dummy_ci_port = 1'b0;
-  assign E_ci_multi_stall = 1'b0;
   assign iactive = irq[31 : 0] & 32'b00000000000000000000000000000001;
   assign F_pc_sel_nxt = (R_ctrl_exception | W_rf_ecc_unrecoverable_valid) ? 2'b00 :
     R_ctrl_break                              ? 2'b01 :
@@ -4156,6 +4223,29 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
 
   assign E_valid = E_valid_from_R & ~E_rf_ecc_valid_any;
   assign E_stall = (E_shift_rot_stall | E_ld_stall | E_st_stall | E_ci_multi_stall) & ~(E_rf_ecc_valid_any|W_rf_ecc_valid_any|W1_rf_ecc_recoverable_valid);
+  always @(posedge clk or negedge reset_n)
+    begin
+      if (reset_n == 0)
+          E_ci_multi_start <= 0;
+      else 
+        E_ci_multi_start <= E_ci_multi_start ? 1'b0 : 
+                (R_ctrl_custom_multi & R_valid);
+
+    end
+
+
+  always @(posedge clk or negedge reset_n)
+    begin
+      if (reset_n == 0)
+          E_ci_multi_clk_en <= 0;
+      else 
+        E_ci_multi_clk_en <= E_ci_multi_clk_en ? ~E_ci_multi_done : 
+                (R_ctrl_custom_multi & R_valid);
+
+    end
+
+
+  assign E_ci_multi_stall = R_ctrl_custom_multi & E_valid & ~E_ci_multi_done;
   assign E_arith_src1 = { E_src1[31] ^ E_invert_arith_src_msb, 
     E_src1[30 : 0]};
 
@@ -4577,7 +4667,7 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
   //debug_mem_slave, which is an e_avalon_slave
   assign debug_mem_slave_clk = clk;
   assign debug_mem_slave_reset = ~reset_n;
-  assign D_ctrl_custom = 1'b0;
+  assign D_ctrl_custom = D_op_nios_custom_instr_floating_point_0;
   assign R_ctrl_custom_nxt = D_ctrl_custom;
   always @(posedge clk or negedge reset_n)
     begin
@@ -4588,7 +4678,7 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
     end
 
 
-  assign D_ctrl_custom_multi = 1'b0;
+  assign D_ctrl_custom_multi = D_op_nios_custom_instr_floating_point_0;
   assign R_ctrl_custom_multi_nxt = D_ctrl_custom_multi;
   always @(posedge clk or negedge reset_n)
     begin
@@ -5226,7 +5316,7 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
     end
 
 
-  assign D_ctrl_b_is_dst = D_op_addi|
+  assign D_ctrl_b_is_dst = (D_op_addi|
     D_op_andhi|
     D_op_orhi|
     D_op_xorhi|
@@ -5254,7 +5344,7 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
     D_op_initd|
     D_op_initda|
     D_op_flushd|
-    D_op_flushda;
+    D_op_flushda) & ~D_op_custom;
 
   assign R_ctrl_b_is_dst_nxt = D_ctrl_b_is_dst;
   always @(posedge clk or negedge reset_n)
@@ -5266,7 +5356,7 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
     end
 
 
-  assign D_ctrl_ignore_dst = D_op_br|
+  assign D_ctrl_ignore_dst = (D_op_br|
     D_op_bge|
     D_op_blt|
     D_op_bne|
@@ -5279,7 +5369,7 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
     D_op_stbio|
     D_op_sthio|
     D_op_stwio|
-    D_op_jmpi;
+    D_op_jmpi) | (D_op_custom & ~D_iw_custom_writerc);
 
   assign R_ctrl_ignore_dst_nxt = D_ctrl_ignore_dst;
   always @(posedge clk or negedge reset_n)
@@ -5466,189 +5556,191 @@ defparam nios2_uc_nios2_cpu_register_bank_b.lpm_file = "nios2_uc_nios2_cpu_rf_ra
 
 //synthesis translate_off
 //////////////// SIMULATION-ONLY CONTENTS
-  assign F_inst = (F_op_call)? 56'h20202063616c6c :
-    (F_op_jmpi)? 56'h2020206a6d7069 :
-    (F_op_ldbu)? 56'h2020206c646275 :
-    (F_op_addi)? 56'h20202061646469 :
-    (F_op_stb)? 56'h20202020737462 :
-    (F_op_br)? 56'h20202020206272 :
-    (F_op_ldb)? 56'h202020206c6462 :
-    (F_op_cmpgei)? 56'h20636d70676569 :
-    (F_op_ldhu)? 56'h2020206c646875 :
-    (F_op_andi)? 56'h202020616e6469 :
-    (F_op_sth)? 56'h20202020737468 :
-    (F_op_bge)? 56'h20202020626765 :
-    (F_op_ldh)? 56'h202020206c6468 :
-    (F_op_cmplti)? 56'h20636d706c7469 :
-    (F_op_initda)? 56'h20696e69746461 :
-    (F_op_ori)? 56'h202020206f7269 :
-    (F_op_stw)? 56'h20202020737477 :
-    (F_op_blt)? 56'h20202020626c74 :
-    (F_op_ldw)? 56'h202020206c6477 :
-    (F_op_cmpnei)? 56'h20636d706e6569 :
-    (F_op_flushda)? 56'h666c7573686461 :
-    (F_op_xori)? 56'h202020786f7269 :
-    (F_op_bne)? 56'h20202020626e65 :
-    (F_op_cmpeqi)? 56'h20636d70657169 :
-    (F_op_ldbuio)? 56'h206c646275696f :
-    (F_op_muli)? 56'h2020206d756c69 :
-    (F_op_stbio)? 56'h2020737462696f :
-    (F_op_beq)? 56'h20202020626571 :
-    (F_op_ldbio)? 56'h20206c6462696f :
-    (F_op_cmpgeui)? 56'h636d7067657569 :
-    (F_op_ldhuio)? 56'h206c646875696f :
-    (F_op_andhi)? 56'h2020616e646869 :
-    (F_op_sthio)? 56'h2020737468696f :
-    (F_op_bgeu)? 56'h20202062676575 :
-    (F_op_ldhio)? 56'h20206c6468696f :
-    (F_op_cmpltui)? 56'h636d706c747569 :
-    (F_op_custom)? 56'h20637573746f6d :
-    (F_op_initd)? 56'h2020696e697464 :
-    (F_op_orhi)? 56'h2020206f726869 :
-    (F_op_stwio)? 56'h2020737477696f :
-    (F_op_bltu)? 56'h202020626c7475 :
-    (F_op_ldwio)? 56'h20206c6477696f :
-    (F_op_flushd)? 56'h20666c75736864 :
-    (F_op_xorhi)? 56'h2020786f726869 :
-    (F_op_eret)? 56'h20202065726574 :
-    (F_op_roli)? 56'h202020726f6c69 :
-    (F_op_rol)? 56'h20202020726f6c :
-    (F_op_flushp)? 56'h20666c75736870 :
-    (F_op_ret)? 56'h20202020726574 :
-    (F_op_nor)? 56'h202020206e6f72 :
-    (F_op_mulxuu)? 56'h206d756c787575 :
-    (F_op_cmpge)? 56'h2020636d706765 :
-    (F_op_bret)? 56'h20202062726574 :
-    (F_op_ror)? 56'h20202020726f72 :
-    (F_op_flushi)? 56'h20666c75736869 :
-    (F_op_jmp)? 56'h202020206a6d70 :
-    (F_op_and)? 56'h20202020616e64 :
-    (F_op_cmplt)? 56'h2020636d706c74 :
-    (F_op_slli)? 56'h202020736c6c69 :
-    (F_op_sll)? 56'h20202020736c6c :
-    (F_op_or)? 56'h20202020206f72 :
-    (F_op_mulxsu)? 56'h206d756c787375 :
-    (F_op_cmpne)? 56'h2020636d706e65 :
-    (F_op_srli)? 56'h20202073726c69 :
-    (F_op_srl)? 56'h2020202073726c :
-    (F_op_nextpc)? 56'h206e6578747063 :
-    (F_op_callr)? 56'h202063616c6c72 :
-    (F_op_xor)? 56'h20202020786f72 :
-    (F_op_mulxss)? 56'h206d756c787373 :
-    (F_op_cmpeq)? 56'h2020636d706571 :
-    (F_op_divu)? 56'h20202064697675 :
-    (F_op_div)? 56'h20202020646976 :
-    (F_op_rdctl)? 56'h2020726463746c :
-    (F_op_mul)? 56'h202020206d756c :
-    (F_op_cmpgeu)? 56'h20636d70676575 :
-    (F_op_initi)? 56'h2020696e697469 :
-    (F_op_trap)? 56'h20202074726170 :
-    (F_op_wrctl)? 56'h2020777263746c :
-    (F_op_cmpltu)? 56'h20636d706c7475 :
-    (F_op_add)? 56'h20202020616464 :
-    (F_op_break)? 56'h2020627265616b :
-    (F_op_hbreak)? 56'h2068627265616b :
-    (F_op_sync)? 56'h20202073796e63 :
-    (F_op_sub)? 56'h20202020737562 :
-    (F_op_srai)? 56'h20202073726169 :
-    (F_op_sra)? 56'h20202020737261 :
-    (F_op_intr)? 56'h202020696e7472 :
-    56'h20202020424144;
-
-  assign D_inst = (D_op_call)? 56'h20202063616c6c :
-    (D_op_jmpi)? 56'h2020206a6d7069 :
-    (D_op_ldbu)? 56'h2020206c646275 :
-    (D_op_addi)? 56'h20202061646469 :
-    (D_op_stb)? 56'h20202020737462 :
-    (D_op_br)? 56'h20202020206272 :
-    (D_op_ldb)? 56'h202020206c6462 :
-    (D_op_cmpgei)? 56'h20636d70676569 :
-    (D_op_ldhu)? 56'h2020206c646875 :
-    (D_op_andi)? 56'h202020616e6469 :
-    (D_op_sth)? 56'h20202020737468 :
-    (D_op_bge)? 56'h20202020626765 :
-    (D_op_ldh)? 56'h202020206c6468 :
-    (D_op_cmplti)? 56'h20636d706c7469 :
-    (D_op_initda)? 56'h20696e69746461 :
-    (D_op_ori)? 56'h202020206f7269 :
-    (D_op_stw)? 56'h20202020737477 :
-    (D_op_blt)? 56'h20202020626c74 :
-    (D_op_ldw)? 56'h202020206c6477 :
-    (D_op_cmpnei)? 56'h20636d706e6569 :
-    (D_op_flushda)? 56'h666c7573686461 :
-    (D_op_xori)? 56'h202020786f7269 :
-    (D_op_bne)? 56'h20202020626e65 :
-    (D_op_cmpeqi)? 56'h20636d70657169 :
-    (D_op_ldbuio)? 56'h206c646275696f :
-    (D_op_muli)? 56'h2020206d756c69 :
-    (D_op_stbio)? 56'h2020737462696f :
-    (D_op_beq)? 56'h20202020626571 :
-    (D_op_ldbio)? 56'h20206c6462696f :
-    (D_op_cmpgeui)? 56'h636d7067657569 :
-    (D_op_ldhuio)? 56'h206c646875696f :
-    (D_op_andhi)? 56'h2020616e646869 :
-    (D_op_sthio)? 56'h2020737468696f :
-    (D_op_bgeu)? 56'h20202062676575 :
-    (D_op_ldhio)? 56'h20206c6468696f :
-    (D_op_cmpltui)? 56'h636d706c747569 :
-    (D_op_custom)? 56'h20637573746f6d :
-    (D_op_initd)? 56'h2020696e697464 :
-    (D_op_orhi)? 56'h2020206f726869 :
-    (D_op_stwio)? 56'h2020737477696f :
-    (D_op_bltu)? 56'h202020626c7475 :
-    (D_op_ldwio)? 56'h20206c6477696f :
-    (D_op_flushd)? 56'h20666c75736864 :
-    (D_op_xorhi)? 56'h2020786f726869 :
-    (D_op_eret)? 56'h20202065726574 :
-    (D_op_roli)? 56'h202020726f6c69 :
-    (D_op_rol)? 56'h20202020726f6c :
-    (D_op_flushp)? 56'h20666c75736870 :
-    (D_op_ret)? 56'h20202020726574 :
-    (D_op_nor)? 56'h202020206e6f72 :
-    (D_op_mulxuu)? 56'h206d756c787575 :
-    (D_op_cmpge)? 56'h2020636d706765 :
-    (D_op_bret)? 56'h20202062726574 :
-    (D_op_ror)? 56'h20202020726f72 :
-    (D_op_flushi)? 56'h20666c75736869 :
-    (D_op_jmp)? 56'h202020206a6d70 :
-    (D_op_and)? 56'h20202020616e64 :
-    (D_op_cmplt)? 56'h2020636d706c74 :
-    (D_op_slli)? 56'h202020736c6c69 :
-    (D_op_sll)? 56'h20202020736c6c :
-    (D_op_or)? 56'h20202020206f72 :
-    (D_op_mulxsu)? 56'h206d756c787375 :
-    (D_op_cmpne)? 56'h2020636d706e65 :
-    (D_op_srli)? 56'h20202073726c69 :
-    (D_op_srl)? 56'h2020202073726c :
-    (D_op_nextpc)? 56'h206e6578747063 :
-    (D_op_callr)? 56'h202063616c6c72 :
-    (D_op_xor)? 56'h20202020786f72 :
-    (D_op_mulxss)? 56'h206d756c787373 :
-    (D_op_cmpeq)? 56'h2020636d706571 :
-    (D_op_divu)? 56'h20202064697675 :
-    (D_op_div)? 56'h20202020646976 :
-    (D_op_rdctl)? 56'h2020726463746c :
-    (D_op_mul)? 56'h202020206d756c :
-    (D_op_cmpgeu)? 56'h20636d70676575 :
-    (D_op_initi)? 56'h2020696e697469 :
-    (D_op_trap)? 56'h20202074726170 :
-    (D_op_wrctl)? 56'h2020777263746c :
-    (D_op_cmpltu)? 56'h20636d706c7475 :
-    (D_op_add)? 56'h20202020616464 :
-    (D_op_break)? 56'h2020627265616b :
-    (D_op_hbreak)? 56'h2068627265616b :
-    (D_op_sync)? 56'h20202073796e63 :
-    (D_op_sub)? 56'h20202020737562 :
-    (D_op_srai)? 56'h20202073726169 :
-    (D_op_sra)? 56'h20202020737261 :
-    (D_op_intr)? 56'h202020696e7472 :
-    56'h20202020424144;
-
-  assign F_vinst = F_valid ? F_inst : {9{8'h2d}};
-  assign D_vinst = D_valid ? D_inst : {9{8'h2d}};
-  assign R_vinst = R_valid ? D_inst : {9{8'h2d}};
-  assign E_vinst = E_valid ? D_inst : {9{8'h2d}};
-  assign W_vinst = W_valid ? D_inst : {9{8'h2d}};
+  assign F_inst = (F_op_call)? 272'h20202020202020202020202020202020202020202020202020202020202063616c6c :
+    (F_op_jmpi)? 272'h2020202020202020202020202020202020202020202020202020202020206a6d7069 :
+    (F_op_ldbu)? 272'h2020202020202020202020202020202020202020202020202020202020206c646275 :
+    (F_op_addi)? 272'h20202020202020202020202020202020202020202020202020202020202061646469 :
+    (F_op_stb)? 272'h20202020202020202020202020202020202020202020202020202020202020737462 :
+    (F_op_br)? 272'h20202020202020202020202020202020202020202020202020202020202020206272 :
+    (F_op_ldb)? 272'h202020202020202020202020202020202020202020202020202020202020206c6462 :
+    (F_op_cmpgei)? 272'h20202020202020202020202020202020202020202020202020202020636d70676569 :
+    (F_op_ldhu)? 272'h2020202020202020202020202020202020202020202020202020202020206c646875 :
+    (F_op_andi)? 272'h202020202020202020202020202020202020202020202020202020202020616e6469 :
+    (F_op_sth)? 272'h20202020202020202020202020202020202020202020202020202020202020737468 :
+    (F_op_bge)? 272'h20202020202020202020202020202020202020202020202020202020202020626765 :
+    (F_op_ldh)? 272'h202020202020202020202020202020202020202020202020202020202020206c6468 :
+    (F_op_cmplti)? 272'h20202020202020202020202020202020202020202020202020202020636d706c7469 :
+    (F_op_initda)? 272'h20202020202020202020202020202020202020202020202020202020696e69746461 :
+    (F_op_ori)? 272'h202020202020202020202020202020202020202020202020202020202020206f7269 :
+    (F_op_stw)? 272'h20202020202020202020202020202020202020202020202020202020202020737477 :
+    (F_op_blt)? 272'h20202020202020202020202020202020202020202020202020202020202020626c74 :
+    (F_op_ldw)? 272'h202020202020202020202020202020202020202020202020202020202020206c6477 :
+    (F_op_cmpnei)? 272'h20202020202020202020202020202020202020202020202020202020636d706e6569 :
+    (F_op_flushda)? 272'h202020202020202020202020202020202020202020202020202020666c7573686461 :
+    (F_op_xori)? 272'h202020202020202020202020202020202020202020202020202020202020786f7269 :
+    (F_op_bne)? 272'h20202020202020202020202020202020202020202020202020202020202020626e65 :
+    (F_op_cmpeqi)? 272'h20202020202020202020202020202020202020202020202020202020636d70657169 :
+    (F_op_ldbuio)? 272'h202020202020202020202020202020202020202020202020202020206c646275696f :
+    (F_op_muli)? 272'h2020202020202020202020202020202020202020202020202020202020206d756c69 :
+    (F_op_stbio)? 272'h2020202020202020202020202020202020202020202020202020202020737462696f :
+    (F_op_beq)? 272'h20202020202020202020202020202020202020202020202020202020202020626571 :
+    (F_op_ldbio)? 272'h20202020202020202020202020202020202020202020202020202020206c6462696f :
+    (F_op_cmpgeui)? 272'h202020202020202020202020202020202020202020202020202020636d7067657569 :
+    (F_op_ldhuio)? 272'h202020202020202020202020202020202020202020202020202020206c646875696f :
+    (F_op_andhi)? 272'h2020202020202020202020202020202020202020202020202020202020616e646869 :
+    (F_op_sthio)? 272'h2020202020202020202020202020202020202020202020202020202020737468696f :
+    (F_op_bgeu)? 272'h20202020202020202020202020202020202020202020202020202020202062676575 :
+    (F_op_ldhio)? 272'h20202020202020202020202020202020202020202020202020202020206c6468696f :
+    (F_op_cmpltui)? 272'h202020202020202020202020202020202020202020202020202020636d706c747569 :
+    (F_op_custom)? 272'h20202020202020202020202020202020202020202020202020202020637573746f6d :
+    (F_op_initd)? 272'h2020202020202020202020202020202020202020202020202020202020696e697464 :
+    (F_op_orhi)? 272'h2020202020202020202020202020202020202020202020202020202020206f726869 :
+    (F_op_stwio)? 272'h2020202020202020202020202020202020202020202020202020202020737477696f :
+    (F_op_bltu)? 272'h202020202020202020202020202020202020202020202020202020202020626c7475 :
+    (F_op_ldwio)? 272'h20202020202020202020202020202020202020202020202020202020206c6477696f :
+    (F_op_flushd)? 272'h20202020202020202020202020202020202020202020202020202020666c75736864 :
+    (F_op_xorhi)? 272'h2020202020202020202020202020202020202020202020202020202020786f726869 :
+    (F_op_eret)? 272'h20202020202020202020202020202020202020202020202020202020202065726574 :
+    (F_op_roli)? 272'h202020202020202020202020202020202020202020202020202020202020726f6c69 :
+    (F_op_rol)? 272'h20202020202020202020202020202020202020202020202020202020202020726f6c :
+    (F_op_flushp)? 272'h20202020202020202020202020202020202020202020202020202020666c75736870 :
+    (F_op_ret)? 272'h20202020202020202020202020202020202020202020202020202020202020726574 :
+    (F_op_nor)? 272'h202020202020202020202020202020202020202020202020202020202020206e6f72 :
+    (F_op_mulxuu)? 272'h202020202020202020202020202020202020202020202020202020206d756c787575 :
+    (F_op_cmpge)? 272'h2020202020202020202020202020202020202020202020202020202020636d706765 :
+    (F_op_bret)? 272'h20202020202020202020202020202020202020202020202020202020202062726574 :
+    (F_op_ror)? 272'h20202020202020202020202020202020202020202020202020202020202020726f72 :
+    (F_op_flushi)? 272'h20202020202020202020202020202020202020202020202020202020666c75736869 :
+    (F_op_jmp)? 272'h202020202020202020202020202020202020202020202020202020202020206a6d70 :
+    (F_op_and)? 272'h20202020202020202020202020202020202020202020202020202020202020616e64 :
+    (F_op_cmplt)? 272'h2020202020202020202020202020202020202020202020202020202020636d706c74 :
+    (F_op_slli)? 272'h202020202020202020202020202020202020202020202020202020202020736c6c69 :
+    (F_op_sll)? 272'h20202020202020202020202020202020202020202020202020202020202020736c6c :
+    (F_op_or)? 272'h20202020202020202020202020202020202020202020202020202020202020206f72 :
+    (F_op_mulxsu)? 272'h202020202020202020202020202020202020202020202020202020206d756c787375 :
+    (F_op_cmpne)? 272'h2020202020202020202020202020202020202020202020202020202020636d706e65 :
+    (F_op_srli)? 272'h20202020202020202020202020202020202020202020202020202020202073726c69 :
+    (F_op_srl)? 272'h2020202020202020202020202020202020202020202020202020202020202073726c :
+    (F_op_nextpc)? 272'h202020202020202020202020202020202020202020202020202020206e6578747063 :
+    (F_op_callr)? 272'h202020202020202020202020202020202020202020202020202020202063616c6c72 :
+    (F_op_xor)? 272'h20202020202020202020202020202020202020202020202020202020202020786f72 :
+    (F_op_mulxss)? 272'h202020202020202020202020202020202020202020202020202020206d756c787373 :
+    (F_op_cmpeq)? 272'h2020202020202020202020202020202020202020202020202020202020636d706571 :
+    (F_op_divu)? 272'h20202020202020202020202020202020202020202020202020202020202064697675 :
+    (F_op_div)? 272'h20202020202020202020202020202020202020202020202020202020202020646976 :
+    (F_op_rdctl)? 272'h2020202020202020202020202020202020202020202020202020202020726463746c :
+    (F_op_mul)? 272'h202020202020202020202020202020202020202020202020202020202020206d756c :
+    (F_op_cmpgeu)? 272'h20202020202020202020202020202020202020202020202020202020636d70676575 :
+    (F_op_initi)? 272'h2020202020202020202020202020202020202020202020202020202020696e697469 :
+    (F_op_trap)? 272'h20202020202020202020202020202020202020202020202020202020202074726170 :
+    (F_op_wrctl)? 272'h2020202020202020202020202020202020202020202020202020202020777263746c :
+    (F_op_cmpltu)? 272'h20202020202020202020202020202020202020202020202020202020636d706c7475 :
+    (F_op_add)? 272'h20202020202020202020202020202020202020202020202020202020202020616464 :
+    (F_op_break)? 272'h2020202020202020202020202020202020202020202020202020202020627265616b :
+    (F_op_hbreak)? 272'h2020202020202020202020202020202020202020202020202020202068627265616b :
+    (F_op_sync)? 272'h20202020202020202020202020202020202020202020202020202020202073796e63 :
+    (F_op_sub)? 272'h20202020202020202020202020202020202020202020202020202020202020737562 :
+    (F_op_srai)? 272'h20202020202020202020202020202020202020202020202020202020202073726169 :
+    (F_op_sra)? 272'h20202020202020202020202020202020202020202020202020202020202020737261 :
+    (F_op_intr)? 272'h202020202020202020202020202020202020202020202020202020202020696e7472 :
+    (F_op_nios_custom_instr_floating_point_0)? 272'h6e696f735f637573746f6d5f696e7374725f666c6f6174696e675f706f696e745f30 :
+    272'h20202020202020202020202020202020202020202020202020202020202020424144;
+
+  assign D_inst = (D_op_call)? 272'h20202020202020202020202020202020202020202020202020202020202063616c6c :
+    (D_op_jmpi)? 272'h2020202020202020202020202020202020202020202020202020202020206a6d7069 :
+    (D_op_ldbu)? 272'h2020202020202020202020202020202020202020202020202020202020206c646275 :
+    (D_op_addi)? 272'h20202020202020202020202020202020202020202020202020202020202061646469 :
+    (D_op_stb)? 272'h20202020202020202020202020202020202020202020202020202020202020737462 :
+    (D_op_br)? 272'h20202020202020202020202020202020202020202020202020202020202020206272 :
+    (D_op_ldb)? 272'h202020202020202020202020202020202020202020202020202020202020206c6462 :
+    (D_op_cmpgei)? 272'h20202020202020202020202020202020202020202020202020202020636d70676569 :
+    (D_op_ldhu)? 272'h2020202020202020202020202020202020202020202020202020202020206c646875 :
+    (D_op_andi)? 272'h202020202020202020202020202020202020202020202020202020202020616e6469 :
+    (D_op_sth)? 272'h20202020202020202020202020202020202020202020202020202020202020737468 :
+    (D_op_bge)? 272'h20202020202020202020202020202020202020202020202020202020202020626765 :
+    (D_op_ldh)? 272'h202020202020202020202020202020202020202020202020202020202020206c6468 :
+    (D_op_cmplti)? 272'h20202020202020202020202020202020202020202020202020202020636d706c7469 :
+    (D_op_initda)? 272'h20202020202020202020202020202020202020202020202020202020696e69746461 :
+    (D_op_ori)? 272'h202020202020202020202020202020202020202020202020202020202020206f7269 :
+    (D_op_stw)? 272'h20202020202020202020202020202020202020202020202020202020202020737477 :
+    (D_op_blt)? 272'h20202020202020202020202020202020202020202020202020202020202020626c74 :
+    (D_op_ldw)? 272'h202020202020202020202020202020202020202020202020202020202020206c6477 :
+    (D_op_cmpnei)? 272'h20202020202020202020202020202020202020202020202020202020636d706e6569 :
+    (D_op_flushda)? 272'h202020202020202020202020202020202020202020202020202020666c7573686461 :
+    (D_op_xori)? 272'h202020202020202020202020202020202020202020202020202020202020786f7269 :
+    (D_op_bne)? 272'h20202020202020202020202020202020202020202020202020202020202020626e65 :
+    (D_op_cmpeqi)? 272'h20202020202020202020202020202020202020202020202020202020636d70657169 :
+    (D_op_ldbuio)? 272'h202020202020202020202020202020202020202020202020202020206c646275696f :
+    (D_op_muli)? 272'h2020202020202020202020202020202020202020202020202020202020206d756c69 :
+    (D_op_stbio)? 272'h2020202020202020202020202020202020202020202020202020202020737462696f :
+    (D_op_beq)? 272'h20202020202020202020202020202020202020202020202020202020202020626571 :
+    (D_op_ldbio)? 272'h20202020202020202020202020202020202020202020202020202020206c6462696f :
+    (D_op_cmpgeui)? 272'h202020202020202020202020202020202020202020202020202020636d7067657569 :
+    (D_op_ldhuio)? 272'h202020202020202020202020202020202020202020202020202020206c646875696f :
+    (D_op_andhi)? 272'h2020202020202020202020202020202020202020202020202020202020616e646869 :
+    (D_op_sthio)? 272'h2020202020202020202020202020202020202020202020202020202020737468696f :
+    (D_op_bgeu)? 272'h20202020202020202020202020202020202020202020202020202020202062676575 :
+    (D_op_ldhio)? 272'h20202020202020202020202020202020202020202020202020202020206c6468696f :
+    (D_op_cmpltui)? 272'h202020202020202020202020202020202020202020202020202020636d706c747569 :
+    (D_op_custom)? 272'h20202020202020202020202020202020202020202020202020202020637573746f6d :
+    (D_op_initd)? 272'h2020202020202020202020202020202020202020202020202020202020696e697464 :
+    (D_op_orhi)? 272'h2020202020202020202020202020202020202020202020202020202020206f726869 :
+    (D_op_stwio)? 272'h2020202020202020202020202020202020202020202020202020202020737477696f :
+    (D_op_bltu)? 272'h202020202020202020202020202020202020202020202020202020202020626c7475 :
+    (D_op_ldwio)? 272'h20202020202020202020202020202020202020202020202020202020206c6477696f :
+    (D_op_flushd)? 272'h20202020202020202020202020202020202020202020202020202020666c75736864 :
+    (D_op_xorhi)? 272'h2020202020202020202020202020202020202020202020202020202020786f726869 :
+    (D_op_eret)? 272'h20202020202020202020202020202020202020202020202020202020202065726574 :
+    (D_op_roli)? 272'h202020202020202020202020202020202020202020202020202020202020726f6c69 :
+    (D_op_rol)? 272'h20202020202020202020202020202020202020202020202020202020202020726f6c :
+    (D_op_flushp)? 272'h20202020202020202020202020202020202020202020202020202020666c75736870 :
+    (D_op_ret)? 272'h20202020202020202020202020202020202020202020202020202020202020726574 :
+    (D_op_nor)? 272'h202020202020202020202020202020202020202020202020202020202020206e6f72 :
+    (D_op_mulxuu)? 272'h202020202020202020202020202020202020202020202020202020206d756c787575 :
+    (D_op_cmpge)? 272'h2020202020202020202020202020202020202020202020202020202020636d706765 :
+    (D_op_bret)? 272'h20202020202020202020202020202020202020202020202020202020202062726574 :
+    (D_op_ror)? 272'h20202020202020202020202020202020202020202020202020202020202020726f72 :
+    (D_op_flushi)? 272'h20202020202020202020202020202020202020202020202020202020666c75736869 :
+    (D_op_jmp)? 272'h202020202020202020202020202020202020202020202020202020202020206a6d70 :
+    (D_op_and)? 272'h20202020202020202020202020202020202020202020202020202020202020616e64 :
+    (D_op_cmplt)? 272'h2020202020202020202020202020202020202020202020202020202020636d706c74 :
+    (D_op_slli)? 272'h202020202020202020202020202020202020202020202020202020202020736c6c69 :
+    (D_op_sll)? 272'h20202020202020202020202020202020202020202020202020202020202020736c6c :
+    (D_op_or)? 272'h20202020202020202020202020202020202020202020202020202020202020206f72 :
+    (D_op_mulxsu)? 272'h202020202020202020202020202020202020202020202020202020206d756c787375 :
+    (D_op_cmpne)? 272'h2020202020202020202020202020202020202020202020202020202020636d706e65 :
+    (D_op_srli)? 272'h20202020202020202020202020202020202020202020202020202020202073726c69 :
+    (D_op_srl)? 272'h2020202020202020202020202020202020202020202020202020202020202073726c :
+    (D_op_nextpc)? 272'h202020202020202020202020202020202020202020202020202020206e6578747063 :
+    (D_op_callr)? 272'h202020202020202020202020202020202020202020202020202020202063616c6c72 :
+    (D_op_xor)? 272'h20202020202020202020202020202020202020202020202020202020202020786f72 :
+    (D_op_mulxss)? 272'h202020202020202020202020202020202020202020202020202020206d756c787373 :
+    (D_op_cmpeq)? 272'h2020202020202020202020202020202020202020202020202020202020636d706571 :
+    (D_op_divu)? 272'h20202020202020202020202020202020202020202020202020202020202064697675 :
+    (D_op_div)? 272'h20202020202020202020202020202020202020202020202020202020202020646976 :
+    (D_op_rdctl)? 272'h2020202020202020202020202020202020202020202020202020202020726463746c :
+    (D_op_mul)? 272'h202020202020202020202020202020202020202020202020202020202020206d756c :
+    (D_op_cmpgeu)? 272'h20202020202020202020202020202020202020202020202020202020636d70676575 :
+    (D_op_initi)? 272'h2020202020202020202020202020202020202020202020202020202020696e697469 :
+    (D_op_trap)? 272'h20202020202020202020202020202020202020202020202020202020202074726170 :
+    (D_op_wrctl)? 272'h2020202020202020202020202020202020202020202020202020202020777263746c :
+    (D_op_cmpltu)? 272'h20202020202020202020202020202020202020202020202020202020636d706c7475 :
+    (D_op_add)? 272'h20202020202020202020202020202020202020202020202020202020202020616464 :
+    (D_op_break)? 272'h2020202020202020202020202020202020202020202020202020202020627265616b :
+    (D_op_hbreak)? 272'h2020202020202020202020202020202020202020202020202020202068627265616b :
+    (D_op_sync)? 272'h20202020202020202020202020202020202020202020202020202020202073796e63 :
+    (D_op_sub)? 272'h20202020202020202020202020202020202020202020202020202020202020737562 :
+    (D_op_srai)? 272'h20202020202020202020202020202020202020202020202020202020202073726169 :
+    (D_op_sra)? 272'h20202020202020202020202020202020202020202020202020202020202020737261 :
+    (D_op_intr)? 272'h202020202020202020202020202020202020202020202020202020202020696e7472 :
+    (D_op_nios_custom_instr_floating_point_0)? 272'h6e696f735f637573746f6d5f696e7374725f666c6f6174696e675f706f696e745f30 :
+    272'h20202020202020202020202020202020202020202020202020202020202020424144;
+
+  assign F_vinst = F_valid ? F_inst : {34{8'h2d}};
+  assign D_vinst = D_valid ? D_inst : {34{8'h2d}};
+  assign R_vinst = R_valid ? D_inst : {34{8'h2d}};
+  assign E_vinst = E_valid ? D_inst : {34{8'h2d}};
+  assign W_vinst = W_valid ? D_inst : {34{8'h2d}};
 
 //////////////// END SIMULATION-ONLY CONTENTS
 

+ 3 - 1
nios2_uc/synthesis/submodules/nios2_uc_nios2_cpu_test_bench.v

@@ -66,7 +66,7 @@ module nios2_uc_nios2_cpu_test_bench (
   input   [  4: 0] R_dst_regnum;
   input            R_wr_dst_reg;
   input            W_valid;
-  input   [ 71: 0] W_vinst;
+  input   [271: 0] W_vinst;
   input   [ 31: 0] W_wr_data;
   input   [ 31: 0] av_ld_data_aligned_unfiltered;
   input            clk;
@@ -143,6 +143,7 @@ wire             D_op_mulxss;
 wire             D_op_mulxsu;
 wire             D_op_mulxuu;
 wire             D_op_nextpc;
+wire             D_op_nios_custom_instr_floating_point_0;
 wire             D_op_nor;
 wire             D_op_op_rsv02;
 wire             D_op_op_rsv09;
@@ -370,6 +371,7 @@ wire             test_has_ended;
   assign D_op_intr = (D_iw_opx == 61) & D_is_opx_inst;
   assign D_op_crst = (D_iw_opx == 62) & D_is_opx_inst;
   assign D_op_opx_rsv63 = (D_iw_opx == 63) & D_is_opx_inst;
+  assign D_op_nios_custom_instr_floating_point_0 = D_op_custom & 1'b1;
   assign D_is_opx_inst = D_iw_op == 58;
   assign test_has_ended = 1'b0;
 

+ 118 - 0
nios2_uc/synthesis/submodules/nios2_uc_nios2_custom_instruction_master_multi_xconnect.sv

@@ -0,0 +1,118 @@
+// (C) 2001-2018 Intel Corporation. All rights reserved.
+// Your use of Intel Corporation's design tools, logic functions and other 
+// software and tools, and its AMPP partner logic functions, and any output 
+// files from any of the foregoing (including device programming or simulation 
+// files), and any associated documentation or information are expressly subject 
+// to the terms and conditions of the Intel Program License Subscription 
+// Agreement, Intel FPGA IP License Agreement, or other applicable 
+// license agreement, including, without limitation, that your use is for the 
+// sole purpose of programming logic devices manufactured by Intel and sold by 
+// Intel or its authorized distributors.  Please refer to the applicable 
+// agreement for further details.
+
+
+// $Id: //acds/rel/18.1std/ip/merlin/altera_customins_xconnect/altera_customins_xconnect.sv.terp#1 $
+// $Revision: #1 $
+// $Date: 2018/07/18 $
+// $Author: psgswbuild $
+
+// -------------------------------------------------------
+// Custom Instruction Interconnect
+//
+// -------------------------------------------------------
+
+`timescale 1 ns / 1 ns
+
+
+module nios2_uc_nios2_custom_instruction_master_multi_xconnect
+(
+    // -------------------
+    // Custom instruction masters
+    // -------------------
+    output [31 : 0] ci_master0_dataa,
+    output [31 : 0] ci_master0_datab,
+    input  [31 : 0] ci_master0_result,
+    output [ 7 : 0] ci_master0_n,
+    output          ci_master0_readra,
+    output          ci_master0_readrb,
+    output          ci_master0_writerc,
+    output [ 4 : 0] ci_master0_a,
+    output [ 4 : 0] ci_master0_b,
+    output [ 4 : 0] ci_master0_c,
+    output [31 : 0] ci_master0_ipending,
+    output          ci_master0_estatus,
+    output          ci_master0_clk,   
+    output          ci_master0_clken,
+    output          ci_master0_reset, 
+    output          ci_master0_reset_req,
+    output          ci_master0_start,
+    input           ci_master0_done,
+
+
+    // -------------------
+    // Custom instruction slave
+    // -------------------
+    input           ci_slave_clk,   
+    input           ci_slave_clken,
+    input           ci_slave_reset, 
+    input           ci_slave_reset_req,
+    input           ci_slave_start,
+    output          ci_slave_done,
+    input  [31 : 0] ci_slave_dataa,
+    input  [31 : 0] ci_slave_datab,
+    output [31 : 0] ci_slave_result,
+    input  [ 7 : 0] ci_slave_n,
+    input           ci_slave_readra,
+    input           ci_slave_readrb,
+    input           ci_slave_writerc,
+    input  [ 4 : 0] ci_slave_a,
+    input  [ 4 : 0] ci_slave_b,
+    input  [ 4 : 0] ci_slave_c,
+    input  [31 : 0] ci_slave_ipending,
+    input           ci_slave_estatus
+
+);
+
+    wire select0;
+
+    // -------------------------------------------------------
+    // Wire non-control signals through to each master
+    // -------------------------------------------------------
+    assign  ci_master0_dataa    = ci_slave_dataa;
+    assign  ci_master0_datab    = ci_slave_datab;
+    assign  ci_master0_n        = ci_slave_n;
+    assign  ci_master0_a        = ci_slave_a;
+    assign  ci_master0_b        = ci_slave_b;
+    assign  ci_master0_c        = ci_slave_c;
+    assign  ci_master0_ipending = ci_slave_ipending;
+    assign  ci_master0_estatus  = ci_slave_estatus;
+    assign  ci_master0_clk      = ci_slave_clk;
+    assign  ci_master0_clken    = ci_slave_clken;
+    assign  ci_master0_reset_req = ci_slave_reset_req;
+    assign  ci_master0_reset    = ci_slave_reset;
+
+
+    // -------------------------------------------------------
+    // Figure out which output is selected, and use that to
+    // gate control signals
+    // -------------------------------------------------------
+    assign select0 = ci_slave_n >= 252 && ci_slave_n < 256;
+
+    assign ci_master0_readra  = (select0 && ci_slave_readra);
+    assign ci_master0_readrb  = (select0 && ci_slave_readrb);
+    assign ci_master0_writerc = (select0 && ci_slave_writerc);
+    assign ci_master0_start   = (select0 && ci_slave_start);
+
+
+    // -------------------------------------------------------
+    // Use the select signal to figure out which result to mux
+    // back
+    // -------------------------------------------------------
+    assign ci_slave_result = {32{ select0 }} & ci_master0_result
+    ;
+
+    assign ci_slave_done = select0 & ci_master0_done
+    ;
+
+endmodule
+

+ 59 - 0
nios2_uc/synthesis/submodules/nios2_uc_pio_BUTTON.v

@@ -0,0 +1,59 @@
+//Legal Notice: (C)2020 Altera Corporation. All rights reserved.  Your
+//use of Altera Corporation's design tools, logic functions and other
+//software and tools, and its AMPP partner logic functions, and any
+//output files any of the foregoing (including device programming or
+//simulation files), and any associated documentation or information are
+//expressly subject to the terms and conditions of the Altera Program
+//License Subscription Agreement or other applicable license agreement,
+//including, without limitation, that your use is for the sole purpose
+//of programming logic devices manufactured by Altera and sold by Altera
+//or its authorized distributors.  Please refer to the applicable
+//agreement for further details.
+
+// synthesis translate_off
+`timescale 1ns / 1ps
+// synthesis translate_on
+
+// turn off superfluous verilog processor warnings 
+// altera message_level Level1 
+// altera message_off 10034 10035 10036 10037 10230 10240 10030 
+
+module nios2_uc_pio_BUTTON (
+                             // inputs:
+                              address,
+                              clk,
+                              in_port,
+                              reset_n,
+
+                             // outputs:
+                              readdata
+                           )
+;
+
+  output  [ 31: 0] readdata;
+  input   [  1: 0] address;
+  input            clk;
+  input   [  7: 0] in_port;
+  input            reset_n;
+
+
+wire             clk_en;
+wire    [  7: 0] data_in;
+wire    [  7: 0] read_mux_out;
+reg     [ 31: 0] readdata;
+  assign clk_en = 1;
+  //s1, which is an e_avalon_slave
+  assign read_mux_out = {8 {(address == 0)}} & data_in;
+  always @(posedge clk or negedge reset_n)
+    begin
+      if (reset_n == 0)
+          readdata <= 0;
+      else if (clk_en)
+          readdata <= {32'b0 | read_mux_out};
+    end
+
+
+  assign data_in = in_port;
+
+endmodule
+

+ 70 - 0
nios2_uc/synthesis/submodules/nios2_uc_pio_COL_ADDR.v

@@ -0,0 +1,70 @@
+//Legal Notice: (C)2020 Altera Corporation. All rights reserved.  Your
+//use of Altera Corporation's design tools, logic functions and other
+//software and tools, and its AMPP partner logic functions, and any
+//output files any of the foregoing (including device programming or
+//simulation files), and any associated documentation or information are
+//expressly subject to the terms and conditions of the Altera Program
+//License Subscription Agreement or other applicable license agreement,
+//including, without limitation, that your use is for the sole purpose
+//of programming logic devices manufactured by Altera and sold by Altera
+//or its authorized distributors.  Please refer to the applicable
+//agreement for further details.
+
+// synthesis translate_off
+`timescale 1ns / 1ps
+// synthesis translate_on
+
+// turn off superfluous verilog processor warnings 
+// altera message_level Level1 
+// altera message_off 10034 10035 10036 10037 10230 10240 10030 
+
+module nios2_uc_pio_COL_ADDR (
+                               // inputs:
+                                address,
+                                chipselect,
+                                clk,
+                                reset_n,
+                                write_n,
+                                writedata,
+
+                               // outputs:
+                                out_port,
+                                readdata
+                             )
+;
+
+  output  [  7: 0] out_port;
+  output  [ 31: 0] readdata;
+  input   [  2: 0] address;
+  input            chipselect;
+  input            clk;
+  input            reset_n;
+  input            write_n;
+  input   [ 31: 0] writedata;
+
+
+wire             clk_en;
+reg     [  7: 0] data_out;
+wire    [  7: 0] out_port;
+wire    [  7: 0] read_mux_out;
+wire    [ 31: 0] readdata;
+wire             wr_strobe;
+  assign clk_en = 1;
+  //s1, which is an e_avalon_slave
+  assign read_mux_out = {8 {(address == 0)}} & data_out;
+  assign wr_strobe = chipselect && ~write_n;
+  always @(posedge clk or negedge reset_n)
+    begin
+      if (reset_n == 0)
+          data_out <= 0;
+      else if (clk_en)
+          if (wr_strobe)
+              data_out <= (address == 5)? data_out & ~writedata[7 : 0]: (address == 4)? data_out | writedata[7 : 0]: (address == 0)? writedata[7 : 0]: data_out;
+    end
+
+
+  assign readdata = {32'b0 | read_mux_out};
+  assign out_port = data_out;
+
+endmodule
+

+ 67 - 0
nios2_uc/synthesis/submodules/nios2_uc_pio_MATRIX.v

@@ -0,0 +1,67 @@
+//Legal Notice: (C)2020 Altera Corporation. All rights reserved.  Your
+//use of Altera Corporation's design tools, logic functions and other
+//software and tools, and its AMPP partner logic functions, and any
+//output files any of the foregoing (including device programming or
+//simulation files), and any associated documentation or information are
+//expressly subject to the terms and conditions of the Altera Program
+//License Subscription Agreement or other applicable license agreement,
+//including, without limitation, that your use is for the sole purpose
+//of programming logic devices manufactured by Altera and sold by Altera
+//or its authorized distributors.  Please refer to the applicable
+//agreement for further details.
+
+// synthesis translate_off
+`timescale 1ns / 1ps
+// synthesis translate_on
+
+// turn off superfluous verilog processor warnings 
+// altera message_level Level1 
+// altera message_off 10034 10035 10036 10037 10230 10240 10030 
+
+module nios2_uc_pio_MATRIX (
+                             // inputs:
+                              address,
+                              chipselect,
+                              clk,
+                              reset_n,
+                              write_n,
+                              writedata,
+
+                             // outputs:
+                              out_port,
+                              readdata
+                           )
+;
+
+  output  [ 19: 0] out_port;
+  output  [ 31: 0] readdata;
+  input   [  1: 0] address;
+  input            chipselect;
+  input            clk;
+  input            reset_n;
+  input            write_n;
+  input   [ 31: 0] writedata;
+
+
+wire             clk_en;
+reg     [ 19: 0] data_out;
+wire    [ 19: 0] out_port;
+wire    [ 19: 0] read_mux_out;
+wire    [ 31: 0] readdata;
+  assign clk_en = 1;
+  //s1, which is an e_avalon_slave
+  assign read_mux_out = {20 {(address == 0)}} & data_out;
+  always @(posedge clk or negedge reset_n)
+    begin
+      if (reset_n == 0)
+          data_out <= 0;
+      else if (chipselect && ~write_n && (address == 0))
+          data_out <= writedata[19 : 0];
+    end
+
+
+  assign readdata = {32'b0 | read_mux_out};
+  assign out_port = data_out;
+
+endmodule
+

+ 67 - 0
nios2_uc/synthesis/submodules/nios2_uc_pio_ROW.v

@@ -0,0 +1,67 @@
+//Legal Notice: (C)2020 Altera Corporation. All rights reserved.  Your
+//use of Altera Corporation's design tools, logic functions and other
+//software and tools, and its AMPP partner logic functions, and any
+//output files any of the foregoing (including device programming or
+//simulation files), and any associated documentation or information are
+//expressly subject to the terms and conditions of the Altera Program
+//License Subscription Agreement or other applicable license agreement,
+//including, without limitation, that your use is for the sole purpose
+//of programming logic devices manufactured by Altera and sold by Altera
+//or its authorized distributors.  Please refer to the applicable
+//agreement for further details.
+
+// synthesis translate_off
+`timescale 1ns / 1ps
+// synthesis translate_on
+
+// turn off superfluous verilog processor warnings 
+// altera message_level Level1 
+// altera message_off 10034 10035 10036 10037 10230 10240 10030 
+
+module nios2_uc_pio_ROW (
+                          // inputs:
+                           address,
+                           chipselect,
+                           clk,
+                           reset_n,
+                           write_n,
+                           writedata,
+
+                          // outputs:
+                           out_port,
+                           readdata
+                        )
+;
+
+  output  [ 11: 0] out_port;
+  output  [ 31: 0] readdata;
+  input   [  1: 0] address;
+  input            chipselect;
+  input            clk;
+  input            reset_n;
+  input            write_n;
+  input   [ 31: 0] writedata;
+
+
+wire             clk_en;
+reg     [ 11: 0] data_out;
+wire    [ 11: 0] out_port;
+wire    [ 11: 0] read_mux_out;
+wire    [ 31: 0] readdata;
+  assign clk_en = 1;
+  //s1, which is an e_avalon_slave
+  assign read_mux_out = {12 {(address == 0)}} & data_out;
+  always @(posedge clk or negedge reset_n)
+    begin
+      if (reset_n == 0)
+          data_out <= 0;
+      else if (chipselect && ~write_n && (address == 0))
+          data_out <= writedata[11 : 0];
+    end
+
+
+  assign readdata = {32'b0 | read_mux_out};
+  assign out_port = data_out;
+
+endmodule
+

+ 15 - 0
output_file.map

@@ -0,0 +1,15 @@
+BLOCK		START ADDRESS		END ADDRESS
+
+Page_0		0x00000000		0x00367F05
+
+
+Configuration device: EPCS64
+Configuration mode: Active Serial
+Quad-Serial configuration device dummy clock cycle: 8
+
+
+Notes:
+
+- Data checksum for this conversion is 0x49DE7C61
+
+- All the addresses in this file are byte addresses

+ 2 - 2
output_files/myfirst_niosii.cdf

@@ -1,10 +1,10 @@
-/* Quartus Prime Version 18.1.1 Build 646 04/11/2019 SJ Lite Edition */
+/* Quartus Prime Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition */
 JedecChain;
 	FileRevision(JESD32A);
 	DefaultMfr(6E);
 
 	P ActionCode(Cfg)
-		Device PartName(EP4CE115F29) Path("/home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/output_files/") File("myfirst_niosii.sof") MfrSpec(OpMask(1));
+		Device PartName(EP4CE115F29) Path("/home/user/Google-Drive/Hochschule-Anhalt/HS-Codesign/pong_20201203/output_files/") File("myfirst_niosii.sof") MfrSpec(OpMask(1));
 
 ChainEnd;
 

+ 1 - 1
output_files/myfirst_niosii.sld

@@ -2,7 +2,7 @@
   <sld_infos>
     <sld_info hpath="nios2_uc:u0" name="u0">
       <assignment_values>
-        <assignment_value text="QSYS_NAME nios2_uc HAS_SOPCINFO 1 GENERATION_ID 1605800269"/>
+        <assignment_value text="QSYS_NAME nios2_uc HAS_SOPCINFO 1 GENERATION_ID 1607012346"/>
       </assignment_values>
     </sld_info>
     <sld_info hpath="sld_hub:auto_hub|alt_sld_fab:\instrumentation_fabric_with_node_gen:instrumentation_fabric" library="alt_sld_fab" name="instrumentation_fabric">

BIN
software/.metadata/.mylyn/repositories.xml.zip


BIN
software/.metadata/.plugins/org.eclipse.cdt.core/hello_world.1606398843993.pdom


File diff suppressed because it is too large
+ 0 - 2505
software/.metadata/.plugins/org.eclipse.cdt.core/hello_world.language.settings.xml


BIN
software/.metadata/.plugins/org.eclipse.cdt.core/hello_world_bsp.1606398842096.pdom


File diff suppressed because it is too large
+ 0 - 1381
software/.metadata/.plugins/org.eclipse.cdt.core/hello_world_bsp.language.settings.xml


+ 0 - 1
software/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c

@@ -1 +0,0 @@
-

+ 0 - 1
software/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp

@@ -1 +0,0 @@
-

+ 0 - 34
software/.metadata/.plugins/org.eclipse.core.resources/.history/32/202feef1ef2f001b1545ef0b5631d2e4

@@ -1,34 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(true) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  for(int i=0; i<2000000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 33
software/.metadata/.plugins/org.eclipse.core.resources/.history/50/403241c7ef2f001b1545ef0b5631d2e4

@@ -1,33 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(true) {
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  for(int i=0; i<2000000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 35
software/.metadata/.plugins/org.eclipse.core.resources/.history/8f/502e43e9f12f001b1545ef0b5631d2e4

@@ -1,35 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-#include <system.h>
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(1) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  for(int i=0; i<100000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 35
software/.metadata/.plugins/org.eclipse.core.resources/.history/a5/c0d6e426f02f001b1545ef0b5631d2e4

@@ -1,35 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-#include <system.h>
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(1) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  for(int i=0; i<2000000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 34
software/.metadata/.plugins/org.eclipse.core.resources/.history/b7/608b34f6ef2f001b1545ef0b5631d2e4

@@ -1,34 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(1) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED, count++);
-	  for(int i=0; i<2000000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 35
software/.metadata/.plugins/org.eclipse.core.resources/.history/d2/901d0554f02f001b1545ef0b5631d2e4

@@ -1,35 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-#include <system.h>
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(1) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  for(int i=0; i<500000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 34
software/.metadata/.plugins/org.eclipse.core.resources/.history/d4/80e2f03df22f001b1545ef0b5631d2e4

@@ -1,34 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-#include <system.h>
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(1) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  //for(int i=0; i<100000; i++) {
-	  //}
-  }
-
-  return 0;
-}

+ 0 - 34
software/.metadata/.plugins/org.eclipse.core.resources/.history/e0/b060dd18f02f001b1545ef0b5631d2e4

@@ -1,34 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-#include "altera_avalon_pio_regs.h"
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-  int count = 0;
-
-  while(1) {
-	  printf("%d\n", count);
-	  IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, count++);
-	  for(int i=0; i<2000000; i++) {
-
-	  }
-  }
-
-  return 0;
-}

+ 0 - 24
software/.metadata/.plugins/org.eclipse.core.resources/.history/f5/30a9ceb9ef2f001b1545ef0b5631d2e4

@@ -1,24 +0,0 @@
-/*
- * "Hello World" example.
- *
- * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
- * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
- * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
- * device in your system's hardware.
- * The memory footprint of this hosted application is ~69 kbytes by default
- * using the standard reference design.
- *
- * For a reduced footprint version of this template, and an explanation of how
- * to reduce the memory footprint for a given application, see the
- * "small_hello_world" template.
- *
- */
-
-#include <stdio.h>
-
-int main()
-{
-  printf("Hello from Nios II!\n");
-
-  return 0;
-}

BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/RemoteSystemsTempFiles/.markers.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/RemoteSystemsTempFiles/.syncinfo.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world/.indexes/properties.index


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world/.markers.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world/.syncinfo.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.indexes/4b/de/properties.index


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.indexes/73/de/properties.index


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.indexes/properties.index


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.markers.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.projects/hello_world_bsp/.syncinfo.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap


BIN
software/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources


BIN
software/.metadata/.plugins/org.eclipse.core.resources/0.snap


+ 0 - 4
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.altera.sbtgui.ui.prefs

@@ -1,4 +0,0 @@
-eclipse.preferences.version=1
-newSoftwareExampleWizardPage.defaultLocation=/home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/software/hello_world
-newSoftwareExampleWizardPage.sopcinfoFile=/home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/nios2_uc.sopcinfo
-newSoftwareExampleWizardPage2.newBspLocation=/home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/software/hello_world_bsp

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-hello_world.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-indexer/preferenceScope=0

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-hello_world_bsp.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-indexer/preferenceScope=0

File diff suppressed because it is too large
+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.debug.core.prefs


File diff suppressed because it is too large
+ 0 - 3
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs


+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-version=1

+ 0 - 5
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.core.prefs

@@ -1,5 +0,0 @@
-//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.applicationLaunchType=org.eclipse.cdt.dsf.gdb.launch.localCLaunch,debug,;org.eclipse.cdt.cdi.launch.localCLaunch,run,;
-//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.attachLaunchType=org.eclipse.cdt.dsf.gdb.launch.attachCLaunch,debug,;
-//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.postmortemLaunchType=org.eclipse.cdt.dsf.gdb.launch.coreCLaunch,debug,;
-//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.remoteApplicationLaunchType=org.eclipse.rse.remotecdt.dsf.debug,debug,;
-eclipse.preferences.version=1

+ 0 - 3
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs

@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<launchPerspectives/>\n
-preferredTargets=org.eclipse.cdt.debug.ui.toggleCBreakpointTarget,org.eclipse.cdt.debug.ui.toggleCDynamicPrintfTarget\:org.eclipse.cdt.debug.ui.toggleCBreakpointTarget|

+ 0 - 4
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.logging.aeri.ide.prefs

@@ -1,4 +0,0 @@
-eclipse.preferences.version=1
-resetSendMode=KEEP
-resetSendModeOn=0
-sendMode=NOTIFY

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-mylyn.attention.migrated=true

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true

+ 0 - 3
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs

@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
-org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.rse.systemtype.local.systemType.defaultUserId=sstudent

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.rse.preferences.order.connections=emw-pc0122103.Local

+ 0 - 2
software/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.browser.prefs

@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-internalWebBrowserHistory=file\:///home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/software/hello_world_bsp/summary.html|*|file\:/home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/software/hello_world_bsp/summary.html|*|

+ 0 - 17
software/.metadata/.plugins/org.eclipse.debug.core/.launches/hello_world Nios II Hardware configuration.launch

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.altera.sbtgui.launch.hardware.Nios2HardwareLaunchConfiguration">
-<stringAttribute key="byteStreamDeviceCableName" value="USB-Blaster on localhost [3-9]"/>
-<stringAttribute key="byteStreamDeviceDeviceID" value="1"/>
-<stringAttribute key="byteStreamDeviceInstanceID" value="0"/>
-<booleanAttribute key="downloadProgram" value="true"/>
-<stringAttribute key="elfFile" value="/home/sstudent/HS-Codesign/HS-Codesign/niosii_20201119/software/hello_world/hello_world.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.altera.debug.cdi.gdb.plugin.Nios2GdbCdiDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="hello_world.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="hello_world"/>
-<stringAttribute key="processorCableName" value="USB-Blaster on localhost [3-9]"/>
-<stringAttribute key="processorDeviceIndex" value="1"/>
-<stringAttribute key="processorInstanceId" value="0"/>
-<booleanAttribute key="runProgram" value="true"/>
-</launchConfiguration>

+ 0 - 27
software/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchHistory>
-<launchGroup id="org.eclipse.debug.ui.launchGroup.profilee">
-<mruHistory/>
-<favorites/>
-</launchGroup>
-<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
-<mruHistory>
-<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;hello_world Nios II Hardware configuration&quot;/&gt;&#10;"/>
-</mruHistory>
-<favorites/>
-</launchGroup>
-<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
-<mruHistory/>
-<favorites/>
-</launchGroup>
-<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
-<mruHistory/>
-<favorites/>
-</launchGroup>
-<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
-<mruHistory>
-<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;hello_world Nios II Hardware configuration&quot;/&gt;&#10;"/>
-</mruHistory>
-<favorites/>
-</launchGroup>
-</launchHistory>

+ 0 - 0
software/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi


Some files were not shown because too many files changed in this diff