| |
| protocol: axi4lite |
| description: AXI4-Lite — simplified address-only bus |
| tags: [bus, memory-mapped, synchronous, AMBA] |
|
|
| interface_template: |
| signals: |
| |
| - {name: awvalid, direction: input, width: 1, description: Write address valid} |
| - {name: awready, direction: output, width: 1, description: Write address ready} |
| - {name: awaddr, direction: input, width: 32, description: Write address} |
| - {name: awprot, direction: input, width: 3, description: Protection type} |
| |
| - {name: wvalid, direction: input, width: 1, description: Write data valid} |
| - {name: wready, direction: output, width: 1, description: Write data ready} |
| - {name: wdata, direction: input, width: 32, description: Write data} |
| - {name: wstrb, direction: input, width: 4, description: Write strobes} |
| |
| - {name: bvalid, direction: output, width: 1, description: Write response valid} |
| - {name: bready, direction: input, width: 1, description: Write response ready} |
| - {name: bresp, direction: output, width: 2, description: Write response} |
| |
| - {name: arvalid, direction: input, width: 1, description: Read address valid} |
| - {name: arready, direction: output, width: 1, description: Read address ready} |
| - {name: araddr, direction: input, width: 32, description: Read address} |
| - {name: arprot, direction: input, width: 3, description: Protection type} |
| |
| - {name: rvalid, direction: output, width: 1, description: Read data valid} |
| - {name: rready, direction: input, width: 1, description: Read data ready} |
| - {name: rdata, direction: output, width: 32, description: Read data} |
| - {name: rresp, direction: output, width: 2, description: Read response} |
|
|
| config_parameters: |
| - {name: ADDR_WIDTH, type: int, default: 32, enum: [12, 16, 32]} |
| - {name: DATA_WIDTH, type: int, default: 32, enum: [32, 64]} |
|
|
| register_template: |
| - name: AXI_CTRL |
| address: 0x0000 |
| access: rw |
| fields: |
| - {name: enable, bits: 0, description: Core enable} |
| - {name: irq_en, bits: 1, description: Interrupt enable} |
| - name: AXI_STATUS |
| address: 0x0004 |
| access: ro |
| fields: |
| - {name: ready, bits: 0, description: Core ready} |
| - {name: error, bits: 1, description: Error detected} |
|
|
| sequence_template: |
| name: axi4lite_sequence |
| body: | |
| // AXI4-Lite read-modify-write sequence |
| drv.axi_read_reg(base_addr + offset, read_data); |
| read_data[field] = value; |
| drv.axi_write_reg(base_addr + offset, read_data); |
| |
| coverage_template: |
| - name: axi_cg |
| type: covergroup |
| items: |
| - {name: cg_resp, type: coverpoint, expression: {bresp, rresp}} |
| - {name: cg_addr, type: coverpoint, expression: {awaddr, araddr}} |
|
|