diff --git a/ip/commctrl/README.md b/ip/commctrl/README.md index 8f36e16e7ee35d6fe5419a8f9a5cbaf55f0d3cbe..881d8dfd2480f89fafac5a2c3b307efb3525e47d 100644 --- a/ip/commctrl/README.md +++ b/ip/commctrl/README.md @@ -1,9 +1,12 @@ -# COMMCTRL Master +# UART AHB Master (COMMCTRL) ## Introduction -COMMCTRL is intended to control and communicate with the SoC using UART or Scan Chain -It works as a Master module attached to AHB-Lite bus system in SoC. +COMMCTRL is an AHB bus master that allows for straightforward off-chip hosting over a simple USB interface. This makes test chip bring up and testing extremely quick and easy! + +The off-chip hosting uses the standard UART protocol and therefore requires nothing more complicated than a simple terminal app for interactive tests. For scripted tests, any UART library can be used, e.g. `pyserial` in a Python script. + +## Description Usage: - Initialize SRAMs attached to AHB bus @@ -20,8 +23,9 @@ Usage: <img src="commctrl_block_diagram.png"/> -## Description -### UART + +### UART Protocal + - UART Configurations - Start bit : 1 bit - Data bit : 8 bits @@ -90,7 +94,7 @@ Usage: ### ERROR Code #### Decode Error -|PRIORITY|Error Code|Name|HOW TO FIX| +|PRIORITY|Error Code|Name|Resolution| |:---:|:---:|:---:|:--- | |0|10|Instruction Size|For Write, Instruction size should be 23<br>For Read, Instruction size should be between 12 and 23| |1|11|Instruction Type|For Write, BYTE0 should be W or w<br>For Read, BYTE0 should be R or r| @@ -123,38 +127,38 @@ Usage: #### Examples - **Normal AHB Write/Read transactions** - Write<br> - W 0x00000000 0x12341234<br> - W 0x00000004 0x43214321 + `W 0x00000000 0x12341234`<br> + `W 0x00000004 0x43214321` - Read<br> - R 0x00000000<br> + `R 0x00000000`<br> HRDATA: 0x12341234<br> - R 0x00000004 2032<br> + `R 0x00000004 2032`<br> HRDATA: 0x43214321 - **HMSEL Write/Read transaction** - Write<br> - W 0x10000000 0x00000001 + `W 0x10000000 0x00000001` - Read<br> - R 0x10000000<br> + `R 0x10000000`<br> HMSEL: 1 - **Decode Error** - **Instruction Size Error**<br> - W 0X00000004 0X2000456<br> + `W 0X00000004 0X2000456`<br> DECODE_ERROR: 10 - **Separator Error**<br> - W 3X00000004 0X20000456<br> + `W 3X00000004 0X20000456`<br> DECODE_ERROR: 20 - **Address Byte Error**<br> - W 0XP0000000 0X2000FC00<br> + `W 0XP0000000 0X2000FC00`<br> DECODE_ERROR: 37 - **Write Data Byte Error**<br> - W 0X00000000 0X2U00FC00<br> + `W 0X00000000 0X2U00FC00`<br> DECODE_ERROR: 46 - **AHB Error**<br> - **Unmapped Region Access Error**<br> - W 0X70000010 0X00000000<br> + `W 0X70000010 0X00000000`<br> AHB_ERROR: HADDR=0X70000010<br> - R 0XFFFFFFFC<br> + `R 0XFFFFFFFC`<br> AHB_ERROR: HADDR=0XFFFFFFFC<br>