A53

Modeling tasks on the A53 including loading and storing using a DMA

ARM_Cortex_A53

Below is a browsable image of the model.

  • To download OpenWebStart click on the links -
    Windows- Compatibility:Windows 10 or higher (*)
    macOS - Compatibility:macOS 10.15 (Catalina) or higher (*)
    Linux - Compatibility:Ubuntu 18.04 LTS or higher (*)
  • For an executable version,
  • To view or save the MoML file for this model, click here.
ARM_Cortex_A53model <h2>TextDisplay</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>rowsDisplayed</td><td>10</td><td>10</td></tr><tr><td>columnsDisplayed</td><td>40</td><td>40</td></tr><tr><td>suppressBlankLines</td><td>false</td><td>false</td></tr><tr><td>title</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>ViewText</td><td>true</td><td>true</td></tr><tr><td>saveText</td><td>false</td><td>false</td></tr><tr><td>fileName</td><td>Enter Filename to save text</td><td>&quot;Enter Filename to save text&quot;</td></tr><tr><td>Append_Time</td><td>true</td><td>true</td></tr></table> <h2>ARMv8_Instruction_Set</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>This is the Instruction Set for ARM9 : Reference ARM TRM manual.  \\n</td><td>This is the Instruction Set for ARM9 : Reference ARM TRM manual.  \\n</td></tr><tr><td>Instruction_Set_Name</td><td>&quot;ARM_INSTR&quot;</td><td>&quot;ARM_INSTR&quot;</td></tr><tr><td>_explanation</td><td>ProcessorGenerator-&gt;Instruction_Set</td><td>ProcessorGenerator-&gt;Instruction_Set</td></tr><tr><td>Instruction_Set_Text</td><td>/* Instruction Set or File Path. */\\n Mnew Ra  Rb  Rc  Rd   Re  Rf Rg Rh        ; /* Label */\\n   ARM ALU LOG BCH MDV ASD FLT LOD STO ;\\n\\n   ALU  INT_1                    ; /*Simple Cluster 1*/\\n   LOG  INT_2                    ; /*Simple Cluster 2*/ \\n   BCH  INT_3                    ; /*Branch*/\\n   MDV  INT_4                    ; /* Multi Cycle cluster*/\\n   ASD  FP_1                     ; /*Complex Cluster(NEON/FP1)*/\\n   FLT  FP_2                     ; /*Complex Cluster(NEON/FP2)*/\\n   LOD  INT_5                    ; /*Load*/\\n   STO  INT_6\t\t         ; /*Store*/\\n   \\nbegin INT_1         \t         ;   /* Group */\\n   ADD    1 2        \t         ;\\n   SUB    1 2          \t         ;\\n   SUBC    1\t\t         ;\\n   AND\t   1\t\t\t ;\\n   ORR\t   1\t\t\t ;\\n   EOR\t   1\t\t\t ;\\nend INT_1\t\t         ;\\n\\nbegin INT_2\t\t         ;\\n   BIC  1 2\t\t         ;\\n   AND  1 2\t\t         ;\\n   EON  1 2\t       \t         ;\\nend INT_2\t\t         ;\\n\\nbegin INT_3\t\t         ;\t\t\t\t\\n   JMP    3                      ;\\n   *JMP   3                      ;\\nend   INT_3                      ;\\n\\nbegin INT_4\t\t         ;\\n   SDIV   4 36\t\t         ;\\n   UDIV   4 36\t\t         ;\\n   MADD   3 5\t\t         ;\\n   MSUB   3 5\t\t         ;\\n   SMULH  6\t\t         ;\\n   UMULH  6                      ;\\nend INT_4\t\t         ; \\n\\nbegin FP_1\t\t         ; \\n   SABD  3\t\t         ;\\n   SABA  4 5\t\t         ;\\n   ADDV  8\t\t         ;\\n   CMEQ  3\t\t         ;\\n   PMUL  4 5\t\t         ;\\n   FADDP 5 8\t\t         ;\\n   FCVTL 8\t\t         ;\\n   FDIVI 7 64\t\t         ;\\n   FMLA  9 10\t\t         ;\\nend FP_1\t\t         ; \\n\\nbegin FP_2\t\t         ;\\n   FABS  3\t\t         ;\\n   FADD  5\t\t         ;\\n   FSUB  5\t\t         ;\\n   FDIV  7 32 \t\t         ;\\n   FMUL  5 6\t\t         ;\\n   FSQRT 7 32\t\t         ;\\nend FP_2\t\t         ; \\n\\nbegin INT_5\t\t         ;\\n   LDRSW 4\t\t         ;\\n   #LDRSW_DMA 4\t\t         ;\\n   LDRH  5 \t\t         ;\\n   LDPSW 5 \t\t         ;\\nend INT_5\t\t         ; \\n\\nbegin INT_6\t\t         ; \\n   STRB 1\t\t\t ;\\n   #STRB_DMA  1 \t         ;\\n   STRH  3\t\t         ;\\n   MOV   1\t\t\t ;\\n   LSLV  1\t\t\t ;\\n   LSRV  1\t\t\t ;\\nend INT_6\t\t\t ;\\n    </td><td>/* Instruction Set or File Path. */\\n Mnew Ra  Rb  Rc  Rd   Re  Rf Rg Rh        ; /* Label */\\n   ARM ALU LOG BCH MDV ASD FLT LOD STO ;\\n\\n   ALU  INT_1                    ; /*Simple Cluster 1*/\\n   LOG  INT_2                    ; /*Simple Cluster 2*/ \\n   BCH  INT_3                    ; /*Branch*/\\n   MDV  INT_4                    ; /* Multi Cycle cluster*/\\n   ASD  FP_1                     ; /*Complex Cluster(NEON/FP1)*/\\n   FLT  FP_2                     ; /*Complex Cluster(NEON/FP2)*/\\n   LOD  INT_5                    ; /*Load*/\\n   STO  INT_6\t\t         ; /*Store*/\\n   \\nbegin INT_1         \t         ;   /* Group */\\n   ADD    1 2        \t         ;\\n   SUB    1 2          \t         ;\\n   SUBC    1\t\t         ;\\n   AND\t   1\t\t\t ;\\n   ORR\t   1\t\t\t ;\\n   EOR\t   1\t\t\t ;\\nend INT_1\t\t         ;\\n\\nbegin INT_2\t\t         ;\\n   BIC  1 2\t\t         ;\\n   AND  1 2\t\t         ;\\n   EON  1 2\t       \t         ;\\nend INT_2\t\t         ;\\n\\nbegin INT_3\t\t         ;\t\t\t\t\\n   JMP    3                      ;\\n   *JMP   3                      ;\\nend   INT_3                      ;\\n\\nbegin INT_4\t\t         ;\\n   SDIV   4 36\t\t         ;\\n   UDIV   4 36\t\t         ;\\n   MADD   3 5\t\t         ;\\n   MSUB   3 5\t\t         ;\\n   SMULH  6\t\t         ;\\n   UMULH  6                      ;\\nend INT_4\t\t         ; \\n\\nbegin FP_1\t\t         ; \\n   SABD  3\t\t         ;\\n   SABA  4 5\t\t         ;\\n   ADDV  8\t\t         ;\\n   CMEQ  3\t\t         ;\\n   PMUL  4 5\t\t         ;\\n   FADDP 5 8\t\t         ;\\n   FCVTL 8\t\t         ;\\n   FDIVI 7 64\t\t         ;\\n   FMLA  9 10\t\t         ;\\nend FP_1\t\t         ; \\n\\nbegin FP_2\t\t         ;\\n   FABS  3\t\t         ;\\n   FADD  5\t\t         ;\\n   FSUB  5\t\t         ;\\n   FDIV  7 32 \t\t         ;\\n   FMUL  5 6\t\t         ;\\n   FSQRT 7 32\t\t         ;\\nend FP_2\t\t         ; \\n\\nbegin INT_5\t\t         ;\\n   LDRSW 4\t\t         ;\\n   #LDRSW_DMA 4\t\t         ;\\n   LDRH  5 \t\t         ;\\n   LDPSW 5 \t\t         ;\\nend INT_5\t\t         ; \\n\\nbegin INT_6\t\t         ; \\n   STRB 1\t\t\t ;\\n   #STRB_DMA  1 \t         ;\\n   STRH  3\t\t         ;\\n   MOV   1\t\t\t ;\\n   LSLV  1\t\t\t ;\\n   LSRV  1\t\t\t ;\\nend INT_6\t\t\t ;\\n    </td></tr><tr><td>Record_Set_Name</td><td>&quot;Record_Set_Name&quot;</td><td>&quot;Record_Set_Name&quot;</td></tr><tr><td>Memory_Type</td><td>Global</td><td>Global</td></tr></table> <h2>Power Inst</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>fillOnWrapup</td><td>true</td><td>true</td></tr><tr><td>legend</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>fileName</td><td>Enter Filename to save plot</td><td>&quot;Enter Filename to save plot&quot;</td></tr><tr><td>viewPlot</td><td>false</td><td>false</td></tr><tr><td>savePlot</td><td>false</td><td>false</td></tr></table> <h2>Plots</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr></table> <h2>VariableList</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Memory_Init_Text</td><td>/* Memory Initialize Template          \\nName          Type          Value     */\\nT1            Global        0.0</td><td>/* Memory Initialize Template          \\nName          Type          Value     */\\nT1            Global        0.0</td></tr></table> <h2>Task Generator</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr></table> <h2>Power Avg</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>fillOnWrapup</td><td>true</td><td>true</td></tr><tr><td>legend</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>fileName</td><td>Enter Filename to save plot</td><td>&quot;Enter Filename to save plot&quot;</td></tr><tr><td>viewPlot</td><td>true</td><td>true</td></tr><tr><td>savePlot</td><td>false</td><td>false</td></tr></table> <h2>PowerTable</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>This is the Excel spreadsheet import.  The power \\ninformation is maintained here.</td><td>This is the Excel spreadsheet import.  The power \\ninformation is maintained here.</td></tr><tr><td>Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>fileOrURL</td><td>&nbsp;</td><td>&quot;&quot;</td></tr><tr><td>Manager_Setup</td><td>/* Power_Table.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                 where &quot;Scheduler_&quot; or &quot;STR_&quot; + BlockName; Processor, Bus, DRAM = Architecture_Name + &quot;_&quot; + BlockName                                                                                                                                   \\n--------Device Name-------  ---------Power States------  -----Operating States------  --toActive--  --Speed--  --Exist-- */\\nArchitecture_Block          Standby  Active  Wait  Idle Sleep Existing  OffState  OnState    t_OnOff        Mhz       Volts   ; \\nArchitecture_1_Cortex_A53           stdy     act  wat   idl   slp  Standby   Standby   Active     Cycle_t       ClockRate     1.0     ; \\n\\n</td><td>/* Power_Table.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                 where &quot;Scheduler_&quot; or &quot;STR_&quot; + BlockName; Processor, Bus, DRAM = Architecture_Name + &quot;_&quot; + BlockName                                                                                                                                   \\n--------Device Name-------  ---------Power States------  -----Operating States------  --toActive--  --Speed--  --Exist-- */\\nArchitecture_Block          Standby  Active  Wait  Idle Sleep Existing  OffState  OnState    t_OnOff        Mhz       Volts   ; \\nArchitecture_1_Cortex_A53           stdy     act  wat   idl   slp  Standby   Standby   Active     Cycle_t       ClockRate     1.0     ; \\n\\n</td></tr><tr><td>Async_State_Change</td><td>/* Async_State_Change.  First row contains Column Names, expressions valid for entries except Device Name. \\n                        where State to same State can extend a Power State                                 \\n--------Device Name-------  --Start------Expression------Next--- */\\nArchitecture_Block            State        Time          State   ; \\nArchitecture_1_Cortex_A53\t     Standby       1e-7   \t Sleep   ;</td><td>/* Async_State_Change.  First row contains Column Names, expressions valid for entries except Device Name. \\n                        where State to same State can extend a Power State                                 \\n--------Device Name-------  --Start------Expression------Next--- */\\nArchitecture_Block            State        Time          State   ; \\nArchitecture_1_Cortex_A53\t     Standby       1e-7   \t Sleep   ;</td></tr><tr><td>Expression_List</td><td>/* First row contains Column Names.                                \\n                                                                   \\n---------Reference--------  --------------Expression------------ */\\nName                                        Value                ; \\nCycle_t                     0\t\t                         ; \\nact\t\t\t    38.0\t\t\t\t\t ;\\nstdy\t\t\t    0.1*act\t\t\t\t ;\\nwat\t\t\t    0.95*act\t\t\t\t ;\\nidl\t\t\t    0.25*act\t\t\t\t ;\\nslp\t\t\t    0.02*act\t\t\t\t ;</td><td>/* First row contains Column Names.                                \\n                                                                   \\n---------Reference--------  --------------Expression------------ */\\nName                                        Value                ; \\nCycle_t                     0\t\t                         ; \\nact\t\t\t    38.0\t\t\t\t\t ;\\nstdy\t\t\t    0.1*act\t\t\t\t ;\\nwat\t\t\t    0.95*act\t\t\t\t ;\\nidl\t\t\t    0.25*act\t\t\t\t ;\\nslp\t\t\t    0.02*act\t\t\t\t ;</td></tr><tr><td>Battery_Units</td><td>Milli_Watts</td><td>Milli_Watts</td></tr><tr><td>State_Plot_Enable</td><td>true</td><td>true</td></tr></table> <h2>RAM</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Memory_Name</td><td>&quot;DRAM&quot;</td><td>&quot;DRAM&quot;</td></tr><tr><td>Memory_Speed_Mhz</td><td>ClockRate/2</td><td>250.0</td></tr><tr><td>Memory_Size_MBytes</td><td>64.0</td><td>64.0</td></tr><tr><td>Access_Time</td><td>&quot;Read 5.0, Prefetch 6.0, Write 7.0, ReadWrite 8.0, Erase 9.0&quot;</td><td>&quot;Read 5.0, Prefetch 6.0, Write 7.0, ReadWrite 8.0, Erase 9.0&quot;</td></tr><tr><td>FIFO_Buffers</td><td>32</td><td>32</td></tr><tr><td>Refresh_Rate_Cycles</td><td>16384</td><td>16384</td></tr><tr><td>Refresh_Cycles</td><td>32</td><td>32</td></tr><tr><td>Memory_Address</td><td>&quot;/* Format: Min_Address,Max_Address. Example:201,300 */&quot;</td><td>&quot;/* Format: Min_Address,Max_Address. Example:201,300 */&quot;</td></tr><tr><td>Controller_Time</td><td>&quot;Cycle_Time * 1.0&quot;</td><td>&quot;Cycle_Time * 1.0&quot;</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr><tr><td>Width_Bytes</td><td>4</td><td>4</td></tr><tr><td>Memory_Type</td><td>SDR</td><td>SDR</td></tr></table> <h2>BusInterface2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_1&quot;</td><td>&quot;Bus_1&quot;</td></tr><tr><td>Port_Name_1</td><td>&quot;Port_3&quot;</td><td>&quot;Port_3&quot;</td></tr><tr><td>Port_Name_2</td><td>&quot;Port_4&quot;</td><td>&quot;Port_4&quot;</td></tr><tr><td>FIFO_Buffers</td><td>8</td><td>8</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr></table> <h2>Cache</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Cache_Name</td><td>&quot;L2&quot;</td><td>&quot;L2&quot;</td></tr><tr><td>Miss_Memory_Name</td><td>&quot;DRAM&quot;</td><td>&quot;DRAM&quot;</td></tr><tr><td>Cache_Speed_Mhz</td><td>ClockRate</td><td>500.0</td></tr><tr><td>Cache_Size_KBytes</td><td>512</td><td>512.0</td></tr><tr><td>Width_Bytes</td><td>4</td><td>4</td></tr><tr><td>Words_per_Cache_Line</td><td>2048</td><td>2048</td></tr><tr><td>FIFO_Buffers</td><td>32</td><td>32</td></tr><tr><td>Cache_Address</td><td>&quot;/* Format: Min_Address,Max_Address. Example:100,200 */&quot;</td><td>&quot;/* Format: Min_Address,Max_Address. Example:100,200 */&quot;</td></tr><tr><td>Cache_Hit_Expression</td><td>&quot;rand(0.0,1.0) &lt;= 0.95&quot;</td><td>&quot;rand(0.0,1.0) &lt;= 0.95&quot;</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr></table> <h2>BusArbiter</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>_explanation</td><td>HardwareDevices-&gt;BusArbiter</td><td>HardwareDevices-&gt;BusArbiter</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_1&quot;</td><td>&quot;Bus_1&quot;</td></tr><tr><td>Bus_Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Burst_Size_Bytes</td><td>100</td><td>100</td></tr><tr><td>Round_Robin_Port_Array</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td></tr><tr><td>Devices_Attached_to_Slave_by_Port</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td></tr><tr><td>Width_Bytes</td><td>4</td><td>4</td></tr><tr><td>Arbiter_Mode</td><td>FCFS</td><td>FCFS</td></tr><tr><td>Split_Retry_Flag</td><td>false</td><td>false</td></tr></table> <h2>ArchitectureSetup2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_2&quot;</td><td>&quot;Architecture_2&quot;</td></tr><tr><td>Field_Name_Mapping</td><td>/* First row contains Column Names.                */\\nExternal_Field_Name          Internal_Field_Name   ; \\nA_Address                    A_Address             ; \\nA_Bytes                      A_Bytes               ; \\nA_Data                       A_Data                ; \\nA_IDX                        A_IDX                 ; \\nA_Instruction                A_Instruction         ; \\nA_Priority                   A_Priority            ; \\nA_Source                     A_Source              ; \\nA_Destination                A_Destination         ; \\nA_Task_ID                    A_Task_ID             ; \\nA_Time                       A_Time                ; \\n</td><td>/* First row contains Column Names.                */\\nExternal_Field_Name          Internal_Field_Name   ; \\nA_Address                    A_Address             ; \\nA_Bytes                      A_Bytes               ; \\nA_Data                       A_Data                ; \\nA_IDX                        A_IDX                 ; \\nA_Instruction                A_Instruction         ; \\nA_Priority                   A_Priority            ; \\nA_Source                     A_Source              ; \\nA_Destination                A_Destination         ; \\nA_Task_ID                    A_Task_ID             ; \\nA_Time                       A_Time                ; \\n</td></tr><tr><td>Routing_Table</td><td>/* First row contains Column Names.                */\\n</td><td>/* First row contains Column Names.                */\\n</td></tr><tr><td>Number_of_Samples</td><td>2</td><td>0</td></tr><tr><td>Statistics_to_Plot</td><td>&quot;Cortex_A53_PROC_Utilization_Mean, Cortex_A53_PROC_Utilization_Max&quot;</td><td>&quot;Cortex_A53_PROC_Utilization_Mean, Cortex_A53_PROC_Utilization_Max&quot;</td></tr><tr><td>Internal_Plot_Trace_Offset</td><td>2</td><td>2</td></tr><tr><td>Listen_to_Architecture_Options</td><td>None</td><td>None</td></tr></table> <h2>Cortex_A53</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Processor_Name</td><td>Processor</td><td>&quot;Cortex_A53&quot;</td></tr><tr><td>Processor_Setup</td><td>/* First row contains Column Names.                */\\nParameter_Name                   Parameter_Value   ;\\nProcessor_Instruction_Set:       ARM_INSTR\\nNumber_of_Registers:             32 /* active registers being processed. total reg = 31 */\\nProcessor_Speed_Mhz:             ClockRate\\nContext_Switch_Cycles:           100 /* switch between internal pipeline stages */\\nInstruction_Queue_Length:        64 /* This cab be assumed. Real ARM data ? */\\nNumber_of_Pipeline_Stages:       8 /* after 5\\'th stage is implemeted */\\nNumber_of_INT_Execution_Units:   6 /* 1 exection unit 1 coproc unit */\\nNumber_of_FP_Execution_Units:    2 /* no particular FP units */\\nMemory_Database_Reference:       DMADatabase\\nNumber_of_Cache_Execution_Units: 2 /* I-cache and D-cache */\\nI_1:            {Cache_Speed_Mhz=ClockRate, Size_KBytes=64.0, Words_per_Cache_Line=8, Cache_Miss_Name=L2}      \\nD_1:            {Cache_Speed_Mhz=ClockRate, Size_KBytes=64.0, Words_per_Cache_Line=8, Cache_Miss_Name=L2}      \\n</td><td>/* First row contains Column Names.                */\\nParameter_Name                   Parameter_Value   ;\\nProcessor_Instruction_Set:       ARM_INSTR\\nNumber_of_Registers:             32 /* active registers being processed. total reg = 31 */\\nProcessor_Speed_Mhz:             ClockRate\\nContext_Switch_Cycles:           100 /* switch between internal pipeline stages */\\nInstruction_Queue_Length:        64 /* This cab be assumed. Real ARM data ? */\\nNumber_of_Pipeline_Stages:       8 /* after 5\\'th stage is implemeted */\\nNumber_of_INT_Execution_Units:   6 /* 1 exection unit 1 coproc unit */\\nNumber_of_FP_Execution_Units:    2 /* no particular FP units */\\nMemory_Database_Reference:       DMADatabase\\nNumber_of_Cache_Execution_Units: 2 /* I-cache and D-cache */\\nI_1:            {Cache_Speed_Mhz=ClockRate, Size_KBytes=64.0, Words_per_Cache_Line=8, Cache_Miss_Name=L2}      \\nD_1:            {Cache_Speed_Mhz=ClockRate, Size_KBytes=64.0, Words_per_Cache_Line=8, Cache_Miss_Name=L2}      \\n</td></tr><tr><td>Pipeline_Stages</td><td>/* First row contains Column Names.                */\\nStage_Name   Execution_Location  Action  Condition ; \\n1_PREFETCH   I_1                 instr   none      ; \\n2_PREFETCH   D_1                 read    none      ; \\n3_DECODE     I_1                 wait    none      ;\\n4_DECODE     none                exec    none      ;  \\n5_EXECUTE    D_1                 wait    none      ; \\n6_EXECUTE    ARM                 exec    none      ; \\n7_DataACC    ARM                 wait    none      ; \\n8_STORE      D_1                 write   none      ; \\n</td><td>/* First row contains Column Names.                */\\nStage_Name   Execution_Location  Action  Condition ; \\n1_PREFETCH   I_1                 instr   none      ; \\n2_PREFETCH   D_1                 read    none      ; \\n3_DECODE     I_1                 wait    none      ;\\n4_DECODE     none                exec    none      ;  \\n5_EXECUTE    D_1                 wait    none      ; \\n6_EXECUTE    ARM                 exec    none      ; \\n7_DataACC    ARM                 wait    none      ; \\n8_STORE      D_1                 write   none      ; \\n</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr><tr><td>Processor_Bits</td><td>64</td><td>64</td></tr></table> <h2>Database</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>*.xml, *.csv files abs or rel (./) path\\n  -- *.csv real columns set to number\\nInput_Fields == Lookup_Fields (num, type)\\nOutput_Expr: match, match_last, match_all\\n  -- match_all.field not allowed</td><td>*.xml, *.csv files abs or rel (./) path\\n  -- *.csv real columns set to number\\nInput_Fields == Lookup_Fields (num, type)\\nOutput_Expr: match, match_last, match_all\\n  -- match_all.field not allowed</td></tr><tr><td>Linking_Name</td><td>&quot;DMADatabase&quot;</td><td>&quot;DMADatabase&quot;</td></tr><tr><td>fileOrURL</td><td>&nbsp;</td><td>&quot;&quot;</td></tr><tr><td>Data_Structure_Text</td><td>A_Task_Name\tA_Instruction\tA_IDX\tA_Task_Source\tBurst_Word_Size\tA_Task_Address  A_Command\tA_Bytes\tA_Priority\tA_Destination    ;\\nTask_1\t         LDRSW_DMA        0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_2\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_3\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_4\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_5\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_6\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_7\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_8\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_9\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_10\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_1\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_2\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_3\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_4\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_5\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_6\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_7\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_8\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_9\t         STRB_DMA         0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_10\t         STRB_DMA         0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;</td><td>A_Task_Name\tA_Instruction\tA_IDX\tA_Task_Source\tBurst_Word_Size\tA_Task_Address  A_Command\tA_Bytes\tA_Priority\tA_Destination    ;\\nTask_1\t         LDRSW_DMA        0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_2\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_3\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_4\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_5\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_6\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_7\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_8\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_9\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_10\t         LDRSW_DMA\t  0\t   DRAM\t              32\t        1          Read\t           32\t     0\t             DMA ;\\nTask_1\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_2\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_3\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_4\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_5\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_6\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_7\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_8\t         STRB_DMA\t  0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_9\t         STRB_DMA         0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;\\nTask_10\t         STRB_DMA         0\t   DRAM\t              32\t        1          Write           32\t     0\t             DMA ;</td></tr><tr><td>Input_Fields</td><td>&quot;ID&quot;</td><td>&quot;ID&quot;</td></tr><tr><td>Lookup_Fields</td><td>&quot;ID&quot;</td><td>&quot;ID&quot;</td></tr><tr><td>Output_Expression</td><td>&quot;output = match&quot; /* FORMAT output = match.fieldb */</td><td>&quot;output = match&quot;</td></tr><tr><td>Mode</td><td>Read</td><td>Read</td></tr></table> <h2>DMA</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>DMA_Controller_Name</td><td>&quot;DMA&quot;</td><td>&quot;DMA&quot;</td></tr><tr><td>Memory_Database_Reference</td><td>&quot;DMADatabase&quot;</td><td>&quot;DMADatabase&quot;</td></tr><tr><td>DMA_to_Device_Cycles</td><td>1</td><td>&quot;1&quot;</td></tr><tr><td>DMA_to_Device_Address</td><td>DS_Fld_Name_or_Integer</td><td>&quot;DS_Fld_Name_or_Integer&quot;</td></tr><tr><td>Device_to_DMA_Cycles</td><td>1</td><td>&quot;1&quot;</td></tr><tr><td>Channel_FIFO_Buffers</td><td>10</td><td>&quot;10&quot;</td></tr><tr><td>Speed_Mhz</td><td>500.0</td><td>&quot;500.0&quot;</td></tr><tr><td>DMA_Channels</td><td>2</td><td>2</td></tr><tr><td>Width_Bytes</td><td>4</td><td>4</td></tr></table> <h2>BusInterface</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_1&quot;</td><td>&quot;Bus_1&quot;</td></tr><tr><td>Port_Name_1</td><td>&quot;Port_1&quot;</td><td>&quot;Port_1&quot;</td></tr><tr><td>Port_Name_2</td><td>&quot;Port_2&quot;</td><td>&quot;Port_2&quot;</td></tr><tr><td>FIFO_Buffers</td><td>8</td><td>8</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr></table>

