Typical I/O Module Design - 1.0 English

MicroBlaze Triple Modular Redundancy (TMR) Subsystem (PG268)

Document ID
PG268
Release Date
2022-04-28
Version
1.0 English

The single-string design is comprised of MicroBlazeâ„¢ with local memory, MDM, and an I/O Module configured to enable the UART.

create_project project_1 project_1 -part xcku040-ffva1156-3-e

create_bd_design benchmark

set mb [create_bd_cell -type ip -vlnv xilinx.com:ip:microblaze microblaze_0]

set_property -dict [list CONFIG.C_USE_BARREL 1 CONFIG.C_USE_HW_MUL 1 \

CONFIG.C_USE_MSR_INSTR 1 CONFIG.C_USE_PCMP_INSTR 1] $mb

apply_bd_automation -rule xilinx.com:bd_rule:microblaze -config \

{local_mem "32KB" debug_module "Debug Only" axi_periph "Enabled" axi_intc "0"

clk "New External Port (100 MHz)"} $mb

set io [create_bd_cell -type ip -vlnv xilinx.com:ip:iomodule iomodule_0]

set_property -dict [list CONFIG.C_USE_UART_RX 1 CONFIG.C_USE_UART_TX 1] $io

apply_bd_automation -rule xilinx.com:bd_rule:iomodule -config \

{processor "/microblaze_0"} $io

make_bd_pins_external [get_bd_pins $io/UART_Rx] [get_bd_pins $io/UART_Tx]

make_bd_pins_external [get_bd_pins rst_Clk_100M/ext_reset_in]

group_bd_cells tmr_0 $mb $io [get_bd_cells microblaze_0_local_memory]

assign_bd_address

regenerate_bd_layout

save_bd_design

Save the Tcl code listed here in a file named benchmark_1.tcl, and then use the following command to recreate the single-string design:

% vivado -source benchmark_1.tcl

When the single-string design has been created, the TMR Block Automation can be run to triplicate it by executing this Tcl code in the Vivado Tcl console:

validate_bd_design

create_bd_cell -type ip -vlnv xilinx.com:ip:tmr_manager:1.0 tmr_0/tmr_manager_0

apply_bd_automation -rule xilinx.com:bd_rule:tmr -config \

{bram "Local" wd "None" sem_if "External" sem_wd "1" brk "1" mask "0"

inject "0"} [get_bd_cells tmr_0/tmr_manager_0]

save_bd_design