Download presentation
Presentation is loading. Please wait.
1
An Automatic AMBA Wrapper Generation Tool for Embedded Cores Laboratory for Reliable Computing (LaRC) Electrical Engineering Department National Tsing Hua University
2
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 2 OutlineOutline Introduction Template and Configuration Verification and Simulation Result Conclusion
3
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 3 OutlineOutline Introduction AMBA System AMBA Wrapper Generation Tool Template and Configuration Verification and Simulation Result Conclusion
4
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 4 AMBA System Advanced Microcontroller Bus Architecture Distinct Buses Defined within AMBA Advanced High-performance Bus (AHB) Advanced System Bus (ASB) Advanced Peripheral Bus (APB)
5
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 5 AMBA System
6
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 6 AHB Model Diagram
7
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 7 AHB Multiplexer Scheme
8
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 8 AHB Basic Transfer Cycles
9
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 9 Overview of AHB Wrapper Generation Tool
10
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 10 The Flow to Use Tool
11
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 11 Software System
12
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 12 OutlineOutline Introduction Template and Configuration AHB Slave AHB Master Verification and Simulation Result Conclusion
13
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 13 AHB Slave Template Interface Define some established signals for user to choose.
14
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 14 AHB Slave Template WR_valid: this is a signal from Wrapper to slave IP core. Its function is to indicate that write data is valid or not. WR_valid: connected_port_name,, time_offset WR_valid: wr_valid, high, 1 Without WR_ready With WR_ready
15
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 15 AHB Slave Template RD_valid: this is a signal from Wrapper to slave IP core. Its function is to indicate that Wrapper will read data from slave, that is, Wrapper is ready to be transferred data from slave. RD_valid: connected_port_name,, time_offset RD_valid: rd_valid, high, 1 Wrapper Without RD_ready Wrapper With RD_ready
16
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 16 AHB Slave Template Range[N-1:0]: this is a signal from Wrapper to slave IP core. Its function is to decode address and activate some signal high or low. And ‘ N ’ is an arbitrarily positive integer. Range: [, range_number, {connected_port_name, address_mask_pattern,, delay}] Range: Yes, 2, dec_out1, 8000_xxxx, high, 0, dec_out2, 8100_xxxx, low, 1
17
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 17 AHB Slave Template Start_WR: Its function is to indicate that an AHB master writes the first transfer of a burst. End_WR: Its function is to indicate that an AHB master writes the last transfer of a burst. Start_WR: [, connected_port_name, start_address,, time_offset] Start_WR: Yes, init, 0, high, 0 End_WR: [, connected_port_name, start_address,, time_offset] End_WR: Yes, last, 0, high, 0
18
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 18 AHB Slave Template Chip_select: this is a signal from Wrapper to slave IP core. Its function is to enable the slave core. It ’ s timing can be specified by time offset with respect to the reference cycle. Chip_select: [, connected_port_name,, time_offset] Chip_select: yes, cen, low, 1
19
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 19 AHB Slave Template WR_Addr: this is a signal from Wrapper to slave IP core. Its function is to translate AHB address to IP core or to translate IP address to AHB. WR_Addr: connected_port_name, bit_width, mask_pattern, time_offset WR_Addr: waddr_porta, 16, 0000_ffff, 1 WR_Data: this is a signal from Wrapper to slave IP core. It carries write data from Wrapper to IP core. It is allowed that there are several write data ports. WR_data: connected_port_name, bit_width, time_offset, address_mask_pattern WR_data: wdata_porta, 32, 1, 6000_xxxx RD_Data: this is a signal from slave IP core to Wrapper. It carries read data from IP core to Wrapper. It is allowed that there are several read data ports. RD_data: connected_port_name, bit_width, address_mask_pattern RD_data: rdata_porta, 32, 6100_xxxx
20
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 20 AHB Slave Template Example Range: Yes, 2, dec_out1, 8000_xxxx, high, 0, dec_out2, 8100_xxxx, low, 1 WR_valid: wr_valid, high, 1 RD_valid: rd_valid, high, 1 WR_Addr: address, 16, 0000_ffff, 1 WR_data: data_a, 32, 1, 6000_xxx WR_data: data_b, 16, 1, 6001_xxx RD_data: status, 32, 6100_xxx Range: Yes, 2, dec_out1, 8000_xxxx, high, 0, dec_out2, 8100_xxxx, low, 1 WR_valid: wr_valid, high, 1 RD_valid: rd_valid, high, 1 WR_Addr: address, 16, 0000_ffff, 1 WR_data: data_a, 32, 1, 6000_xxx WR_data: data_b, 16, 1, 6001_xxx RD_data: status, 32, 6100_xxx
21
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 21 AHB Master Template
22
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 22 Write Transactions of AHB Master Wrapper
23
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 23 Read Transactions of AHB Master Wrapper
24
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 24 OutlineOutline Introduction Template and Configuration Verification and Simulation Result AHB Slave Wrapper For Template Protocol For AMBA Compliance AHB Master Wrapper For Template Protocol For AMBA Compliance Conclusion
25
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 25 EASY (Example AMBA SYstem)
26
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 26 Verification of WR_valid, RD_valid, Chip_select, WR_data, RD_data and WR_addr 32 sequence address (HADDR) 0xE0000200 0xE0000204 0xE0000208 0xE000027C 5 wrapper type 5 types of timing-shift … …
27
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 27 Verification of AHB Slave Wrapper Simulation with a counter and a SRAM
28
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 28 Verification of Range Signal Range 0xE1000000, 0xE1000004, 0xE1000008, 0xE100000C, 0xE1000010 5 wrapper type: total pattern number is 25
29
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 29 Verification of Start_WR and End_WR Signals Start_WR 0xE2000000 HBURST[2:0] = 3’b001 (Incrementing Burst) 5 wrapper type: total pattern number is 5 End_WR 0xE3000000 HBURST[2:0] = 3’b001 (Incrementing Burst) 5 wrapper type: total pattern number is 5
30
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 30 AMBA-Compliant Verification for AHB Slave
31
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 31 Basic transfers Transfers to Other Slaves 0, 1 and greater than 1 wait state An ERROR response A RETRY response Basic Read transfer with Wait States Read transfers with IDLE cycles Read transfers with BUSY cycles Basic Write transfer with Wait States Write transfers with IDLE cycles Write transfers with BUSY cycles Testbench Requirements for a Slave Interface
32
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 32 Testbench Requirements for a Slave Interface Basic Burst transfers Error response
33
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 33 Verification Architecture of AHB Master Wrapper
34
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 34 Testbench to Verify AHB Master Wrapper For write/read data cmd_valid = 1 command: ADDRESS = 0x0~0x1F (cmd_latched) wdata_valid = 1 (wdata_latched) cmd_valid = 1 command: ADDRESS = 0x0~0x1F (cmd_latched) rdata_valid = 1 (rwdata_latched)
35
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 35 Testbench to Verify AHB Master Wrapper For response cmd_valid = 1 command: ADDRESS = 0xA0~0xA2 (resp_valid) resp_latched = 1 Check response Also check the operation of MERROR, MREADY and MRETRY Drive MADDR, MWRITE, MTRANS, MBUSREQ and MBURST respectively and then check the behavior of AHB
36
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 36 AMBA-Compliant Verification for AHB Master
37
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 37 Testbench Requirements for a Master Interface First Transfer Responses Ensure that all types of response are seen to the first transfer of burst. Middle Transfer Responses Last Transfer Responses Losing Bus Ownership Grant Response Combinations Retry Responses Multi-cycle Responses ERROR, RETRY and SPLIT with more than two cycles Busy Transfers Generate a BUSY transfer for all responses to the previous transfer
38
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 38 Experiment for IPs Compare the time of the two flow to produce AHB wrapper
39
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 39 Experiment Results AESRSA1RSA2HMAC Total Time (Manual) 3-day3~4 days7-day Total Time (Generator) 12 min.23 min.9 min.20 min. Manual Area (gates) 22132627394 Generator’s Area (gates) 257419341108 Area Overhead 16.29%28.53%24.91%16.40%
40
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 40 OutlineOutline Introduction Definition of Template Signals Definition of Configuration Simulation and Result Conclusion
41
Laboratory for Reliable Computing (LaRC)May-2004 Ming-Shen Liu & Cheng-Wen Wu 41 ConclusionConclusion The method provides a simple and direct way that designers’ IP core can be attached onto the AHB. Advantage of using Wrapper Generator: Reducing time of producing wrapper: Producing manually: hours Producing by Generator: minutes Reducing the opportunity of wrapper’s error: Disadvantage of using Wrapper Generator: Area overhead Can’t support every design type
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.