ARM Cortex A53 Processor System

This model shows VisualSim's Cortex A53 implementation by simulating a network application task profile provided
by NpBench. As soon as the model opens click on the RUN button (Green) in the toolbar at the top. You will see a
bunch of windows opening. These windows show the results obtained from the simulation such as Task Latency,
Task Set Latency, Power Consumption, and Statistics of the components of the model.

For further exploration of the model:
1) Double-Click on any block to get the specifications and parameters used for the block.
2)Some blocks, called hierarchical blocks, contain components within them. To see the working of a hierarchical block,
Right-Click on the block and select "Open Block". The hierarchical blocks present in this model are "Task Generator" and "Plots"

---------------------------------------Cortex A53 Model---------------------------------------

The Task Generator Hierarchical Block contains a traffic block, expression lists and a queue to simulate a set of 10 tasks in order.
The task profile is based on NpBench: A Network Processor benchmark tool. Each Task contains a random selection of instructions
based on the percentage of the kind of instruction defined in the task profile. The task generator links to an instuction mix table
which contains all details relating to the input tasks.

The simulated tasks are given to the Processor Block. Here, all the instructions are executed according to the details filled in the
"ARMv8_Instruction_Set" Block and the pipeline specified within the Processor block. All the executed instructions come out
of the processor through the output port of the block and the data structures from this port are used for plotting results.

The Processor is also connected to an external Cache and DRAM via a bus. These are memory blocks were the processor gets
data from when a miss occurs within internal cache. It also has DMA connected, which will give the processor the power to
access the DRAM directly.