diff --git a/FlashPro_Express_Projects/README.md b/FlashPro_Express_Projects/README.md
index 54a1052..919089a 100644
--- a/FlashPro_Express_Projects/README.md
+++ b/FlashPro_Express_Projects/README.md
@@ -1,6 +1,6 @@
# RTG4 Development Kit FPGA Programming Files
-This folder contains FlashPro Express v2021.2 projects for the RTG4 Development Kit Mi-V sample designs.
+This folder contains FlashPro Express v2021.3 projects for the RTG4 Development Kit Mi-V sample designs.
## FlashPro Express
The programming files contained under this folder were exported from the designs in the Libero_Projects folder in this repository. Select the desired programming file (.job) and program your device using FlashPro Express.
diff --git a/Libero_Projects/README.md b/Libero_Projects/README.md
index 8c8e85a..40d4651 100644
--- a/Libero_Projects/README.md
+++ b/Libero_Projects/README.md
@@ -1,5 +1,5 @@
# RTG4 Development Kit Mi-V Sample FPGA Designs
-This folder contains Tcl scripts that build Libero SoC v2021.2 design projects for the RTG4 Development Kit. These scripts are executed in Libero SoC to generate the sample designs. All cores boot from memory at 0x8000_0000.
+This folder contains Tcl scripts that build Libero SoC v2021.3 design projects for the RTG4 Development Kit. These scripts are executed in Libero SoC to generate the sample designs. All cores boot from memory at 0x8000_0000.
#### RTG4_Dev_Kit_MIV_RV32IMA_BaseDesign
@@ -21,7 +21,7 @@ This folder contains Tcl scripts that build Libero SoC v2021.2 design projects f
| Config | Description|
| :------:|:----------------------------------------|
-| CFG1 | This design uses the MIV_RV32 core configured as follows:
- RISC-V Extensions: IMC
- Multiplier: MACC (Pipelined)
- Interfaces: AHB Master (mirrored), APB3 Master
- Internal IRQs: 6
- TCM: Enabled
- System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled
- Debug: enabled
|
+| CFG1 | This design uses the MIV_RV32 core configured as follows: - RISC-V Extensions: IMC
- Multiplier: MACC (Pipelined)
- Interfaces: AHB Master (mirrored), APB3 Master
- Internal IRQs: 6
- TCM: Disabled
- System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled
- Debug: enabled
|
| CFG2 | This design uses the MIV_RV32 core configured as follows: - RISC-V Extensions: IM
- Multiplier: Fabric
- Interfaces: AXI4 Master (mirrored), APB3 Master
- Internal IRQs: 6
- TCM: Disabled
- System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled
- Debug: enabled*
|
| CFG3 | This design uses the MIV_RV32 core configured as follows: - RISC-V Extensions: I
- Multiplier: none
- Interfaces: APB3 Master
- Internal IRQs: 6
- TCM: Enabled
- System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled
- Debug: enabled
|
diff --git a/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMAF_BaseDesign.tcl b/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMAF_BaseDesign.tcl
index edeeb54..9288a1d 100644
--- a/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMAF_BaseDesign.tcl
+++ b/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMAF_BaseDesign.tcl
@@ -60,20 +60,16 @@ proc base_design_built { }\
puts "--------------------------------------------------------------------------------------------------------- \n"
}
-proc download_cores_all_cfgs { }\
+proc download_required_direct_cores { }\
{
download_core -vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREAHBTOAPB3:3.2.101} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreAHBLite:5.5.101} -location {www.microchip-ip.com/repositories/DirectCore}
- download_core -vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:1.0.117} -location {www.microchip-ip.com/repositories/SgCore}
- download_core -vlnv {Actel:SgCore:OSC:2.0.101} -location {www.microchip-ip.com/repositories/SgCore}
- download_core -vlnv {Actel:SgCore:FCCC:2.0.201} -location {www.microchip-ip.com/repositories/SgCore}
download_core -vlnv {Actel:DirectCore:CoreUARTapb:5.7.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreTimer:2.0.103} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREJTAGDEBUG:4.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREAXITOAHBL:3.6.101} -location {www.microchip-ip.com/repositories/DirectCore}
- #download_core -vlnv {Actel:DirectCore:COREAXI4INTERCONNECT:2.8.103} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32:3.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32IMA_L1_AHB:2.3.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32IMA_L1_AXI:2.1.100} -location {www.microchip-ip.com/repositories/DirectCore}
@@ -82,12 +78,13 @@ proc download_cores_all_cfgs { }\
proc pre_configure_place_and_route { }\
{
- # Configuring Place_and_Route tool for a timing pass.
+ #Configuring Place_and_Route tool for a timing pass.
configure_tool -name {PLACEROUTE} -params {TDPR:true} -params {IOREG_COMBINING:true} -params {INCRPLACEANDROUTE:false} -params {REPAIR_MIN_DELAY:true}
}
proc run_verify_timing { }\
{
+ #Runs Verify Timing tool
run_tool -name {VERIFYTIMING}
}
@@ -118,7 +115,7 @@ if {"$config" == "CFG1"} then {
}
}
- pre_configure_place_and_route
+pre_configure_place_and_route
if {"$design_flow_stage" == "SYNTHESIZE"} then {
puts "\n---------------------------------------------------------------------------------------------------------"
diff --git a/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMA_BaseDesign.tcl b/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMA_BaseDesign.tcl
index 8239290..ec873e0 100644
--- a/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMA_BaseDesign.tcl
+++ b/Libero_Projects/RTG4_Dev_Kit_MIV_RV32IMA_BaseDesign.tcl
@@ -64,20 +64,16 @@ proc base_design_built { }\
puts "--------------------------------------------------------------------------------------------------------- \n"
}
-proc download_cores_all_cfgs { }\
+proc download_required_direct_cores { }\
{
download_core -vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREAHBTOAPB3:3.2.101} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreAHBLite:5.5.101} -location {www.microchip-ip.com/repositories/DirectCore}
- download_core -vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:1.0.117} -location {www.microchip-ip.com/repositories/SgCore}
- download_core -vlnv {Actel:SgCore:OSC:2.0.101} -location {www.microchip-ip.com/repositories/SgCore}
- download_core -vlnv {Actel:SgCore:FCCC:2.0.201} -location {www.microchip-ip.com/repositories/SgCore}
download_core -vlnv {Actel:DirectCore:CoreUARTapb:5.7.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreTimer:2.0.103} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREJTAGDEBUG:4.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREAXITOAHBL:3.6.101} -location {www.microchip-ip.com/repositories/DirectCore}
- #download_core -vlnv {Actel:DirectCore:COREAXI4INTERCONNECT:2.8.103} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32:3.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32IMA_L1_AHB:2.3.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32IMA_L1_AXI:2.1.100} -location {www.microchip-ip.com/repositories/DirectCore}
@@ -86,12 +82,13 @@ proc download_cores_all_cfgs { }\
proc pre_configure_place_and_route { }\
{
- # Configuring Place_and_Route tool for a timing pass.
+ #Configuring Place_and_Route tool for a timing pass.
configure_tool -name {PLACEROUTE} -params {TDPR:true} -params {IOREG_COMBINING:true} -params {INCRPLACEANDROUTE:false} -params {REPAIR_MIN_DELAY:true}
}
proc run_verify_timing { }\
{
+ #Runs Verify Timing tool
run_tool -name {VERIFYTIMING}
}
@@ -101,7 +98,7 @@ if {"$config" == "CFG1"} then {
} else {
create_new_project_label
new_project -location $project_dir_CFG1 -name $Libero_project_name_CFG1 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMA_CFG1/import_component_and_constraints_rtg4_dev_kit_rv32ima_cfg1.tcl
save_project
base_design_built
@@ -112,7 +109,7 @@ if {"$config" == "CFG1"} then {
} else {
create_new_project_label
new_project -location $project_dir_CFG2 -name $Libero_project_name_CFG2 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMA_CFG2/import_component_and_constraints_rtg4_dev_kit_rv32ima_cfg2.tcl
save_project
base_design_built
@@ -126,7 +123,7 @@ if {"$config" == "CFG1"} then {
no_first_argument_entered
create_new_project_label
new_project -location $project_dir_CFG1 -name $Libero_project_name_CFG1 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMA_CFG1/import_component_and_constraints_rtg4_dev_kit_rv32ima_cfg1.tcl
save_project
base_design_built
diff --git a/Libero_Projects/RTG4_Dev_Kit_MIV_RV32_BaseDesign.tcl b/Libero_Projects/RTG4_Dev_Kit_MIV_RV32_BaseDesign.tcl
index 1096b2b..5a4f424 100644
--- a/Libero_Projects/RTG4_Dev_Kit_MIV_RV32_BaseDesign.tcl
+++ b/Libero_Projects/RTG4_Dev_Kit_MIV_RV32_BaseDesign.tcl
@@ -77,20 +77,16 @@ proc config2_not_available { }\
}
-proc download_cores_all_cfgs { }\
+proc download_required_direct_cores { }\
{
download_core -vlnv {Actel:DirectCore:CoreAPB3:4.2.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREAHBTOAPB3:3.2.101} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreAHBLite:5.5.101} -location {www.microchip-ip.com/repositories/DirectCore}
- download_core -vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:1.0.117} -location {www.microchip-ip.com/repositories/SgCore}
- download_core -vlnv {Actel:SgCore:OSC:2.0.101} -location {www.microchip-ip.com/repositories/SgCore}
- download_core -vlnv {Actel:SgCore:FCCC:2.0.201} -location {www.microchip-ip.com/repositories/SgCore}
download_core -vlnv {Actel:DirectCore:CoreUARTapb:5.7.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreTimer:2.0.103} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREJTAGDEBUG:4.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:CoreGPIO:3.2.102} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Actel:DirectCore:COREAXITOAHBL:3.6.101} -location {www.microchip-ip.com/repositories/DirectCore}
- #download_core -vlnv {Actel:DirectCore:COREAXI4INTERCONNECT:2.8.103} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32:3.0.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32IMA_L1_AHB:2.3.100} -location {www.microchip-ip.com/repositories/DirectCore}
download_core -vlnv {Microsemi:MiV:MIV_RV32IMA_L1_AXI:2.1.100} -location {www.microchip-ip.com/repositories/DirectCore}
@@ -99,11 +95,13 @@ proc download_cores_all_cfgs { }\
proc pre_configure_place_and_route { }\
{
+ #Configuring Place_and_Route tool for a timing pass.
configure_tool -name {PLACEROUTE} -params {EFFORT_LEVEL:true} -params {REPAIR_MIN_DELAY:true} -params {TDPR:true} -params {IOREG_COMBINING:true}
}
proc run_verify_timing { }\
{
+ #Runs Verify Timing tool
run_tool -name {VERIFYTIMING}
}
@@ -114,7 +112,7 @@ if {"$config" == "CFG1"} then {
create_new_project_label
new_project -location $project_dir_CFG1 -name $Libero_project_name_CFG1 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
project_settings -enable_set_mitigation 0
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMC_CFG1/import_component_and_constraints_rtg4_dev_kit_rv32imc_cfg1.tcl
save_project
base_design_built
@@ -126,7 +124,7 @@ if {"$config" == "CFG1"} then {
create_new_project_label
new_project -location $project_dir_CFG2 -name $Libero_project_name_CFG2 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
project_settings -enable_set_mitigation 0
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMC_CFG2/import_component_and_constraints_rtg4_dev_kit_rv32imc_cfg2.tcl
save_project
base_design_built
@@ -138,7 +136,7 @@ if {"$config" == "CFG1"} then {
create_new_project_label
new_project -location $project_dir_CFG3 -name $Libero_project_name_CFG3 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
project_settings -enable_set_mitigation 0
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMC_CFG3/import_component_and_constraints_rtg4_dev_kit_rv32imc_cfg3.tcl
save_project
base_design_built
@@ -153,7 +151,7 @@ if {"$config" == "CFG1"} then {
create_new_project_label
new_project -location $project_dir_CFG1 -name $Libero_project_name_CFG1 -project_description {} -block_mode 0 -standalone_peripheral_initialization 0 -instantiate_in_smartdesign 1 -ondemand_build_dh 1 -hdl {VERILOG} -family {RTG4} -die {RT4G150} -package {1657 CG} -speed {STD} -die_voltage {1.2} -part_range {MIL} -adv_options {IO_DEFT_STD:LVCMOS 2.5V} -adv_options {RESTRICTPROBEPINS:1} -adv_options {RESTRICTSPIPINS:0} -adv_options {TEMPR:MIL} -adv_options {VCCI_1.2_VOLTR:MIL} -adv_options {VCCI_1.5_VOLTR:MIL} -adv_options {VCCI_1.8_VOLTR:MIL} -adv_options {VCCI_2.5_VOLTR:MIL} -adv_options {VCCI_3.3_VOLTR:MIL} -adv_options {VOLTR:MIL}
project_settings -enable_set_mitigation 1
- download_cores_all_cfgs
+ download_required_direct_cores
source ./import/components/IMC_CFG1/import_component_and_constraints_rtg4_dev_kit_rv32imc_cfg1.tcl
save_project
base_design_built
diff --git a/Libero_Projects/import/components/IMAF_CFG1/top_level_rtg4_dev_kit_rv32imaf_cfg1.tcl b/Libero_Projects/import/components/IMAF_CFG1/top_level_rtg4_dev_kit_rv32imaf_cfg1.tcl
index 2b34b87..bd0d0e2 100644
--- a/Libero_Projects/import/components/IMAF_CFG1/top_level_rtg4_dev_kit_rv32imaf_cfg1.tcl
+++ b/Libero_Projects/import/components/IMAF_CFG1/top_level_rtg4_dev_kit_rv32imaf_cfg1.tcl
@@ -1,6 +1,7 @@
-#RTG4 Dev Kit = RTG4150-1657CG
+#Hardware : RTG4 Dev Kit (rev B (RTG4150-1657CG))
+#MIV Cores : MIV_RV32IMAF_L1_AHB
+#
#Libero's TCL top level script
-# Core: MIV_RV32IMAF_L1_AHB
#
#This Tcl file sources other Tcl files to build the design(on which recursive export is run) in a bottom-up fashion
@@ -51,17 +52,14 @@ sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAHBL_0} -insta
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreAHBL_0:REMAP_M0} -value {GND}
-
# Add COREAHBTOAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {COREAHBTOAPB3_0} -instance_name {COREAHBTOAPB3_0}
-
# Add CoreAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_0} -instance_name {CoreAPB3_0}
-
# Add CoreGPIO_IN instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_IN} -instance_name {CoreGPIO_IN}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_IN:INT}
@@ -70,7 +68,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_sl
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_slices {"[1:1]"}
-
# Add CoreGPIO_OUT instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_OUT} -instance_name {CoreGPIO_OUT}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_OUT:INT}
@@ -81,22 +78,18 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_slices {"[3:3]"}
-
# Add CoreJTAGDebug_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreJTAGDebug_1} -instance_name {CoreJTAGDebug_1}
-
# Add CoreTimer_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_0} -instance_name {CoreTimer_0}
-
# Add CoreTimer_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_1} -instance_name {CoreTimer_1}
-
# Add CoreUARTapb_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreUARTapb_0} -instance_name {CoreUARTapb_0}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:TXRDY}
@@ -106,7 +99,6 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:OVERFLOW}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:FRAMING_ERR}
-
# Add MIV_RV32IMAF_L1_AHB_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {MIV_RV32IMAF_L1_AHB_0} -instance_name {MIV_RV32IMAF_L1_AHB_0}
sd_create_pin_slices -sd_name ${sd_name} -pin_name {MIV_RV32IMAF_L1_AHB_0:IRQ} -pin_slices {[28:0]}
@@ -119,37 +111,30 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32IMAF_L1_AHB_0:DRV_TD
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32IMAF_L1_AHB_0:EXT_RESETN}
-
# Add AND2_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
-
# Add RCOSC_50MHZ_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {RCOSC_50MHZ} -instance_name {RCOSC_50MHZ_0}
-
# Add reset_synchronizer_0 instance
sd_instantiate_hdl_module -sd_name ${sd_name} -hdl_module_name {reset_synchronizer} -hdl_file {hdl\reset_synchronizer.v} -instance_name {reset_synchronizer_0}
-
# Add RTG4_SRAM_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4_SRAM_0} -instance_name {RTG4_SRAM_0}
-
# Add RTG4FCCC_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4FCCC_0} -instance_name {RTG4FCCC_0}
-
# Add SYSRESET_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {SYSRESET} -instance_name {SYSRESET_0}
-
# Add scalar net connections
sd_connect_pins -sd_name ${sd_name} -pin_names {"SYSRESET_0:DEVRST_N" "DEVRST_N" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"RCOSC_50MHZ_0:CLKOUT" "RTG4FCCC_0:RCOSC_50MHZ" }
@@ -195,7 +180,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAHBL_0:AHBmmaster0" "MIV_RV
# Re-enable auto promotion of pins of type 'pad'
auto_promote_pad_pins -promote_all 1
-# Save the smartDesign
+# Re-arrange SmartDesign layout
+sd_reset_layout -sd_name ${sd_name}
+# Save the SmartDesign
save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign BaseDesign
+# Generate the SmartDesign
generate_component -component_name ${sd_name}
diff --git a/Libero_Projects/import/components/IMA_CFG1/top_level_rtg4_dev_kit_rv32ima_cfg1.tcl b/Libero_Projects/import/components/IMA_CFG1/top_level_rtg4_dev_kit_rv32ima_cfg1.tcl
index 3e36c0e..588c81a 100644
--- a/Libero_Projects/import/components/IMA_CFG1/top_level_rtg4_dev_kit_rv32ima_cfg1.tcl
+++ b/Libero_Projects/import/components/IMA_CFG1/top_level_rtg4_dev_kit_rv32ima_cfg1.tcl
@@ -1,6 +1,7 @@
-#RTG4 Dev Kit = RTG4150-1657CG
+#Hardware : RTG4 Dev Kit (rev B (RTG4150-1657CG))
+#MIV Cores : MIV_RV32IMA_L1_AHB
+#
#Libero's TCL top level script
-# Core: MIV_RV32IMA_L1_AHB
#
#This Tcl file sources other Tcl files to build the design(on which recursive export is run) in a bottom-up fashion
@@ -47,23 +48,19 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_3} -port_direction {OU
sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_4} -port_direction {OUT}
-
# Add CoreAHBL_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAHBL_0} -instance_name {CoreAHBL_0}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreAHBL_0:REMAP_M0} -value {GND}
-
# Add COREAHBTOAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {COREAHBTOAPB3_0} -instance_name {COREAHBTOAPB3_0}
-
# Add CoreAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_0} -instance_name {CoreAPB3_0}
-
# Add CoreGPIO_IN instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_IN} -instance_name {CoreGPIO_IN}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_IN:INT}
@@ -72,7 +69,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_sl
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_slices {"[1:1]"}
-
# Add CoreGPIO_OUT instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_OUT} -instance_name {CoreGPIO_OUT}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_OUT:INT}
@@ -83,22 +79,18 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_slices {"[3:3]"}
-
# Add CoreJTAGDebug_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreJTAGDebug_1} -instance_name {CoreJTAGDebug_1}
-
# Add CoreTimer_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_0} -instance_name {CoreTimer_0}
-
# Add CoreTimer_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_1} -instance_name {CoreTimer_1}
-
# Add CoreUARTapb_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreUARTapb_0} -instance_name {CoreUARTapb_0}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:TXRDY}
@@ -108,7 +100,6 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:OVERFLOW}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:FRAMING_ERR}
-
# Add MIV_RV32IMA_L1_AHB_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {MIV_RV32IMA_L1_AHB_0} -instance_name {MIV_RV32IMA_L1_AHB_0}
sd_create_pin_slices -sd_name ${sd_name} -pin_name {MIV_RV32IMA_L1_AHB_0:IRQ} -pin_slices {[28:0]}
@@ -121,37 +112,30 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32IMA_L1_AHB_0:EXT_RES
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32IMA_L1_AHB_0:DRV_TDO}
-
# Add AND2_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
-
# Add RCOSC_50MHZ_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {RCOSC_50MHZ} -instance_name {RCOSC_50MHZ_0}
-
# Add reset_synchronizer_0 instance
sd_instantiate_hdl_module -sd_name ${sd_name} -hdl_module_name {reset_synchronizer} -hdl_file {hdl\reset_synchronizer.v} -instance_name {reset_synchronizer_0}
-
# Add RTG4_SRAM_AHBL_AXI_C0_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4_SRAM_0} -instance_name {RTG4_SRAM_0}
-
# Add RTG4FCCC_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4FCCC_0} -instance_name {RTG4FCCC_0}
-
# Add SYSRESET_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {SYSRESET} -instance_name {SYSRESET_0}
-
# Add scalar net connections
sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "reset_synchronizer_0:reset" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"MIV_RV32IMA_L1_AHB_0:TCK" "CoreJTAGDebug_1:TGT_TCK_0" }
@@ -196,7 +180,10 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"MIV_RV32IMA_L1_AHB_0:AHB_MST_MM
# Re-enable auto promotion of pins of type 'pad'
auto_promote_pad_pins -promote_all 1
-# Save the smartDesign
+# Re-arrange SmartDesign layout
+sd_reset_layout -sd_name ${sd_name}
+# Save the SmartDesign
save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign BaseDesign
+# Generate the SmartDesign
generate_component -component_name ${sd_name}
+
diff --git a/Libero_Projects/import/components/IMA_CFG2/top_level_rtg4_dev_kit_rv32ima_cfg2.tcl b/Libero_Projects/import/components/IMA_CFG2/top_level_rtg4_dev_kit_rv32ima_cfg2.tcl
index 7c8919c..0042213 100644
--- a/Libero_Projects/import/components/IMA_CFG2/top_level_rtg4_dev_kit_rv32ima_cfg2.tcl
+++ b/Libero_Projects/import/components/IMA_CFG2/top_level_rtg4_dev_kit_rv32ima_cfg2.tcl
@@ -1,6 +1,7 @@
-#RTG4 Dev Kit = RTG4150-1657CG
+#Hardware : RTG4 Dev Kit (rev B (RTG4150-1657CG))
+#MIV Cores : MIV_RV32IMA_L1_AXI
+#
#Libero's TCL top level script
-# Core: MIV_RV32IMA_L1_AXI
#
#This Tcl file sources other Tcl files to build the design(on which recursive export is run) in a bottom-up fashion
@@ -53,27 +54,22 @@ sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAHBL_0} -insta
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {CoreAHBL_0:REMAP_M0} -value {GND}
-
# Add COREAHBTOAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {COREAHBTOAPB3_0} -instance_name {COREAHBTOAPB3_0}
-
# Add CoreAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_0} -instance_name {CoreAPB3_0}
-
# Add CoreAXITOAHBL_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAXITOAHBL_0} -instance_name {CoreAXITOAHBL_0}
-
# Add CoreAXITOAHBL_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAXITOAHBL_1} -instance_name {CoreAXITOAHBL_1}
-
# Add CoreGPIO_IN instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_IN} -instance_name {CoreGPIO_IN}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_IN:INT}
@@ -82,7 +78,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_sl
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_slices {"[1:1]"}
-
# Add CoreGPIO_OUT instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_OUT} -instance_name {CoreGPIO_OUT}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_OUT:INT}
@@ -93,22 +88,18 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_slices {"[3:3]"}
-
# Add CoreJTAGDebug_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreJTAGDebug_1} -instance_name {CoreJTAGDebug_1}
-
# Add CoreTimer_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_0} -instance_name {CoreTimer_0}
-
# Add CoreTimer_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_1} -instance_name {CoreTimer_1}
-
# Add CoreUARTapb_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreUARTapb_0} -instance_name {CoreUARTapb_0}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:TXRDY}
@@ -118,7 +109,6 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:OVERFLOW}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:FRAMING_ERR}
-
# Add MIV_RV32IMA_L1_AXI_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {MIV_RV32IMA_L1_AXI_0} -instance_name {MIV_RV32IMA_L1_AXI_0}
sd_create_pin_slices -sd_name ${sd_name} -pin_name {MIV_RV32IMA_L1_AXI_0:IRQ} -pin_slices {[28:0]}
@@ -129,37 +119,30 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32IMA_L1_AXI_0:DRV_TDO
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32IMA_L1_AXI_0:EXT_RESETN}
-
# Add AND2_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
-
# Add RCOSC_50MHZ_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {RCOSC_50MHZ} -instance_name {RCOSC_50MHZ_0}
-
# Add reset_synchronizer_0 instance
sd_instantiate_hdl_module -sd_name ${sd_name} -hdl_module_name {reset_synchronizer} -hdl_file {hdl\reset_synchronizer.v} -instance_name {reset_synchronizer_0}
-
# Add RTG4_SRAM_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4_SRAM_0} -instance_name {RTG4_SRAM_0}
-
# Add RTG4FCCC_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4FCCC_0} -instance_name {RTG4FCCC_0}
-
# Add SYSRESET_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {SYSRESET} -instance_name {SYSRESET_0}
-
# Add scalar net connections
sd_connect_pins -sd_name ${sd_name} -pin_names {"SYSRESET_0:DEVRST_N" "DEVRST_N" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"RCOSC_50MHZ_0:CLKOUT" "RTG4FCCC_0:RCOSC_50MHZ" }
@@ -207,7 +190,9 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"MIV_RV32IMA_L1_AXI_0:MMIO_MST_A
# Re-enable auto promotion of pins of type 'pad'
auto_promote_pad_pins -promote_all 1
-# Save the smartDesign
+# Re-arrange SmartDesign layout
+sd_reset_layout -sd_name ${sd_name}
+# Save the SmartDesign
save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign BaseDesign
+# Generate the SmartDesign
generate_component -component_name ${sd_name}
diff --git a/Libero_Projects/import/components/IMC_CFG1/top_level_rtg4_dev_kit_rv32imc_cfg1.tcl b/Libero_Projects/import/components/IMC_CFG1/top_level_rtg4_dev_kit_rv32imc_cfg1.tcl
index 8ba87b6..fa9ce0e 100644
--- a/Libero_Projects/import/components/IMC_CFG1/top_level_rtg4_dev_kit_rv32imc_cfg1.tcl
+++ b/Libero_Projects/import/components/IMC_CFG1/top_level_rtg4_dev_kit_rv32imc_cfg1.tcl
@@ -1,6 +1,7 @@
-#RTG4 Dev Kit = RTG4150-1657CG
+#Hardware : RTG4 Dev Kit (rev B (RTG4150-1657CG))
+#MIV Cores : MIV_RV32
+#
#Libero's TCL top level script
-# Core: MIV_RV32IMC
#
#This Tcl file sources other Tcl files to build the design(on which recursive export is run) in a bottom-up fashion
@@ -48,7 +49,6 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_4} -port_direction {OU
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_0} -instance_name {CoreAPB3_0}
-
# Add CoreGPIO_IN instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_IN} -instance_name {CoreGPIO_IN}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_IN:INT}
@@ -57,7 +57,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_sl
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_slices {"[1:1]"}
-
# Add CoreGPIO_OUT instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_OUT} -instance_name {CoreGPIO_OUT}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_OUT:INT}
@@ -68,22 +67,18 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_slices {"[3:3]"}
-
# Add CoreJTAGDebug_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreJTAGDebug_0} -instance_name {CoreJTAGDebug_0}
-
# Add CoreTimer_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_0} -instance_name {CoreTimer_0}
-
# Add CoreTimer_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_1} -instance_name {CoreTimer_1}
-
# Add CoreUARTapb_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreUARTapb_0} -instance_name {CoreUARTapb_0}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:TXRDY}
@@ -93,7 +88,6 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:OVERFLOW}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:FRAMING_ERR}
-
# Add MIV_RV32_CFG1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {MIV_RV32_CFG1} -instance_name {MIV_RV32_CFG1}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG1:TIME_COUNT_OUT}
@@ -101,37 +95,30 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG1:JTAG_TDO_DR}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG1:EXT_RESETN}
-
# Add AND2_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
-
# Add RCOSC_50MHZ_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {RCOSC_50MHZ} -instance_name {RCOSC_50MHZ_0}
-
# Add reset_synchronizer_0 instance
sd_instantiate_hdl_module -sd_name ${sd_name} -hdl_module_name {reset_synchronizer} -hdl_file {hdl\reset_synchronizer.v} -instance_name {reset_synchronizer_0}
-
# Add RTG4_SRAM_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4_SRAM_0} -instance_name {RTG4_SRAM_0}
-
# Add RTG4FCCC_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4FCCC_0} -instance_name {RTG4FCCC_0}
-
# Add SYSRESET_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {SYSRESET} -instance_name {SYSRESET_0}
-
# Add scalar net connections
sd_connect_pins -sd_name ${sd_name} -pin_names {"SYSRESET_0:DEVRST_N" "DEVRST_N" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"RCOSC_50MHZ_0:CLKOUT" "RTG4FCCC_0:RCOSC_50MHZ" }
@@ -174,7 +161,10 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CoreAPB3_0:APB3mmaster" "MIV_RV
# Re-enable auto promotion of pins of type 'pad'
auto_promote_pad_pins -promote_all 1
-# Save the smartDesign
+# Re-arrange SmartDesign layout
+sd_reset_layout -sd_name ${sd_name}
+# Save the SmartDesign
save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign BaseDesign
+# Generate the SmartDesign
generate_component -component_name ${sd_name}
+
diff --git a/Libero_Projects/import/components/IMC_CFG2/top_level_rtg4_dev_kit_rv32imc_cfg2.tcl b/Libero_Projects/import/components/IMC_CFG2/top_level_rtg4_dev_kit_rv32imc_cfg2.tcl
index 2ff3f0f..e4dde6f 100644
--- a/Libero_Projects/import/components/IMC_CFG2/top_level_rtg4_dev_kit_rv32imc_cfg2.tcl
+++ b/Libero_Projects/import/components/IMC_CFG2/top_level_rtg4_dev_kit_rv32imc_cfg2.tcl
@@ -1,6 +1,7 @@
-#RTG4 Dev Kit = RTG4150-1657CG
+#Hardware : RTG4 Dev Kit (rev B (RTG4150-1657CG))
+#MIV Cores : MIV_RV32
+#
#Libero's TCL top level script
-# Core: MIV_RV32IMC
#
#This Tcl file sources other Tcl files to build the design(on which recursive export is run) in a bottom-up fashion
@@ -48,7 +49,6 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_4} -port_direction {OU
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_0} -instance_name {CoreAPB3_0}
-
# Add CoreGPIO_IN instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_IN} -instance_name {CoreGPIO_IN}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_IN:INT}
@@ -57,7 +57,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_sl
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_slices {"[1:1]"}
-
# Add CoreGPIO_OUT instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_OUT} -instance_name {CoreGPIO_OUT}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_OUT:INT}
@@ -68,22 +67,18 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_slices {"[3:3]"}
-
# Add CoreJTAGDebug_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreJTAGDebug_0} -instance_name {CoreJTAGDebug_0}
-
# Add CoreTimer_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_0} -instance_name {CoreTimer_0}
-
# Add CoreTimer_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_1} -instance_name {CoreTimer_1}
-
# Add CoreUARTapb_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreUARTapb_0} -instance_name {CoreUARTapb_0}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:TXRDY}
@@ -93,7 +88,6 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:OVERFLOW}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:FRAMING_ERR}
-
# Add MIV_RV32_CFG2 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {MIV_RV32_CFG2} -instance_name {MIV_RV32_CFG2}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG2:TIME_COUNT_OUT}
@@ -101,37 +95,30 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG2:JTAG_TDO_DR}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG2:EXT_RESETN}
-
# Add AND2_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
-
# Add RCOSC_50MHZ_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {RCOSC_50MHZ} -instance_name {RCOSC_50MHZ_0}
-
# Add reset_synchronizer_0 instance
sd_instantiate_hdl_module -sd_name ${sd_name} -hdl_module_name {reset_synchronizer} -hdl_file {hdl\reset_synchronizer.v} -instance_name {reset_synchronizer_0}
-
# Add RTG4_SRAM_AXI4_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4_SRAM_AXI4_0} -instance_name {RTG4_SRAM_AXI4_0}
-
# Add RTG4FCCC_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4FCCC_0} -instance_name {RTG4FCCC_0}
-
# Add SYSRESET_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {SYSRESET} -instance_name {SYSRESET_0}
-
# Add scalar net connections
sd_connect_pins -sd_name ${sd_name} -pin_names {"SYSRESET_0:DEVRST_N" "DEVRST_N" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"RCOSC_50MHZ_0:CLKOUT" "RTG4FCCC_0:RCOSC_50MHZ" }
@@ -174,7 +161,10 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"RTG4_SRAM_AXI4_0:AXI4_Slave" "M
# Re-enable auto promotion of pins of type 'pad'
auto_promote_pad_pins -promote_all 1
-# Save the smartDesign
+# Re-arrange SmartDesign layout
+sd_reset_layout -sd_name ${sd_name}
+# Save the SmartDesign
save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign BaseDesign
+# Generate the SmartDesign
generate_component -component_name ${sd_name}
+
diff --git a/Libero_Projects/import/components/IMC_CFG3/top_level_rtg4_dev_kit_rv32imc_cfg3.tcl b/Libero_Projects/import/components/IMC_CFG3/top_level_rtg4_dev_kit_rv32imc_cfg3.tcl
index e88f50f..97546a8 100644
--- a/Libero_Projects/import/components/IMC_CFG3/top_level_rtg4_dev_kit_rv32imc_cfg3.tcl
+++ b/Libero_Projects/import/components/IMC_CFG3/top_level_rtg4_dev_kit_rv32imc_cfg3.tcl
@@ -1,6 +1,7 @@
-#RTG4 Dev Kit = RTG4150-1657CG
+#Hardware : RTG4 Dev Kit (rev B (RTG4150-1657CG))
+#MIV Cores : MIV_RV32
+#
#Libero's TCL top level script
-# Core: MIV_RV32IMC
#
#This Tcl file sources other Tcl files to build the design(on which recursive export is run) in a bottom-up fashion
@@ -43,11 +44,11 @@ sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_2} -port_direction {OU
sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_3} -port_direction {OUT}
sd_create_scalar_port -sd_name ${sd_name} -port_name {LED_4} -port_direction {OUT}
+
# Add CoreAPB3_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreAPB3_0} -instance_name {CoreAPB3_0}
-
# Add CoreGPIO_IN instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_IN} -instance_name {CoreGPIO_IN}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_IN:INT}
@@ -56,7 +57,6 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_sl
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_IN:GPIO_IN} -pin_slices {"[1:1]"}
-
# Add CoreGPIO_OUT instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreGPIO_OUT} -instance_name {CoreGPIO_OUT}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreGPIO_OUT:INT}
@@ -67,22 +67,18 @@ sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_
sd_create_pin_slices -sd_name ${sd_name} -pin_name {CoreGPIO_OUT:GPIO_OUT} -pin_slices {"[3:3]"}
-
# Add CoreJTAGDebug_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreJTAGDebug_0} -instance_name {CoreJTAGDebug_0}
-
# Add CoreTimer_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_0} -instance_name {CoreTimer_0}
-
# Add CoreTimer_1 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreTimer_1} -instance_name {CoreTimer_1}
-
# Add CoreUARTapb_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {CoreUARTapb_0} -instance_name {CoreUARTapb_0}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:TXRDY}
@@ -92,7 +88,6 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:OVERFLOW}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {CoreUARTapb_0:FRAMING_ERR}
-
# Add MIV_RV32_CFG3 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {MIV_RV32_CFG3} -instance_name {MIV_RV32_CFG3}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG3:TIME_COUNT_OUT}
@@ -100,32 +95,26 @@ sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG3:JTAG_TDO_DR}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {MIV_RV32_CFG3:EXT_RESETN}
-
# Add AND2_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {AND2} -instance_name {AND2_0}
-
# Add RCOSC_50MHZ_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {RCOSC_50MHZ} -instance_name {RCOSC_50MHZ_0}
-
# Add reset_synchronizer_0 instance
sd_instantiate_hdl_module -sd_name ${sd_name} -hdl_module_name {reset_synchronizer} -hdl_file {hdl\reset_synchronizer.v} -instance_name {reset_synchronizer_0}
-
# Add RTG4FCCC_0 instance
sd_instantiate_component -sd_name ${sd_name} -component_name {RTG4FCCC_0} -instance_name {RTG4FCCC_0}
-
# Add SYSRESET_0 instance
sd_instantiate_macro -sd_name ${sd_name} -macro_name {SYSRESET} -instance_name {SYSRESET_0}
-
# Add scalar net connections
sd_connect_pins -sd_name ${sd_name} -pin_names {"SYSRESET_0:DEVRST_N" "DEVRST_N" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"RCOSC_50MHZ_0:CLKOUT" "RTG4FCCC_0:RCOSC_50MHZ" }
@@ -167,7 +156,10 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"MIV_RV32_CFG3:APB_MSTR" "CoreAP
# Re-enable auto promotion of pins of type 'pad'
auto_promote_pad_pins -promote_all 1
-# Save the smartDesign
+# Re-arrange SmartDesign layout
+sd_reset_layout -sd_name ${sd_name}
+# Save the SmartDesign
save_smartdesign -sd_name ${sd_name}
-# Generate SmartDesign BaseDesign
+# Generate the SmartDesign
generate_component -component_name ${sd_name}
+
diff --git a/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4FCCC_0.tcl b/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4FCCC_0.tcl
index f000e0e..5f99d70 100644
--- a/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4FCCC_0.tcl
+++ b/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4FCCC_0.tcl
@@ -2,7 +2,7 @@
# Family: RTG4
# Part Number: RT4G150-CG1657
# Create and Configure the core component RTG4FCCC_0
-create_and_configure_core -core_vlnv {Actel:SgCore:RTG4FCCC:2.0.201} -component_name {RTG4FCCC_0} -params {\
+create_and_configure_core -core_vlnv {Actel:SgCore:RTG4FCCC:*} -download_core -component_name {RTG4FCCC_0} -params {\
"ADVANCED_TAB_CHANGED:false" \
"CLK0_IS_USED:false" \
"CLK0_PAD_IS_USED:false" \
diff --git a/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_0.tcl b/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_0.tcl
index 8fb0ae3..8f99429 100644
--- a/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_0.tcl
+++ b/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_0.tcl
@@ -1,6 +1,6 @@
# Exporting core RTG4_SRAM_0 to TCL
# Create design TCL command for core RTG4_SRAM_0
-create_and_configure_core -core_vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:1.0.117} -component_name {RTG4_SRAM_0} -params {\
+create_and_configure_core -core_vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:*} -download_core -component_name {RTG4_SRAM_0} -params {\
"AXI4_AWIDTH:32" \
"AXI4_DWIDTH:32" \
"AXI4_IDWIDTH:8" \
diff --git a/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_AXI4_0.tcl b/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_AXI4_0.tcl
index fa7b1c3..aec3e13 100644
--- a/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_AXI4_0.tcl
+++ b/Libero_Projects/import/components/SHARED_COMPONENTS/RTG4_SRAM_AXI4_0.tcl
@@ -1,6 +1,6 @@
# Exporting core RTG4_SRAM_AXI4_0 to TCL
# Create design TCL command for core RTG4_SRAM_AXI4_0
-create_and_configure_core -core_vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:1.0.117} -component_name {RTG4_SRAM_AXI4_0} -params {\
+create_and_configure_core -core_vlnv {Actel:SystemBuilder:RTG4_SRAM_AHBL_AXI:*} -download_core -component_name {RTG4_SRAM_AXI4_0} -params {\
"AXI4_AWIDTH:32" \
"AXI4_DWIDTH:32" \
"AXI4_IDWIDTH:8" \
diff --git a/README.md b/README.md
index 15f8826..47f9f71 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ To download or clone the repository:
# Libero Projects
-The Libero_Projects folder contains sample Mi-V Libero designs for Libero SoC v2021.2. Libero projects for older Libero releases can be downloaded from their [tags](https://github.com/Mi-V-Soft-RISC-V/RTG4-Development-Kit/releases) in this repository.
+The Libero_Projects folder contains sample Mi-V Libero designs for Libero SoC v2021.3. Libero projects for older Libero releases can be downloaded from their [tags](https://github.com/Mi-V-Soft-RISC-V/RTG4-Development-Kit/releases) in this repository.
## Design Features
The Libero designs include the following features:
@@ -40,7 +40,7 @@ The FlashPro_Express_Projects folder contains the pre-generated programming file
# Design Tools
The following design tools are required.
-## Libero SoC v2021.2
+## Libero SoC v2021.3
[Libero SoC](https://www.microsemi.com/products/fpga-soc/design-resources/design-software/libero-soc#downloads) is Microchip's FPGA design software.
## FlashPro Express