Home

Processor Local Bus Functional Model Toolkit User`s Manual

image

Contents

1. OPB Arbiter gt gt Processor Core gt y y 3 Data Instruction DMA PLB to OPB OPB to PLB DCR B D Cache Unit Cache Unit gt Controller gt Bridge Bridge 0 us y Q A A 2 OPB O TS Master 2 2 D A Y v a5 Processor Local Bus GPB lt 5 lt gt Slave lt O 3 v x Internal 9 External Peripheral Controller Memory Controller lt gt Peripheral SRAM External External t SDRAM DCR Bus ROM Peripheral Bus Master Controller Hd Figure 1 Processor Local Bus Interconnection As shown in Figure 1 the on chip bus structure provides a link between the processor core and other peripherals which consist of PLB and OPB master and slave devices The processor local bus PLB is the high performance bus used to access memory through the bus interface units The two bus interface units shown above external peripheral controller and memory controller are the PLB slaves The processor core has two PLB master connections one for instruction cache and one for data cache Attached to the PLB is also the direct memory access DMA controller which is a PLB master device used in data intensive applications to improve data transfer performance Lower performance peripherals Such as OPB master slave and other internal peripherals are attached to the on chip peripheral bus OPB A bridge is provided betwee
2. E O S Processor Local Bus Core re aa E PLB Monitor PLB PLB PLB PLB Slave 0 Slave 1 Slave 2 Slave 3 Model Model Model Model Figure 3 PLB Toolkit Testbench plb_complex vhd v 3 1 Programmable PLB Data Bus Width and Automatic Replication The PLB toolkit test bench uses a constant called PLB_DATA_BUS_WIDTH in declaring the actual PLB arbiter data bus signals This constant defaults to 128 for the PLB 4 x toolkit but may be changed to be 64 or 32 for other PLB arbiter implementations The toolkit will automatically scale the model I O s and bus operations based on the PLB_DATA_BUS_WIDTH constant In addition to programmable arbiter data bus widths the PLB Test Bench contains logic to automatically perform the necessary Byte Enable BE and Data Bus replication as described by the PLB 4 x Bus Architecture specification This replication is performed when necessary as smaller PLB masters and Slaves are connected to a wider data path PLB Arbiter The master BE s and write data bus wrDbus are replicated to the arbiter and the slave read data bus rdDbus is also replicated to the arbiter when necessary The test bench uses the msize ssize signals from the masters and slave together with other bus control signals to automatically generate a mirror signal Version 4 9 2 PLB Toolkit Test Bench 9 3 2 Instantiating PLB Slave Designs Unde
3. Transfer Qualifiers Mn_request Mn_priority 0 1 Mn_busLock Mn_RNW Mn_BE 0 3 Mn_size 0 3 K Joo00 Mn_type 0 2 000 Mn_abort E Mn_ABus 0 31 Av PLB_PAValid ji SI wait X JIL D Next Rd Avalid Nex Wr Avalid DA ASS SI AddrAck Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 0000 SI rdWdAdar 0 3 0000 SI rdDAck SI rdComp Mn rdBurst Figure 9 Write Transfers set device path plb complex plb masterO device type plb master mem init addr 00000000 data 00010203 write addr 00000000 size 0000 be 1111 send level 0 set device path plb_complex plb_slave0 device_type plb_slave Initialize device O mem_init addr 00000000 data 00010203 write_response aack_delay 3 dack_delay 3 mem_check level 0 addr 00000000 data 00010203 Version 4 9 2 PLB Bus Timing 55 7 3 Transfer Abort Figure 10 shows a transfer aborted by the master in the same clock cycle the request was being acknowledged by the slave Cycle 0 1 2 3 4 5 6 7 8 9 SYS plbCik Transfer Qualifiers Mn_request A Mn_priority 0 1 Y vali Mn_busLock Write Data Bus Mn_wrDBus 0 31 SI wrDAck SI wrComp Mn RNW
4. 1 AAA A i ym 11 1411 1711 0000 gooo gooo gooo 000 X o00 X o00 X o00 Y CLIO an Kai NE NE Er Y 1 Y 243 41 A ai 0000 0000 X DA D 2 D A3 DAA 0000 i 0000 PA 2 V3 Va a 203 V2Na fy 4 Figure 11 Back to Back Read Transfers mem init addr 0000000c data 0c0d0e0f read addr 00000000 size 0000 be 1111 read addr 00000004 size 0000 be 1111 read addr 00000008 size 0000 be 1111 read addr 0000000c size 0000 be 1111 Version 4 9 2 path plb_complex plb_master0 device_type plb_master addr 00000000 data 00010203 addr 00000004 data 04050607 addr 00000008 data 08090a0b PLB Bus Timing 57 send level 0 set device path plb_complex plb_slave0 device_type plb_slave Initialize device O mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f read response aack delay 0 dack delay 0 read response aack delay 0 dack delay 0 read response aack delay 0 dack delay 0 read response aack delay 0 dack delay 0 mem check level 0 addr 00000000 data 00010203 mem check level 0 addr 00000004 data 04050607 mem_check level 0 addr 00000008 data 08090a0b mem_check level 0 addr 0000000c data OcOd0e0f 58 Processor Local Bus Functional Model Toolkit Vers
5. 4 byte SLAVE3_ADDR_HI_1 4 byte Address map range 0 1 for slave instantiation 3 SLAVE4_ADDR_LO_0 4 byte SLAVE4_ADDR_HI_0 4 byte SLAVE4_ADDR_LO_1 4 byte SLAVE4_ADDR_HI_1 4 byte Address map range 0 1 for slave instantiation 4 SLAVE5_ADDR_LO_0 4 byte SLAVE5_ADDR_HI_0 4 byte SLAVE5_ADDR_LO_1 4 byte SLAVE5_ADDR_HI_1 4 byte Address map range 0 1 for slave instantiation 5 SLAVE6_ADDR_LO_0 4 byte SLAVE6_ADDR_HI_0 4 byte SLAVE6_ADDR_LO_1 4 byte SLAVE6 ADDR HI 1 4 byte Address map range 0 1 for slave instantiation 6 SLAVE7_ADDR_LO_0 4 byte SLAVE7_ADDR_HI_0 4 byte SLAVE7_ADDR_LO_1 4 byte SLAVE7_ADDR_HI_1 4 byte Address map range 0 1 for slave instantiation 7 Example set_device path plb_complex mon device_type plb_monitor configure SLAVEO ADDR LO 0 00000000 slave O range configure SLAVEO_ADDR_HI_0 0003FFFF configure SLAVEO ADDR LO 1 FFFFO000 slave O range hi configure SLAVEO_ADDR_HI_1 FFFFFFFF configure SLAVE1 ADDR LO 0 00040000 slave 1 range ebiu configure SLAVE1_ADDR_HI_0 0007FFFF configure SLAVE2_ADDR_LO_0 00080000 configure SLAVE2 ADDR HI 0 000BFFFF configure SLAVE3 ADDR LO 0 000C0000 slave 3 range slave 2 range Version 4 9 2 PLB Bus Functional Language 49 configure SLAVE3 ADDR HI 0 000FFFFF e ssize 2 bit e msize 2 bit 6 5 2 Read Write Commands The following set of parameters can be use
6. PLB Bus Models Chapter 6 PLB Bus Functional Language Chapter 7 PLB Bus Timing Chapter 8 PLB Compliance Checks To help readers find material in these chapters the book contains e Contents on page v e Figures on page ix e Tables on page xi e Index on page 93 xiv Processor Local Bus Functional Model Toolkit Version 4 9 2 Chapter 1 PLB Toolkit Overview Processor local bus PLB functional model toolkit provides unit and system level simulation and verification of ASICs and logic designs which comply with PLB architecture specifications The toolkit enables the designer to accelerate the design cycle time by identifying and addressing possible problems at an earlier stage of the design cycle The processor local bus PLB is designed to interface directly with the processor cores The primary goal of the PLB is to provide a standard interface between the processor cores and integrated bus controllers such that a library of processor cores and bus controllers can be developed for use in the CoretASIC development The PLB model toolkit facilitates unit and subsystem level simulation of logic designs which comply with the PLB architecture See the PLB architecture specifications for more information Figure 1 demonstrates how the processor local bus is inter connected for the purpose of Core ASIC development or system on a chip design
7. The following files represent the bus functional compiler and a readme file e BFC This Perl program parses the test cases written in the bus functional language and generates command files which are used to control the bus functional models e README This file provides information about the toolkit release including functional support level and any known errata e UPDATE LOG This file provides information about changes in the toolkit release relative to the previous release 2 2 Example Test Case File e sample bfl This file is an example PLB BFL file Note the path in the set_device command may be updated for user simulator hierarchical structure specifications e sample_auto bfl This example BFL file contains two masters and one slave that demonstrate the use of auto mode It also shows how to use the move command which switches a master from command mode to auto mode e mon init bfI This example BFL file contains monitor initialization statements for slave address range initialization used in PLB Monitor checking code Version 4 9 2 PLB Toolkit Environment 5 2 3 VHDL Verilog Files The following list of files comprise the models and test bench of the PLB toolkit The files should be compiled in the order specified plb_pkg vhd plb_pkg inc This HDL file is used by the PLB behavioral models to implement internal functions such as type conversion and other general procedures plb dci vhd plb_dcl inc plb_dcl
8. Version 4 9 2 Tables xi xii Processor Local Bus Functional Model Toolkit Version 4 9 2 About This Book This book begins with an overview followed by detailed information on Processor Local Bus Functional Model Toolkit environment testbench bus functional compiler models and language used in simulation The Processor Local Bus Functional Model Toolkit features Unit and subsystem level simulation of logic designs which comply with PLB architecture specifications e VHDL and verilog source model solutions with simulator independence e Bus functional command definition which generates and responds to different transaction types with varying delays e Bus functional compiler which generates model initialization files from bus functional commands e Bus protocol checking through the use of general purpose bus monitors Read and write data checking in masters and slaves e Model inter communication bus for event and transaction synchronization e Enables peripheral developers to verify and debug designs to assure bus compliance e Faster simulation run times than PPC BFM or FFM to generate bus traffic e Allows what if simulation scenarios using different master and slave configurations e Flexible and user friendly bus functional language BFL for quick generation of a variety of bus transactions e Hierarchical solution to verification Who Should Use This Book This book is for hardware software and applicati
9. 5 2 9 Branch Instructions The PLB master model contains a branch instruction so that users can implement loops and forward jumps The branch instruction uses the condition register to determine whether a jump is taken Any one of the Condition Register Fields CRO CR7 may be used in a branch instruction Branching between devices is not supported Version 4 9 2 PLB Bus Models 21 5 3 PLB Slave Model PLB slaves respond to cycles based on requests generated from the PLB core and they maintain an internal memory which can be initialized through the bus functional language This memory may be dynamically checked during simulation or when all bus transactions have completed Figure 6 demonstrates all PLB slave interface input output signals See PLB architecture specifications for detailed functional description of the signals PLB Bus Slave Interface Synch in gt PLB PAValid gt PLB busLock gt PLB_masterID 0 3 gt PLB RNW gt PLB BE 0 3 gt PLB size 0 3 gt PLB_type 0 2 gt PLB_MSize 0 1 gt PLB guarded gt PLB ordered gt Transfer Qualifiers PLB lockErr PLB abort gt PLB ABus 0 31 gt 4 Synch out e Sl_addrAck bi SI wait i SI_SSize 0 1 e Sl_rearbitr
10. Command The reg init command initializes an internal master register and is only executed at simulation time 0 DST 4 byte This parameter specifies the master 32 bit register to initialize DST may be CR SR or RO 31 Example reg_init RO 01020304 6 3 4 Read and Write Bus Cycle Commands The read write bus cycle commands initiate read or write cycles on the PLB bus by causing the bus master to assert the M_request signal These commands are executed sequentially therefore the completion of the cycles on the PLB bus influence the simulation time at which the commands are decoded The following is a list of possible read write parameters addr 4 8 byte This parameter specifies the 32 bit or 64 bit address tattr tattribute 4 hex default 0000 This parameter enables and specifies the tattribute value Example read reg delay 3 addr 00001000 size 0000 be 1111 tattr A001 be 4 8 16 bit This parameter specifies the Mn_BE byte enable signals of the PLB The valid byte enable combinations are listed in the PLB architecture specifications under transfer qualifier signals This parameter is required for all nonburst and non line transfers size 4 bit This parameter specifies the Mn_size signals of the PLB The valid size combinations are listed in the PLB architecture specifications under transfer qualifier signals msize 2 bit This parameter specifies the Mn_MSize signals of the PLB The valid size co
11. SI rdDAck SI rdBTerm SI rdDBus 0 31 SI rdWdAddr 0 3 SI wrComp SI wrDAck SI wrBTerm TTTTTT TT EFT FE TPT TEE AKAN KL AMONG SI MBusy 28 Processor Local Bus Functional Model Toolkit SI MErr Figure 7 PLB Monitor Interface PLB Monitor Interface From 1 to x sets of these master to PLB signals From 1 to x sets of these PLB to master signals PLB signals Or ed slave outputs to PLB core From 1 to y of these slave to PLB signals Version 4 9 2 Chapter 6 PLB Bus Functional Language The bus functional models in the PLB model toolkit can be controlled through command files which contain information on how to initiate and respond to bus cycles The command files also contain model configuration information The general form of a bus functional language command is specified as follows command parameters Parameters define attributes for bus cycles and configurations A bus command may have more than one parameter and have the following format parameter value A parameter value may be either a scalar or enumerated type that is a string Note 1 Bus functional language BFL comments are delineated using the or Y string All characters after the comment delineator are ignored by the BFL parser An end of line character terminates a comment Note 2 Bus functional language is case insensitive Note 3 A denotes an optional parameter otherw
12. 0 This parameter specifies the number of clocks to wait before asserting the SI rdComp or SI wrComp signals relative to the last SI_rdDAck or Sl wrDAck For reads a value of 0 will cause SI rdComp to be asserted 1 clock before the last SI rdDAck For writes a value of O will cause SI wrComp to be asserted together with the last SI wrDAck A non zero value will cause a per clock assertion delay relative to the fastest possible assertion time e wait delay integer range 0 to 255 This parameter specifies the number of clocks to wait before SI wait is asserted with respect to the assertion of PLB_PAValid or PLB SAValid If the parameter is not specified and wait disable is O Sl_wait is asserted whenever the PLB_ABus is within the slave address range rdWord mode 1 bit 0 sequential 1 target word first This parameter specifies the address incrementation order for the slave during line transfers The valid modes are sequential and target word first If this parameter is used in the configuration statement of the slave the rdWord_mode response parameter will be ignored e burst_term 32 bits or integer default 0 This parameter specifies the internal burst address or data acknowledge cycle to assert SI rdBTerm or Sl_wrBTerm signal If the slave is configured in burst address terminate mode a 32 bit address should be specified otherwise the cycle integer should be specified e SSize 2 bit This parameter specif
13. 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f write response aack delay 0 dack delay 0 write response aack delay 0 dack delay 0 write response aack delay 0 dack delay 0 write response aack delay 0 dack delay 0 mem check level 0 addr 00000000 data 00010203 mem check level 0 addr 00000004 data 04050607 mem_check level 0 addr 00000008 data 08090a0b mem_check level 0 addr 0000000c data OcOd0e0f 60 Processor Local Bus Functional Model Toolkit Version 4 9 2 7 6 Back to Back Read Write Read Write Transfers Figure 13 shows the operation of several back to back single read and write transfers on the PLB Cycle 0 1 2 3 4 5 6 7 8 9 SYS plbCik Transfer Qualifiers Mn_request 1 V 2 V 3 V 4 Mn priority 0 1 valia valia vala valia Mn_busLock WN A Mn RNW Mn BE 0 3 Gal 1711 a aty Mn_size 0 3 Y hoool goooy goool doooy Mn_type 0 2 J 000 l 000 y 000 1 000 y Mn_abor DAA Mn_ABus 0 31 A4 y A1 A2 mE PLB_PAValid 11213 41 SI_AddrAck on 1 21 4 3 y 4 po SI wait Write Data Bus Mn wrDBus 0 31 Da2 D a4y SI wrDAck A Pal SI wrComp Pal Pal Mn_wrBurst Read Data Bus E SI_rdDBus 0 31 0000 K D A1 0000 X D A3 X 0000 Y SI_rdWdAddr 0 3 00
14. 10 read write Index 93 PLB master mode 16 PLB master models alu instructions 20 branch intructions 21 burst operations 19 command modes 18 conversion cycles with different PLB device sizes 20 decode unit 17 general purpose register 20 internal master data memory 18 master model operation 17 PLB master mode 16 PLB model toolkit 1 bus functional compiler 12 bus functional language 29 bus models 14 compliance checks 69 features 2 timing 53 PLB model toolkit environment 5 PLB model toolkit testbench 9 PLB monitor 27 PLB slave commands 41 PLB slave designs undertest 10 PLB slave models burst modes 26 command modes 23 conversion cycles with different PLB device sizes 26 internal slave data memory structure 24 internal slave memory checking 26 operations 23 ordered write cycles 25 pipeline modes 27 PLB slave 22 slave bus command modes 23 PLB toolkit environment bus functional compiler files 5 example test case file 5 read me files 5 verilog files 6 vhdl files 6 PLB toolkit testbench ieee packages 10 PLB master designs under test 10 PLB slave designs under test 10 programmable PLB data bus width and auto matic replication 9 vhdl signal types 10 processor local bus signals 70 94 Processor Local Bus Functional Model Toolkit programmable PLB data bus width and automat ic replication 9 R read me files 5 read transfers 53 running 4x bus models in 3x mode 15 S signals processor local bus 70 simulator config
15. 1111 aack_delay 1 dack delay 2 6 5 3 Report Command This command allows the user to output the transactions that have been recorded by the monitor Without any arguments this command simply outputs the contents of the record arrays Version 4 9 2 PLB Bus Functional Language level integer range 0 to 31 default none The level parameter indicates to output the contents of the record arrays when the level is received through the use of a send command Multiple levels may be used in the same clock by listing more than one level The report command outputs the transactions that have been recorded by the monitor If no transactions have occurred across the bus then the report statement will not output anything Proper placement of report and or send level statements will ensure that pertinent transaction information is not lost during simulation Note The number of transactions the monitor may record is determined by the 52 PLB_MONITOR_RECORD_ARRAY_SIZE default value is 16 Once the arrays have been filled to capacity the loss of transactions will occur with each transaction that is recorded The user is responsible for determining the frequency to use the report command Processor Local Bus Functional Model Toolkit Version 4 9 2 Chapter 7 PLB Bus Timing This section on PLB timing provides various examples with timing diagrams consistent with PLB architecture specifications 7 1 Read Transfers Figure 8 shows th
16. PLB masters may be configured to act in either Command mode or Auto mode A description of these modes are Command Mode 18 Processor Local Bus Functional Model Toolkit Version 4 9 2 This mode enables the user to generate PLB read write bus transactions and perform other operations using commands which are decoded and executed from within the PLB master model These commands are parsed by the BFC loaded into the PLB master model at simulation time 0 and decoded from an internal command array after PLB reset is de asserted The following is an example of how to specify a 32 bit single read transaction read addr 00001000 size 0000 be 1111 Command mode is the default mode for the master model and the user is not required to specify a BFL configuration parameter for this mode Auto Mode This mode enables PLB read write bus cycles to be generated automatically without the need for read write master commands in the bfl In this mode the PLB master model will generate PLB cycles automatically based on an internal random number generator and pre programmed minimum and maximum delays of the available parameters The random number generator selects a new delay value between the minimum and maximum using a uniform distribution function The minimum and maximum range may be initialized by the user through a configuration command The PLB master model will use auto mode when a configuration command enables it such as configure master_auto_
17. Puan Qualifiers Write Write Bus E tot ae gt Control Pr ql ES amp Gating us E Logic iD 2 iD Control gt Control gt Read E lt 4 Data H H OR Read Bus PLB T lt Data Core i Bus PLB E Masters Ef lt _ Status amp T Status amp bel Control OR Control F A4 Figure 2 Physical Implementation of the PLB 4 Processor Local Bus Functional Model Toolkit Version 4 9 2 Chapter 2 PLB Toolkit Environment The PLB toolkit consists of a test bench bus functional models and a bus functional compiler The test bench instantiates the bus models a reference PLB core and design s under test The toolkit is intended to provide users with an environment in which they may initialize the toolkit models and simulate with the ability to detect error conditions in PLB bus protocol and also in data consistency Test cases are written using a bus functional language which is described in PLB Bus Functional Language on page 29 Note 1 All user verification procedures and regressions should include a released and gualified PLB core from the IBM Core ASIC library which will be included in the target product silicon Note 2 It is recommended that all simulations use the PLB monitor to ensure PLB compliance If the monitor is not connected the master model will not generate any requests and a warning message will be reported by the master 21 Bus Functional Compiler and ReadMe Files
18. Sln addrAck or the transfer is terminated through Mn abort or PLB MnRearbitrate or timeout Error 2 24 2 An error message is issued if this transfer gualifier does not match Mn type when PLB MnAddrAck is active 8 8 5 PLB TAttribute The following error messages are issued for this signal Error 2 27 1 An error message is issued when the PLB changes this transfer gualifier from the time a reguest to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort PLB MnRearbitrate or PLB MnTimeout Error 2 27 2 An error message is issued if this transfer qualifier does not match Mn TAttribute when PLB MnAddrAck is active 8 8 6 PLB lockErr The following error messages are issued for this signal 88 Error 2 28 1 Processor Local Bus Functional Model Toolkit Version 4 9 2 An error message is issued when the PLB changes this transfer gualifier from the time a reguest to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated through Mn abort or PLB MnRearbitrate or Timeout Error 2 28 2 An error message is issued if this transfer gualifier does not match Mn lockError when PLB MnAddrAck is active 8 8 7 PLB ABus PLB UAbus The following error messages are issued for this signal Error 2 29 1 An error message is issued when the PLB changes this transfer gualifier from the time a reguest to transfer is made until the addres
19. Tu 1 Mn BE 0 3 Ka y Mn size 0 3 Y booo 7 Mn_type 0 2 000 A Mn_abort eS TA Mn ABus 0 31 yo Y PLB_PAValid VW ext Wr Rd Avalid SI wait po SI AddrAck PA Mn_wrBurst Read Data Bus SI rdDBus 0 31 0000 SI_rdWdAddr 0 3 0000 SI_rdDAck SI rdComp Mn rdBurst Figure 10 Transfer Abort set device path plb complex plb masterO device type plb master mem init addr 00000000 data 00010203 write addr 00000000 size 0000 be 1111 abort 3 send level 0 set device path plb complex plb siave0 device type plb slave Initialize device O mem init addr 00000000 data 00010203 write response aack delay 3 dack delay 0 mem check level 0 addr 00000000 data 00010203 56 Processor Local Bus Functional Model Toolkit Version 4 9 2 7 4 Back to Back Read Transfers Figure 11 shows the operation of several back to back single read transfers on the PLB Cycle SYS_plbClk Transfer Qualifiers Mn_request Mn_priority 0 1 Mn_busLock Mn RNW Mn BE 0 3 Mn size 0 3 Mn type 0 2 Mn abort Mn ABus 0 31 PLB PAValid SI wait SI AddrAck Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 SI rdWdAdar 0 3 SI rdDAck SI rdComp Mn rdBurst set device mem_init mem_init A A mem_init a a K validX valid vafidX valid Y
20. a BFL file are independent of the slave read response write response and mem init commands Slave check addr array 0 to 31 bits O to 29 address bits 30 31 are unused Slave check data array 0 to 31 4 byte data field The default size of the slave check memory array is also 128 entries This may be increased or decreased by updating the slave check array size in the declaration HDL file of the toolkit 5 3 7 Burst Modes The PLB slave model supports the PLB burst protocol The model accesses the internal slave memory during the initial bus request and also during each data phases of the burst transfer The PLB Slave model supports two types of counting mechanisms for asserting sl rd wrBterm It can count by the number of clocks from the start of the data phase of the transaction or by the number of sI_rd wrDack assertions from the start of the transaction The PLB slave will assert the burst terminate signal when burst_term parameter is used and the corresponding count parameter has expired The PLB slave model also supports the PLB fixed length burst protocol The slave model will automatically assert the SI rd wrBterm signal when the fixed burst mode is enabled the PLB BE signal is non zero the PLB size signal indicates a burst cycle and the corresponding number of data transfers has occurred To enable fixed length burst in the slave model use the following slave configuration statement configure fixed burst
21. a octal word burst size and Mn_MSize indicates a 32 bit master 8 6 7 Mn_type 0 2 Master has a octal word burst size and Mn_MSize indicates a 64 bit master Master has a octal word burst size and Mn_MSize indicates a 128 bit master The following error messages are issued for this signal Error 1 7 1 An error message is issued when a master changes this transfer qualifier from when a request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort PLB MnRearbitrate or Mn Timeout 8 6 8 Mn TAttribute The following error messages are issued for this signal Error 1 10 1 An error message is issued when a master changes this transfer qualifier from when a request to transfer is made until the addressed slave asserts its Sln_addrAck or the transfer is terminated via Mn_abort PLB MnRearbitrate or Mn Timeout 8 6 9 Mn lockErr The following error messages are issued for this signal Error 1 11 1 Version 4 9 2 PLB Compliance Checks An error message is issued when a master changes this transfer gualifier from when a reguest to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort PLB MnRearbitrate or Mn Timeout 8 6 10 Mn_ABus Mn_UABus The following error messages are issued for this signal Error 1 12 1 An error message is issued when a master changes these transfer qualifiers from when a
22. asserting the first data acknowledge control signal for a read_response This parameter is relative to the earliest legal assertion of SI rdDAck write dack delay integer default 0 This parameter specifies the number of clocks to wait before asserting the first data acknowledge control signal for a write response This parameter is relative to the earliest legal assertion of SI wrDAck burst term mode enumerated type default cycle This parameter specifies whether the PLB slave behavior should terminate burst cycles based on the number of data transfers which have occurred or the number of clocks from the time the burst transaction starts The valid types are cycle or clk rdWord_mode 1 bit 0 sequential 1 target word first default 0 Processor Local Bus Functional Model Toolkit Version 4 9 2 This parameter specifies the address incrementation order for the slave during line transfers The valid modes are seguential and target word first When this parameter is used in the configuration statement of the slave the rdWord mode will be constant for the entire simulation session fixed burst mode 1 bit 0 disabled 1 enabled default 0 This parameter configures the slave to automatically assert the SI rd wrBterm signal when a fixed length burst cycle is in progress and the corresponding number of data transfer has occurred on the bus wait disable 1 bit 0 enabled 1 disabled default 0 This parameter spe
23. bits 0 63 of the SI rdDBus To configure data bus size of the PLB slave model use the following command configure SSize xx 26 Processor Local Bus Functional Model Toolkit Version 4 9 2 where xx is 00 for a 32 bit device 01 for a 64 bit device or 10 for a 128 bit device 5 3 9 Pipeline Modes The PLB slave model samples PLB SAvValid to detect the occurrence of pipelined address cycles on the PLB From a test case the user may selectively disable read or write address pipelining in the PLB slave model by setting the read write_addr_pipeline_mode parameters For example configure read addr pipeline disable 1 disable address pipelining for read cycles by ignoring PLB SAValid during read cycles Note Although address pipelining can be disabled in the PLB slave model by user configuration commands and also by simply not connecting the PLB_SAValid signal at the slave interfaces it is important to test pipelining conditions whenever a target system or follow on systems includes pipelining slaves Therefore complete and thorough verification with pipelining enabled and multiple slave devices is recommended for most functional verification efforts 5 4 PLB Monitor The PLB monitor is a model which samples all PLB signals in every clock cycle It checks for violations of the PLB architectural specification during simulation When a warning or error condition occurs by the PLB arbiter master or slave
24. codes or any line size code 010 Codes other than 0000 011 Codes other than 0000 100 Codes other than 0000 101 Codes other than 0000 110 Any of the reserved size codes Table 3 Mn_size Values Mn_size 0 3 Definition 0000 Transfer one to four bytes of a word starting at the target address 0001 Transfer the 4 word line containing the target word 0010 Transfer the 8 word line containing the target word 0011 Transfer the 16 word line containing the target word 0100 Reserved 0101 Reserved 0110 Reserved 0111 Reserved 1000 Burst Transfer Bytes Length determined by master 1001 Burst Transfer Halfwords Length determined by master 74 Processor Local Bus Functional Model Toolkit Version 4 9 2 Table 3 Mn size Values Continued Mn size 0 3 Definition 1010 Burst Transfer Words Length determined by master 1011 Burst Transfer Double words Length determined by master 1100 Burst Transfer Quad words Length determined by master 1101 Burst Transfer Octal words Length determined by master 1110 Reserved 1111 Reserved Error 1 6 3 An error message is issued When master has a double word burst size and Mn_MSize indicates a 32 bit master When master has a quad word burst size and Mn_MSize indicates a 32 bit master When master has a quad word burst size and Mn_MSize indicates a 64 bit master When master has
25. from the cycle after slave asserts its Sln addrAck to the cycle it asserts its Sln rdComp Error 2 17 4 An error message is issued when more than one slave asserts SIn_rdComp in the same clock Version 4 9 2 PLB Compliance Checks 85 Error 2 17 5 An error message is issued when this signal is asserted before a variable length burst transaction is complete last rddack received or rdbterm asserted Error 2 17 6 An error message is issued when this signal is asserted before the last rddack of the transaction is received 8 7 18 Sin rdBTerm The following error messages are issued for this signal Error 2 18 1 An error message is issued if SIn_rdBTerm is active outside of allowed window that is from the cycle after slave asserts its SIn_addrAck or arbiter asserts rdprim to the cycle it asserts its Sin rdComp Note 2 18 2 An note message is issued if SIn_rdBTerm is not asserted for a fixed length burst transfer or the last SI rdDAck was not asserted with the SI rdBTerm Warning 2 18 3 A warning message is issued if SIn_rdBTerm is not asserted for a guarded burst transfer which crosses a 1k address boundary 8 7 19 Sin MBusy 0 15 The following errors are issued to this signal Error 2 19 1 An error message is issued when a slave does not assert and hold active the corresponding bit of its SIn_MBusy bus from the time the slave asserts it SIn_addrAck until the read transfer is complete Error 2 19 2 An error
26. message is issued when a slave does not assert and hold active the corresponding bit of its Sin MBusy bus from the time the slave asserts it SIn_addrAck until the write transfer is complete 8 7 20 Sin Mrd wrErr 0 15 The following error messages are issued for this signal 86 Error 2 20 1 An error message is issued when a slave asserts its Sl Mrd wrErr signal to master n without the corresponding SI MBusy SI Mrddack or SI Mwrdack signal asserted Processor Local Bus Functional Model Toolkit Version 4 9 2 8 8 PLB Interface Checks 8 8 1 PLB RNW The following error messages are issued for this signal Error 2 21 1 An error message is issued when the PLB changes this transfer gualifier from the time a reguest to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated through Mn abort or PLB MnRearbitrate or timeout Error 2 21 2 An error message is issued if this transfer gualifier does not match Mn RNW of the reguesting master when PLB MnAdadrAck is active 8 8 2 PLB BE The following error messages are issued for this signal Error 2 22 1 An error message is issued when the PLB changes this transfer gualifier from the time a reguest to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort or PLB_MnRearbitrate or timeout Error 2 22 2 An error message is issued if this transfer qualifier has no enabled bytes all z
27. messages are issued for this signal Error 1 16 1 An error message is issued when a master terminates a write burst transfer by deasserting its Mn_wrBurst and re asserts its Mn_wrBurst before receiving the last wrDAck Error 1 16 2 An error message is issued if Mn WrBurst is active in the cycle after PLB MwrBTerm is asserted Error 1 16 3 An error message is issued if Mn_WrBurst is asserted without a valid burst request as indicated by Mn_size Version 4 9 2 PLB Compliance Checks 77 Error 1 16 4 An error message is issued when Mn_WrBurst is active and SYS_plbReset is active 8 6 15 PLB MnAddrAck The following error messages are issued for this signal e Error 1 17 1 An error message is issued when this signal is active and the corresponding Mn_request is inactive Error 1 17 2 An error message is issued when this signal is active and the PLB_masterID identifies a different master as granted Error 1 17 3 An error message is issued if arbiter does not assert this signal when a time out occurs This check is not performed for PLB 4 x Error 1 17 4 An error message is issued if PLB asserts PLB_MnAddrAck when a different master has locked the PLB Error 1 17 5 An error message is issued if PLB asserts more than one PLB_MnAddrAck in the same clock 8 6 16 PLB MnRearbitrate The following error messages are issued for this signal Error 1 18 1 An error message is issued when this signal is a
28. parameter can be programmed to a different number of beats than that specified on the byte enables When the BURST COUNT parameter is less than the BE data beat count the burst signal will be pre maturely de asserted When the BURST_COUNT is greater than the BE data beat count the master will continue bursting IF a slave burst terminate signal was not asserted to the master IT IS STRONGLY RECOMMENDED THAT LOGIC DESIGNS WHICH SUPPORT BURST AND FIXED LENGTH BURST BE TESTED THOROUGHLY WITH ALL COMBINATIONS OF BYTE ENABLES MASTER BURST ABORTS AND SLAVE BURST TERMINATES TO MAXIMIZE CORE COMPATIBILITY AND COMPLIANCE Version 4 9 2 PLB Bus Models 19 5 2 6 Conversion Cycles with Different PLB Device Sizes The PLB master model can be configured to be a 32 bit 64 bit or 128 bit device When the PLB master model receives a PLB_MnSSize with PLB_MnAddrAck which represents a slave that is smaller than the configured PLB master size Mn_Msize 0 1 the PLB master will automatically generate additional cycles to complete the original requested transaction These additional cycles can be referred to as conversion cycles For example a 64 bit PLB master will always generate one additional cycle when a 32 bit slave responds to a single transfer M Size 0000 read or write cycle For line transfers the PLB master completes the request when the appropriate number of words have been transferred as determined by the transaction width MSize SSize a
29. request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort PLB_MnRearbitrate or Mn_Timeout Error 1 12 2 An error message is issued when the Mn_Abus word address is non zero during a line write transfer Error 1 12 3 An error message is issued when the master has a non aligned half word burst address for half word burst transfers when the master has a non aligned word burst address for word burst transfers when the master has a non aligned double word burst address for double word burst transfers when the master has a non aligned quad word burst address for quad word burst transfers e Note1 12 4 An note message is issued when the Mn_Abus word address is non zero during a line write transfer 8 6 11 Mn abort The following error messages are issued for this signal Error 1 13 1 A warning message is issued if Mn_abort is asserted without a Mn_Request 8 6 12 Mn_wrDBus 0 PLB DATA BUS WIDTH The following error messages are issued for this signal Error 1 14 1 An error message is issued when a master changes this transfer qualifier from when a write request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort PLB_MnRearbitrate or Mn_Timeout Error 1 14 2 76 Processor Local Bus Functional Model Toolkit Version 4 9 2 An error message is issued when the first word o
30. request phase For example if ordered_probability 75 then Mn_Tattribute 8 will be asserted for 75 percent of the write requests from the master 6 3 1 3 Automatic Data Mode Configuration Parameters e master auto data boolean default false This parameter specifies whether the PLB master behavior should automatically generate data When the master model is configured for automatic data mode there is no need to initialize internal memory data since it is generated and checked using the BFM data generation function described in PLB Bus Functional Compiler on page 12 e data seed integer default 1 This parameter specifies the seed to be used for the auto data feature of the model The slave model forms a seed using this root_seed and the byte address The user may change the initial seed to meet the random number sequences which are generated which in turn will produce various slave data 6 3 2 Mem Init Command The mem init command initializes the internal master memory and is only executed at simulation time 0 e addr 4 8 byte This parameter specifies a master 32 bit or 64 bit address for data array initialization e data 4 8 byte This parameter specifies the master memory data to initialize in the corresponding PLB device Examples mem_init addr 00001000 data 01020304 mem init addr 00000100 data 01020304 00607080 34 Processor Local Bus Functional Model Toolkit Version 4 9 2 6 3 3 Reg Init
31. siave0 device type plb slave Initialize device O mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f write response aack delay 0 dack delay 0 mem_check level 0 addr 00000000 data 00010203 mem_check level 0 addr 00000004 data 04050607 mem_check level 0 addr 00000008 data 08090a0b mem_check level 0 addr 0000000c data OcOd0e0f 66 Processor Local Bus Functional Model Toolkit Version 4 9 2 7 9 Four word Line Read Followed By Four word Line Write Transfers Figure 16 shows the operation of a four word line read followed immediately by a four word line write on the PLB Cycle SYS plbCik Transfer Qualifiers Mn_request Mn_priority 0 1 Mn_busLock Mn RNW Mn BE 0 3 Mn size 0 3 Mn type 0 2 Mn abort Mn ABus 0 31 PLB PAValid SI addrAck Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 SI_rdWdAddr 0 3 SI rdDAck Sl_rdComp Mn_rdBurst slale 8 9 A K Too 001 Y 000 Koo AA ar Vaz y La Read ee vie Write AValid i E X AAD1 ae 3 A2 a UY Vo V Gani wo Ywi Yw2 Yw3 Y 0000 0000 X 0000 X 0001 X 0010 X 0011 Y 0000 oN YA Figure 16 Fo
32. throughout the simulation as a master configuration parameter Example configure msize 01 burst continue mode boolean default false When this parameter is set to true and a burst transfer is terminated early the master will automatically issue additional requests to satisfy the burst count Otherwise the master command which was terminated early by a slave or other cycle terminating condition such as master abort or rearbitrate will be considered complete msg_disable bit default 0 This parameter disables all message generation of the PLB master model including read data error message generation 6 3 1 2 Automatic Command Mode Configuration Parameters e master auto mode boolean default false 30 Processor Local Bus Functional Model Toolkit Version 4 9 2 This parameter specifies whether the PLB master behavior should automatically generate random bus reguests When the master model is configured for automatic mode there is no need to initialize read write commands since they are ignored while the bus cycle generation is enabled auto max cycle integer default 0 This parameter specifies the maximum number of cycles that will be generated automatically and complete on the bus If the default value of 0 is used cycles will be produced until the simulation is interrupted stopped auto synch level integer default none This parameter specifies the level on the synch bus that will be asserted wh
33. turn will produce varying slave data 6 42 Mem Init Command The mem init command initializes slave memory at simulation time 0 e addr 4 byte This parameter specifies the 32 bit address e data 4 byte This parameter specifies the slave memory data to initialize in the corresponding PLB device 6 4 3 Read Response Write Response Commands These commands specify attributes for a slave cycle read or write response when an address decode is true Read_response commands are used to initialize the PLB slave response e aack_delay integer default 0 This parameter specifies the number of clocks to wait before asserting Sl_addrAck from the time PLB_PAValid or PLB SAValid is active For example an aack_delay value of 0 will assert SI addrAck together with PLB PAValid and an aack_delay of 1 will assert Sl addrAck one clock after PLB PAValid is recognized e rearb delay integer default 0 This parameter specifies the number of clocks to wait before asserting the SI rearbitrate signal from the clock that PLB PAValid was previously asserted No SI addrAck is asserted if the rearb_delay parameter is used Note that rearb_delay is not a valid configuration e dack delay integer default 0 This parameter specifies the number of clocks to wait before asserting the first data acknowledge control signal for a read_response or write_response This parameter is relative to the earliest legal assertion of SI rdDAck a
34. 00 X 0000 Y X 0000 Y SI rdDAck la J3 SI_rdComp FER Mn_rdBurst Figure 13 Back to Back Read Write Read Write Set device path plb complex plb masterO device type plb master mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f read addr 00000000 size 0000 be 1111 write addr 00000004 size 0000 be 1111 read addr 00000008 size 0000 be 1111 Version 4 9 2 PLB Bus Timing write addr 0000000c size 0000 be 1111 send level 0 Set device path plb_complex plb_slave0 device_type plb_slave Initialize device O mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f read response aack delay 0 dack delay 0 write response aack delay 0 dack delay 0 read response aack delay 0 dack delay 0 write response aack delay 0 dack delay 0 mem_check level 0 addr 00000000 data 00010203 mem_check level 0 addr 00000004 data 04050607 mem_check level 0 addr 00000008 data 08090a0b mem_check level 0 addr 0000000c data OcOd0e0f 62 Processor Local Bus Functional Model Toolkit Version 4 9 2 7 7 Four word Line Read Transfers Figure 14 shows the operation of a single four word line read from a slave device which is capable of providing data in a single clock cycle Cycle SYS_pIbCik Transfer Qualifiers Mn_re
35. 10 Instantiating PLB Master Designs Under Test eee 10 VHDE Signal Type s oa tenan A A Ka bao Kabau ae na 10 IEEE Package A Bana NN Bag ane aa ARRE 10 Chapter 4 PLB Bus Functional Compiler W ccc eee 12 Simulator Configuration 2sisaseehs ee ek mn LN nana a Ta pene 12 Declarations File ACCESS scaccce dane othe km nan id randa aa Len bhn ajaa 12 Invoking the Bus Functional Compiler ii 13 Initializing the Bus Functional Models Wan 13 Chapter 5 PLB Bus Models ccccococococococococcoccoccococcooc 14 Running the 4X Bus Models in 3X Mode ii 15 PEB Master Model iesi 0 waw ont Beda LA AA an 16 Master Model Operation ii 17 Decode Unitaria O mem AAA ak A Sree teed nan aan 17 Internal Master Data Memory ii 18 Command Modes Semen i ok eee ene ok ee ein En Tenda ete Kita 18 Burst Operations ii 19 Conversion Cycles with Different PLB Device Sizes 0 eee 20 General Purpose and Branch Processor Registers 20 ALU Instructions ii 20 Branch Instructions ii 21 PLB Slave Model s i 2 2 2 1 one send teas BR REA Beet be ee es PE OE ERE ea A 22 Slave Model Operation wo ki ee ama oa dion sa Gee Dee ee kemana Sah 23 Slave Bus Commands and Modes ii 23 Version 4 9 2 Contents Command Modes 6 05 48 ieni eb hace Dan bale aoe ee Rd b
36. 2 PLB wrPrim The following error messages are issued for this signal e Error 2 34 1 An error message is issued if this signal is asserted without SIn_wrComp Error 2 34 2 An error message is issued if this signal is asserted without a secondary pipelined write transaction acknowledged 8 8 13 PLB Abort The following error messages are issued for this signal Error 2 35 1 An error message is issued if this transfer qualifier does not match Mn_Abort when PLB_MnAddrAck is active 8 8 14 PLB SrdDbus The following error messages are issued for this signal Error 2 36 1 An error message is issued if the PLB_sRdDbus is not properly replicated as indicated in the architecture specification for smaller slaves connected to larger width PLB Arbiters 8 9 Time Out Handshake Checks For 3 x PLB The following checks relate specifically to the event of time out as described in the beginning of this document Furthermore these checks are implemented based on two implementation assumptions 1 The arbiter will respond with required handshaking to the master within two cycles of time out 2 All required handshaking to complete the timed out request is done in a minimal number of cycles For example in the event of a 4 word line read transfer that timed out then 4 successive PLB_rdDAcks are to be issued with accompanying PLB_MErr with no wait cycles between these 8 9 1 PLB MnwrBTerm The following error messages are issued for
37. 3x inc This HDL file contains the component and constant declarations for the toolkit behavioral models plb_master_comp vhd plb master comp v plb_master_comp3x v This HDL file represents a PLB master device It contains decode execute and bus logic to interface with the PLB bus It also contains an internal master memory plb_slave_comp vhd plb_slave_comp v plb_slave_comp3x v This HDL file represents a PLB slave device It contains interface with the PLB bus and also an internal memory plb monitor comp vhd plb_monitor_comp v plb monitor comp3x v This HDL file performs PLB cycle monitoring and protocol checking plb master vhd plb master v This HDL file is a wrapper for the PLB master component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit master model plb_slave vhd plb_slave v This HDL file is a wrapper for the PLB slave component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit slave model plb monitor vhd plb monitor v This HDL file is a wrapper for the PLB monitor component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit monitor model It is recommended that all simulations use the PLB monitor to ensure PLB compliance plb_master3x vhd plb_master3x v This HDL file is a compatibili
38. A aae 92 MAC ad a E A oe 93 viii Processor Local Bus Functional Model Toolkit Version 4 9 2 Figures Figure 1 Processor Local Bus Interconnection na 1 Figure 2 Physical Implementation of the PLB ee 4 Figure 3 PLB Toolkit Testbench plb complex Vhd V ii 9 Figure 4 PLB Master Interface ii 16 Figure 5 PLB Master Model Ja acces Peete tae pa Dak eee eee aa henna i ia Band 17 Figure 6 PLB Slave Interface ii 22 Figure 7 PLB Monitor Interface ii 28 Figure amp Read Transfers abon Peres Shen cds AN en EN BE Sa un aa 53 Figure 9 Write Transfers iire neema AA enak aa Ph she ee pa PE aa NA be Ta 55 Figure 10 Transfer AHO i004 sed Sen AA en O aE 56 Figure 11 Back to Back Read TransferS 57 Figure 12 Back to Back Write Transfers 0c 59 Figure 13 Back to Back Read Write Read Write Wa 61 Figure 14 Four Word Line Read in 63 Figure 15 Four Word Line Write na 65 Figure 16 Four Word Line Read followed by Four Word Line Write o o 67 Version 4 9 2 Figures ix Processor Local Bus Functional Model Toolkit Version 4 9 2 Tables Table 1 Summary of PLB Signals ii 70 Table 2 Mn type Values ii 74 Table 3 Mn size Values ii 74 Table 4 PLB type Values e ec ete eee 88
39. Ack or the transfer is terminated through Mn_abort PLB_MnRearbitrate or PLB_MnTimeout Error 2 6 2 4 An error message is issued if this signal is active when there is no Mn_request 8 7 7 PLB_MasterlD 0 3 The following error messages are issued for this signal 82 Error 2 7 1 An error message is issued when the PLB changes this transfer qualifier from the time when a request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated through Mn_abort PLB_MnRearbitrate or PLB_MnTimeout Processor Local Bus Functional Model Toolkit Version 4 9 2 Error 2 7 2 An error message is issued when the PLB is locked Mn busLock Mn Reguest and PLB MnaddrAck were sampled active and PLB masteriD does not equal the locked master s id Error 2 7 3 An error message is issued if in the cycle following a rearbitrate with PLB_busLock inactive PLB PAValid is active and the current PLB masteriD is the same as in the previous cycle when rearbitrate was asserted 8 7 8 PLB rd wrpendPri 0 1 There are currently no protocol checks for this signal 8 7 9 PLB regPri 0 1 The following error messages are issued for this signal Error 2 9 2 An error message is issued when this bus does not equal the Mn_priority winner of primary and secondary requests when PLB MnAddrAck is asserted 8 7 10 PLB wrDBus The following error messages are issued for this signal e 2 10 1 An error mes
40. LB behavioral models to implement internal functions such as type conversion and other general functions plb_dcl_12m vhd plb_dcl_12m inc This HDL file contains the component and constant declarations for the toolkit behavioral models plb master comp vhd plb_master_comp v This HDL file represents a PLB master device It contains decode execute and bus logic to interface with the PLB bus It also contains an internal master memory plb slave comp12m vhd plb slave comp12m v This HDL file represents a PLB slave device It contains interface with the PLB bus and also an internal memory plb monitor comp12m vhd plb monitor comp12m v This HDL file performs PLB cycle monitoring and protocol checking It monitors up to 12 masters and 8 slaves which support 8 or 12 masters plb master vhd plb_master v This HDL file is a wrapper for the PLB master component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit master model plb_slave_12m vhd plb_slave_12m v This HDL file is a wrapper for the PLB slave component which is instantiated in this file lt supports 12 masters Users should instantiate this entity in test fixtures which include the PLB model toolkit slave model plb monitor 12m vhd plb_monitor_12m v This HDL file is a wrapper for the PLB monitor component which is instantiated in this file Users should instantiate this entity in test fixtures w
41. OMMON hee ees ead art aise 39 Move Command subiera ake Ken babat rabia Liaw hee hbo 39 Compare Command ii 40 Add Command 2 2 2528 tacts bed bet ee de ee ee it hd 40 Sub Command Mei Ata aa EN ee ea gee wae i ac ees 40 AND Command ii 40 OR Command cedro eee eed aan NE AAA peewee 1444 41 Shift left Command ii 41 Shift right Command ii 41 PLB Slave Commands are mona a cin ee Wae aka as ul ha nasa aula Aa 41 Configure Command sex eeen btn me Kantata ie PEN ENI LENSA E E 42 BFL Mode Configuration Parameters 0c eee eens 42 Automatic Command Mode Configuration Parameters 44 Automatic Data Mode Configuration Parameters 0 0c ccc cee eee ene 45 Meminit O Command iii 46 Read Response Write Response Commands 0 0000 ce eee eee eee 46 Merr_Init Commands ia 47 Mem_Check Command ooo 48 PLB Monitor Commands in ee nee eee eee 48 Configure Command Lo 48 vi Processor Local Bus Functional Model Toolkit Version 4 9 2 Configuration Parameters sanaaa 48 Read Write Commands ii 50 Sample Monitor Read Write BFL 000 tees 50 Report Command ii 51 Chapter 7 PLB Bus Timings ccs ce asbes ew eel kw RAR mann eee Ka 53 Read Transterss mw da adas sie inh he wees Sod Sd e oA at eee 53 Write TransSters rusa tsubasa et
42. PLB device e level integer range 0 to 31 This parameter specifies which synchronization signal to wait for before checking the slave memory data e addr 4 byte This parameter specifies the 32 bit address data 4 byte This parameter specifies the slave memory data to check in the corresponding PLB device 6 5 PLB Monitor Commands The PLB Monitor contains registers for address mapping of slave instantiations Some of the monitor protocol checks use the address map to provide accurate messaging and perform the actual protocol checks It is required for the user to set up the Monitor register initializations for the slave address map 6 5 1 Configure Command The configure command allows the user to configure different PLB model attributes One or more parameters can be used with a single configure command and multiple configure commands may be used in a single test case It is important to note that the configure commands are only executed at time 0 in simulation 6 5 1 1 Configuration Parameters enable_timeout_report bit O disabled 1 enabled default disabled This parameter enables the monitor to give an error message specifying that a timeout occurred on the bus e addr_check_enable 1 bit 0 disabled 1 enabled default 0 This parameter enables monitor checks that use the slave address ranges as part of the check The monitor will default this parameter to disabled because the monitor cannot che
43. Processor Local Bus Functional Model Toolkit CoreConnect The system on a chip bus standard User s Manual Version 4 9 2 DCR PLB Toolkit DCR Toolkit OPB Toolkit SA 14 2542 11 Eleventh Edition June 2003 This edition of Processor Local Bus Functional Model Toolkit User s Manual applies to the IBM PLB toolkit until otherwise indicated in new versions or application notes The following paragraph does not apply to the United Kingdom or any country where such provisions are inconsistent with local law INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS MANUAL AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE Some states do not allow disclaimer of express or implied warranties in certain transactions therefore this statement may not apply to you IBM does not warrant that the products in this publication whether individually or as one or more groups will meet your requirements or that the publication or the accompanying product descriptions are error free This publication could contain technical inaccuracies or typographical errors Changes are periodically made to the information herein these changes will be incorporated in new editions of the publication IBM may make improvements and or changes in the prod
44. Processor Local Bus Functional Model Toolkit Version 4 9 2 A warning message of possible deadlock is issued when Master n has the bus locked and Mn busLock is not inactive for 2 clock cycles after PLB MnRearbitrate Mn Reguest and Mn busLock are sampled active with PLB MnAddrAck inactive Error 1 3 3 An error message is issued when Mn busLock is active and SYS plbReset is active Warning1 3 4 A warning message is issued when Mn busLock is de asserted during a master request phase before PLB MnaddrAck Mn abort MnTimeout or PLB MnRearbitrate is asserted Error 1 3 5 Reguesting master did not deassert Mn busLock for two cycles after a rearbitrated reguest ERROR 1 3 6 An error message is issued when Mn busLock is asserted for a reguesting master after a new request was started and before PLB MnAddrAck Mn abort PLB MnRearbitrate or MnTimeout 8 6 4 Mn RNW The following error messages are issued for this signal Error 1 4 1 An error message is issued when a master changes this transfer gualifier from when a reguest to transfer is made until PLB MnAddrAck Mn abort PLB MnRearbitrate or Mn Timeout is asserted 8 6 5 Mn BE 0 3 The following error messages are issued for this signal Error 1 5 1 An error message is issued when a master changes this transfer gualifier from when a reguest to transfer is made until PLB MnAddrAck Mn abort PLB MnRearbitrate or Mn Timeout is asserted Error 1 5 2 An error message is iss
45. ROUGHLY WITH ALL COMBINATIONS OF BYTE ENABLES MASTER BURST ABORTS AND SLAVE BURST TERMINATES TO MAXIMIZE CORE COMPATIBILITY AND COMPLIANCE burst_deassert_delay integer This parameter specifies the wait period for number of clocks after address acknowledge before de asserting the burst signal When this parameter is used instead of the burst_count parameter the PLB master model asserts its M_wr rdBurst signal and deasserts it after the number of clocks have been specified by this parameter the clock count starts when the transaction has been address acknowledged The master model waits for a final data acknowledge with its burst signal low and continues to the next instruction When this parameter is used together with the burst_count parameter the master will wait the specified number of clocks after the next to last rd wrDAck is sampled active to deassert the Mn_rd wrBurst signal e abort_delay integer This parameter specifies the number of clocks to wait before Mn_abort is asserted with respect to the assertion of Mn_request If the parameter is not specified Mn_abort is not asserted If PLB MAddrAck is sampled active before the abort signal is asserted the data phase is processed as it would be without the abort e priority 2 bit default 00 This parameter specifies the Mn_priority signals of the PLB rdword_mode 1 bit 0 sequential 1 target word first This parameter specifies the address intermediation orde
46. RdDBus 0 31 gt 4 Mn_rdBurst Figure 4 PLB Master Interface 16 Processor Local Bus Functional Model Toolkit Version 4 9 2 5 21 Master Model Operation The PLB master model operation section discusses the decode unit internal master data memory command modes burst modes conversion cycles with different PLB device sizes general purpose registers and ALU instructions and branch instructions The operations of PLB master model are shown in Figure 5 Bus Functional Language File 1 CLK Reset Decode Unit Bus Unit Bus Functional Cycle Info Compiler gt Cycle Queue Info Queue Request Command gt Command Bae a File Memor y Complete Interface S Logic 2 se e 2 2 Decode gt ple 8 Logic Memory e Logic E a N 8 y 3 a lt gt D fa v y Sim Info Figure 5 PLB Master Model 5 2 2 Decode Unit The PLB master model executes bus commands from internal command arrays which are loaded from the command file The command file is the file generated by the bus functional compiler When invoking the simulator the command file should be included so that the command arrays are initialized when the simulation model is loaded This is accomplished by using an include file parameter The master commands ar
47. SA ADP Schedule Contract with IBM Corporation Patents and Trademarks IBM may have patents or pending patent applications covering the subject matter in this publication The furnishing of this publication does not give you any license to these patents You can send license inguiries in writing to the IBM Director of Licensing IBM Corporation 208 Harbor Drive Stamford CT 06904 United States of America The following terms are trademarks of IBM Corporation IBM CoreConnect Other terms which are trademarks are the property of their respective owners Contents FigufeS oS ena ntah sae LIA eel MU Le PR AA ix Tables on aa AR AAA en an nu xi About This BOOK cs Gerd cad cancers aa al Si nan Ra RU ban ara Ga xiii Chapter 1 PLB Toolkit Overview 0 0 cc cee eee 1 PLB Toolkit Features 300050 Sete os One Tuna aves NBA AN aves See 2 PLB Features 16 2 sn a fais Sule Se ae NA dade Sul anda Lae Be 2 PLB Implementation ii 4 Chapter 2 PLB Toolkit Environment Wanna 5 Bus Functional Compiler and ReadMe Files cece eee eee 5 Example Test Case File ii 5 VHDL Verilog Files ii 6 VHDL Verilog Files for Crossbar Arbiter with crossbar monitor ii 7 Chapter 3 PLB Toolkit Test Bench 0 ccc eee 9 Programmable PLB Data Bus Width and Automatic Replication 9 Instantiating PLB Slave Designs Under Test na
48. al to the largest value of size_max including the burst_count_max if applicable can be completed without going outside of the address range msize_min max integer default 0 1 These parameters specify the range for Msize when master_auto_mode is true The model automatically assigns a random value to the Msize between and including the minimum and maximum values If the Msize parameter is also specified in a configure statement for the same master the minimum and maximum values will not be used even if the master is configured for auto_mode size_min max integer default 0 6 These parameters specify the range for m_size when master_auto_mode is true The model automatically assigns a random value to m_size between and including the minimum and maximum values All non valid sizes are automatically adjusted down to a size of 0000 because some sizes are reserved This means that is a user specifies a range of O to 12 that sizes of 4 5 6 and 7 are adjusted down to a single size 0000 transfer Also burst sizes are adjusted according to the master size msize This means that a 32 bit master will produce only fullword bursts a 64 bit master will produce only doubleword bursts and a 128 bit master will produce only quadword bursts Version 4 9 2 PLB Bus Functional Language 31 e size0 min max integer default 0 3 size1 min max integer default 8 12 These parameters should be used instead of size_min max when a use
49. alue These two parameters specify the 32 bit internal destination register to be updated and immediate integer value to indicate the number of bit positions to shift the specified register The DST must be RO 31 SR or CR Example shift right RO 1 6 4 PLB Slave Commands The PLB slave commands are categorized into model configuration memory initialization commands bus response commands and memory comparison check commands The model configuration commands are used to characterize the slave model by controlling the way in which it responds to PLB cycles The memory initialization commands are used to set up the slave memory before simulation starts The memory comparison check commands can be used to compare expected data with slave memory data during simulation The bus response commands are used to change the slave bus response parameters such as wait states and termination types Version 4 9 2 PLB Bus Functional Language 41 6 4 1 Configure Command The configure command allows the user to configure different PLB model attributes One or more parameters can be used with a single configure command and multiple configure commands may be used in a single test case It is important to note that the configure commands are only executed at time 0 in simulation 6 4 1 1 BFL Mode Configuration Parameters 42 aack_delay integer default 0 This parameter specifies the number of clocks to wait before asserting Sl_add
50. arra de det dee dan aad tre be newex 55 Transfer Abort been eh Be TE A SE eee ee ha ee ed 56 Back to Back Read Transfers 0 00 cc ee eee ees 57 Back to Back Write Transfers 0 0 0 0 ee eee ee eee 59 Back to Back Read Write Read Write TransfersS ees 61 Four word Line Read Transfers 2 0 0 0 0 ee ee eee eens 63 Four word Line Write Transfers 65 Four word Line Read Followed By Four word Line Write Transfers 67 Chapter 8 PLB Compliance Checks 0 0 0 ccc eee eee 69 Monitor Model darma a oie SEE eee eed A a el eR ide dee Dae Ba 69 Terminology secre ans wee wl ee BNN LN ee Qe a oe di AA A es 69 Address Map Set up Error ii 69 Slave Interface PLB Core OR Logic Error 0 000 eee eee 69 Signal Summary Table ii 70 Master Interface Checks ee nee eee 72 Mired SE ic an A edie Pe NG ae Ba ea ies a 72 Mni_priority 0 1 aan bhn na ASI A A ee E a ee 72 Mins BUSEOCK Ss Ana E oe area neta ana ky a en teas AA ane mare 72 MAsRNWa dea Caida ons asa lo At lo MINA Cala 10 AA Maan apa do at Lo MI NL AN ga 73 Mii BE 0 3 20 Ain aan ing ad aa lt 73 Mnisize 0 3 sesos Kg seba VER RB EN BE ARSA p WEA a a 74 LA 75 Mie TAI bUte i 222220 td DAA SA a E de 75 Mi SOCK ETM banner bean is tle Piece A ae ee igs 2 he Di 75 Mn_ABus Mn_UABUS 0 0 000 0 cc ee ee eee eens 76 Mine ADOM sassanida Gd dhan bana Beh od eek dha Ra oti Linen eke 76 Mn_
51. ate e SI_MBusy 0 15 e SI_MErr 0 15 PLB SAValid gt PLB rdPrim Address Pipelining PLB wrPrim gt PLB_wrDBus 0 31 gt PLB_wrBurst gt 4 SI wrDAck Write Data Bus i SI wrComp e Sl_wrBTerm PLB rdBurst gt lt SI rdDBus 0 31 4 SI_rdWdAddr 0 3 Read Data Bus 4 SI rdDAck lt Sl_rdComp 4 SI rdBTerm Figure 6 PLB Slave Interface 22 Processor Local Bus Functional Model Toolkit Version 4 9 2 5 31 Slave Model Operation The PLB slave model operation section discusses the slave bus commands and modes internal slave data memory structure and look up algorithms ordered write cycles PLB_ordered internal slave memory checking burst modes conversion cycles with different PLB device sizes and pipeline modes 5 3 2 Slave Bus Commands and Modes The PLB slave model responds to PLB memory cycles PLB_type 000 when there is a valid request on the PLB bus and the PLB address is within the PLB slave s configured address space Separate read_response and write_response commands allow programmable overlapped read and write data phases The slave model stores the read and write response parameters in separate command arrays which allows independent and parallel control of the data buses Although address phases occur sequentially it is possible for a slave to perform out of order memo
52. ation register of the internal register to be updated Example reg update R0 05060708 6 3 7 Send Command The send command causes a vectored intercommunication signal to be asserted at the corresponding level parameter and does not directly cause PLB bus activity The synch Out signal is asserted for one clock per send instruction and may be used to communicate between multiple model instantiations in order to coordinate bus activity The send is executed seguentially along with the read write commands and is a serializing instruction meaning that the model waits for all previously issued bus cycles to complete on the bus before sending its intercommunication signal level Jinteger range 0 to 31 The level parameter allows for one or more send signals to be asserted on the synch Out bus Multiple levels may be used in the same clock by listing more than one level Note that it is possible for a user to use the same intercommunication level with multiple masters however the assertion of the same level in the same clock by multiple masters will not be distinguished on the intercommunication send vector e reg delay integer This parameter specifies how many clock cycles the PLB master needs to wait before it asserts the synch signal for the corresponding send instruction The counter starts when all cycles on the bus are complete since the send instruction is a serializing instruction Example send level 1 6 3 8 Wait Com
53. ator independence e Bus functional command definition which generates and responds to different transaction types with varying delays e Bus functional compiler which generates model initialization files from bus functional commands e Bus protocol checking through the use of general purpose bus monitors e Read and write data checking in masters and slaves e Model inter communication bus for event and transaction synchronization e Enables peripheral developers to verify and debug designs to assure bus compliance e Faster simulation run times than PPC BFM or FFM to generate bus traffic Allows what if simulation scenarios using different master and slave configurations e Flexible and user friendly bus functional language BFL for quick generation of a variety of bus transactions e Hierarchical solution to verification 1 2 PLB Features The PLB model toolkit enables the user to simulate the following PLB features e Separate address bus read data bus and write data bus for each bus master Shared address bus read data bus and write data bus for all bus slaves 2 Processor Local Bus Functional Model Toolkit Version 4 9 2 Separate read data bus and write data bus transfer gualifiers allow overlap of read and write transfers Maximum bandwidth of the bus is two transfers per cycle when a read and write operation is overlapped Read operations may be pipelined allowing continuous bus utilization when a master is perform
54. aximum values This parameter is used in conjunction with the burst_term_mode parameter The delay will count either from clocks if burst_term_mode clk or data cycles if burst_term_mode cycle write_burst_term_min max integer default 7 10 These parameters specify the range for burst_term delay during write cycles when slave_auto_mode is true The model automatically assigns a random delay to the burst_term delay between and including the minimum and maximum values This parameter is used in conjunction with the burst_term_mode parameter The delay will count either from clocks if burst_term_mode clk or data cycles if burst_term_mode cycle 6 4 1 3 Automatic Data Mode Configuration Parameters slave_auto_data boolean false disabled true enabled default false This parameter specifies whether the PLB slave behavior should automatically generate data When the slave model is configured for automatic data mode there is no need to initialize internal memory data since it is generated and checked using the BFM data generation function described in PLB Bus Functional Compiler on page 12 root_seed integer default 1 Version 4 9 2 PLB Bus Functional Language 45 This parameter specifies the seed to be used for the auto data feature of the model The slave model forms a seed using this root seed and the byte address The user may change the initial seed to change the random number seguences which are generated which in
55. be a GE eel eh eet 23 Internal Slave Data Memory Structure and Look Up Algorithms 24 Ordered Write Cycles PLB ordered 0 ccc ccc eee eens 25 Internal Slave Memory Checking ii 26 Burst ModeS 20 Aa heals set 12 Ave A A AA AA AA 26 Conversion Cycles with Different PLB Device Sizes 0 0c cece eee eee 26 Pipeline MOJES wres beets a pad ee Ee te es Se ee ee BE WE eee Pe eee 27 PLB Monitor couse ware O Nearness ee eae ee era Pe 27 Chapter 6 PLB Bus Functional Language 22000 ee eee eee eens 29 BFM Device Configuration Commands ccc cette eee 29 Set Device Command o 29 PLB Alias Commands ii 29 Set Alias Command ii 30 PLB Master CommandS s netas bara a yen ane ewe uan aa bb baek mau ana 30 Configure Command Maxi der os oles las Ste tei ae eee eta ERA eee BN ES 30 BFL Mode Configuration Parameters ia 30 Automatic Command Mode Configuration Parameters 30 Automatic Data Mode Configuration Parameters 0 0 ccc cee eee eee 34 Mem Init O Command ii 34 Reg Init W COMMANG tai mm ana el eee ee en al ma Pn Ba ba al 35 Read and Write Bus Cycle Commands na 35 Mem Update Command ii 37 Reg Update Command 38 Send Command ii 38 Wait COMMANd Wax sided bnar Geto eh debe eee an oh een pada dees 38 Branch C
56. be terminated by the master asserting Mn_abort given no Sn_addrAck has been received If the count reaches 16 and none of the terminating responses from master or slave have been asserted then a time out has occurred 8 3 Address Map Set up Error An error message is issued when PLB_reset is de asserted and the PLB monitor slave address map has not been initialized 8 4 Slave Interface PLB Core OR Logic Error An error message is issued when the OR ed value of all the PLB slave control outputs does not equal the output of the system OR gates which are inputs to the PLB arbiter Version 4 9 2 PLB Compliance Checks 69 8 5 Signal Summary Table Table 1 provides a summary of all PLB input output signals in alphabetical order which includes the source a brief description and page reference for bus functional compliance checks See PLB architecture specifications for detailed signal description Table 1 Summary of PLB Signals Signal Name Source Description Page Mn abort Master n Master n abort bus request indicator 76 Mn_ABus 0 31 Master n Master n address bus 76 Mn_BE 0 3 Master n Master n byte enables 73 Mn busLock Master n Master n bus lock 72 Mn_TAttribute Master n Master n storage attributes 75 Mn_guarded Master n Master n guarded transfer indicator 75 Mn_lockErr Master n Master n lock error indicator 75 Mn_priority 0 1 Master n Master n bus req
57. cifies if the SI wait signal can be asserted When this parameter is used in the configuration statement of the slave the wait_disable will be constant for the entire simulation session wait mode 1 bit Ozassert on address 1 delay mode default 0 This parameter specifies how the SI wait signal is asserted When assert on address mode is used the slave will assert Sl wait whenever the PLB Abus is within the slave address range When delay mode is used SI wait will be asserted based on both an address match and the wait parameter of the read write response commands read_addr_pipeline_disable 1 bit 0 SAValid recognized 1 SAValid ignored default 0 This parameter specifies whether the PLB core secondary address valid control signal is recognized by the PLB slave model during secondary read requests When programmed to recognize PLB SAValid the PLB slave model asserts addrAck during PLB_SAValid and queues secondary read requests which are processed after primary requests are complete The PLB_rdPrim and PLB wrPrim signals are used to switch secondary requests to primary status within the model When this parameter is used in the configuration statement of the slave the read_addr_pipeline_mode will be constant for the entire simulation session write addr pipeline disable 1 bit 0 SAValid recognized 1 SAValid ignored default 0 This parameter specifies whether the PLB core secondary address valid control signal is recognized by t
58. ck slave address related items unless it knows the address ranges for each instantiated slave If the default slave values of the toolkit are being used then there is no need to specify the slave address ranges in a configure statement because a generic load of the address ranges is performed automatically However if a user chooses to vary the slave address ranges in their environment then the monitor must be configured for these values see slavex_addr_lo_x slavex_addr_hi_x configure parameters below In either case the addr_check_enable must be turned on by the user through monitor bfl e busy_cycle_max integer 0 disabled default 100 48 Processor Local Bus Functional Model Toolkit Version 4 9 2 This parameter specifies the maximum number of cycles that the PLB MnBusy is allowed to be active before issuing a warning 1 22 3 When the value is 0 the warning is disabled SLAVE0_ADDR_LO_0 4 byte SLAVEO_ADDR_HI_0 4 byte SLAVEO_ADDR_LO_1 4 byte SLAVEO ADDR HI 1 4 byte Address map range 0 1 for slave instantiation 0 SLAVE1_ADDR_LO_0 4 byte SLAVE1_ADDR_HI_0 4 byte SLAVE1_ADDR_LO_1 4 byte SLAVE1_ADDR_HI_1 4 byte Address map range 0 1 for slave instantiation 1 SLAVE2_ADDR_LO_0 4 byte SLAVE2_ADDR_HI_0 4 byte SLAVE2_ADDR_LO_1 4 byte SLAVE2_ADDR_HI_1 4 byte Address map range 0 1 for slave instantiation 2 SLAVE3_ADDR_LO_0 4 byte SLAVE3_ADDR_HI_0 4 byte SLAVE3_ADDR_LO_1
59. ctive and the PLB_masterID identifies a different master as granted Error 1 18 2 An error message is issued when this signal is active and the corresponding Mn_request is inactive Error 1 18 3 An error message is issued when this signal is asserted by PLB during a secondary request This check is not performed for PLB 4 x 8 6 17 PLB_MnWrDAck The following error messages are issued for this signal Error 1 19 1 An error message is issued if PLB_MnWrDAck is asserted outside of window from assertion of PLB_MnAddrAck to assertion of Sln wrComp 78 Processor Local Bus Functional Model Toolkit Version 4 9 2 8 6 18 PLB MnRdDAck The following error messages are issued for this signal Error 1 20 1 An error message is issued if PLB_MnRdDAck is asserted outside of the window defined from 2 clocks after the assertion of PLB MnAddrAck to the clock after SIn_rdComp Error 1 20 2 An error message is issued if PLB_MnRdDack is asserted during a DMA transfer which requires no rdDAcks 8 6 19 PLB_MnRdWdAddr 0 3 The following error messages are issued for this signal Error 1 21 1 An error message is issued when master does not own the read data bus and PLB_MnRdWdAddr 0 3 contains non zero data e Error 1 21 2 An error message is issued when PLB_MnRdWdAddr 0 3 does not match SI rdWdAdar 0 3 Error 1 21 3 An error message is issued when PLB MnRdWdAddr 0 3 does not cover all the necessary read word ad
60. d during a write transfer to a memory address For write cycles the internal master data memory will be used as source data when the bus functional command address matches the command array For read cycles the data which is received from the PLB bus will automatically be compared with the internal master data memory Error messages will be generated when data miscompares occur Only the valid bytes for a particular command will be checked The valid bytes are determined by the transfer size as defined in the PLB architecture The memory array is declared as a linear array of 64 bit address control and 128 bit data for each array entry PLB_Master_Addr_Array 0 to 63 bits O to 61 address field bit 62 dirty bit bit 63 valid bit PLB_Master_Data_Array 0 to 127 4 word data field The valid bit is set during model initialization for each memory entry used and when a memory entry is allocated in the case of a read memory access miss When a read command reloads a memory entry with bus data the dirty bit is set This may be used with test environments to check if bus commands have executed and caused a master memory update in addition to data miscompares The default size of the master memory array is 64k bytes This may be increased or decreased by updating the PLB_Master_Mem_Size in the declaration HDL file of the toolkit 5 2 4 Command Modes This section discusses the possible modes that are available for a PLB master device
61. d to create expect values for transactions that occur on the bus If a value is specified but mismatches when checked against the actual transaction that occurred on the bus then the monitor will generate an error message e addr 4 8 byte Specifies the expected address value for a bus transaction be 4 8 16 bit Specifies the expected byte enable value for a bus transaction e size 4 bit Specifies the expected size value for a bus transaction e aack delay integer Specifies the expected aack_delay value for a bus transaction e abort delay integer Specifies the expected abort_delay value for a bus transaction e dack_delay integer Specifies the expected dack_delay for a bus transaction 6 5 2 1 Sample Monitor Read Write BFL The following example shows bfl for a master slave and monitor device The master will perform four writes followed by four reads The slave will respond to each with the specified aack and dack delays The monitor will check that each transaction completes with the expected values that are provided by the monitor bfl e PLB Master 0 set_device path plb_complex m0 device_type plb_master configure msize 00 mem_init addr 00021000 data 00112233 mem init addr 00021004 data 44556677 mem init addr 00021008 data AABBCCDD mem init addr 0002100C data AABBCCDD write addr 00021000 size 0000 be 1111 write addr 00021004 size 0000 be 1111 write addr 00021008 size 0000 be 1111 50 Pr
62. default 2 255 These parameters specify the range for the fixed burst transfers when master auto mode is true burst probability is greater than zero or size min max include burst transfers and fixed burst probability is greater than zero For example a user could specify the following configure msize 01 single probability 20 line probability 20 burst probability 60 fixed burst probability 5 fiked burst count min 2 fixed burst count max 8 This configure would randomly generate fixed bursts of two to eight doublewords Note the bursts would be doublewords b c the msize specifies a 64 bit master fixed burst abort probability integer default 4 This parameter species the probability of early terminated also called aborted fixed burst transfers when master_auto_mode is true burst_probability is greater than zero or size_min max includes burst transfers and fixed_burst_probability is greater than zero For example a user could specify the following configure msize 01 single_probability 20 line_probability 20 burst_probability 60 fixed_burst_pr obability 5 fixed_burst_count_min 2 fixed_burst_count_max 8 fixed_burst_abort_probability 3 This configure would randomly generate fixed bursts of two to eight doublewords with one out of every three fixed bursts terminating early Note the bursts would be doublewords b c the msize specifies a 64 bit master reg delay min max integer default 0 20 These parameters specify the ran
63. device the model assigns an error register and reports the corresponding condition to the user with a display message Figure 7 demonstrates all PLB monitor interface input output signals See PLB architecture specifications for detailed functional description of the signals Version 4 9 2 PLB Bus Models 27 PLB Bus Mn reguest Mn priority 0 1 Mn busLock Mn RNW Mn BE 0 3 Mn size 0 3 Mn type 0 2 Mn compress Mn guarded Mn ordered Mn lockError Mn ABus 0 31 Mn abort Mn wrDBus 0 31 Mn wrBurst Mn rdBurst PLB MnAddrAck PLB MnRearbitrate PLB MnBusy PLB MnErr PLB MnwrDAck PLB MnwrBTerm PLB MnRdDBus 0 31 PLB_MnRdWdAddr 0 3 PLB_MnRdDAck PLB_MnRdBterm PLB_PAValid PLB SAValid PLB rdPrim PLB wrPrim PLB busLock PLB RNW PLB BE 0 3 PLB size 0 3 PLB_type 0 2 PLB_compress PLB_guarded PLB_ordered PLB_lockError PLB_ABus 0 31 PLB_abort PLB_wrDBus 0 31 PLB_wrBurst PLB_rdBurst PLB_pendReq PLB regPri 0 1 PLB pendPri 0 1 PLB masterID 0 3 PLB SladdrAck PLB SiRearbitrate PLB SiWait VVVVVVVVVVVVVVVVVYVVVYVVVYW II VVVVVVVVVVVVVVVV PLB_SlwrComp PLB_SlwrDAck PLB_SlIrdComp PLB SirdDAck SI wait SI rearbitrate SI addrAck SI rdComp
64. diate hexadecimal value to be AND d with the destination register The DST must be RO 31 SR or CR Example and RO FFFFFFFO 40 Processor Local Bus Functional Model Toolkit Version 4 9 2 6 3 15 OR Command The OR command updates an internal master register with the result of a bit wise OR operation between an internal register and an immediate value Each AND command executes in one PLB clock cycle DST hex value up to 4 bytes These two parameters specify the 32 bit internal destination register to be updated and the immediate hexadecimal value to be OR d with the destination register The DST must be RO 31 SR or CR Example or R0 01 6 3 16 Shift left Command The Shift left command updates an internal master register with the result of a bit wise Shift left operation between an internal register and an immediate value Each Shift left command executes in one PLB clock cycle DST integer value These two parameters specify the 32 bit internal destination register to be updated and immediate integer value to indicate the number of bit positions to shift the specified register The DST must be RO 31 SR or CR Example shift_left RO 1 6 3 17 Shift_right Command The Shift_right command updates an internal master register with the result of a bit wise Shift_right operation between an internal register and an immediate value Each Shift_right command executes in one PLB clock cycle DST integer v
65. dresses in a line transfer 8 6 20 PLB_MnBusy The following error messages are issued for this signal e Error 1 22 1 An error message is issued when PLB_MnBusy is not active during a read transaction with slave Error 1 22 2 An error message is issued when PLB_MnBusy is not active during a write transaction with slave e Warning 1 22 3 A warning message is issued when PLB_MnBusy is active for more than busy_cycle_max cycles 8 6 21 PLB_MRdErr PLB_MWrErr Error 1 23 1 An error message is issued when these signals are asserted without a PLB_Mrd wrDack or without a busy signal 8 6 22 PLB_MSSize Error 1 24 1 Version 4 9 2 PLB Compliance Checks 79 An error message is issued when PLB Arbiter core did not propagate SI Ssize to master when SI addrAck was asserted 8 6 23 PLB MnTimeout The following error messages are issued for this signal Error 1 25 1 An error message is issued when this signal is active and the PLB_masterID identifies a different master as granted Error 1 25 2 An error message is issued when this signal is active and the corresponding Mn_request is inactive Error 1 25 3 An error message is issued when this signal is asserted by PLB during a secondary request Error 1 25 4 An error message is issued when this signal is asserted in the same clock as PLB_MnAddrAck e Error 1 25 5 An error message is generated if the PLB Arbiter asserts address acknowledge during a secondary reques
66. during a read burst transfer Error 2 31 4 PLB reasserted PLB_rdBurst before the current burst transfer received its last dAck Error 2 31 5 PLB failed to deassert PLB_rdBurst after bTerm was received for the current burst transfer 8 8 10 PLB_wrBurst The following error messages are issued for this signal Error 2 32 1 An error message is issued if this transfer qualifier does not match Mn_wrBurst during a primary request with PLB PAValid active Error 2 32 3 An error message is issued when PLB_wrBurst is re asserted before the last SIn_wrDAck of a burst transfer is received Error 2 32 4 An error message is issued when PLB_wrBurst is active the cycle after SIn_wrBTerm Error 2 32 5 An error message is issued when PLB_wrBurst is active and SYS_plbReset is active Error 2 32 6 An error message is issued when PLB_wrBurst is active during a non burst write cycle Error 2 32 7 An error message is issued when the PLB changes this transfer qualifier from when a primary request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort or PLB_MnRearbitrate or Timeout 8 8 11 PLB rdPrim The following error messages are issued for this signal 90 Error 2 33 1 Processor Local Bus Functional Model Toolkit Version 4 9 2 An error message is issued if this signal is asserted without the last read cycle SIn_AddrAck being a secondary acknowledge with PLB SAvValid 8 8 1
67. e executed sequentially during simulation The decode unit is designed to decode and queue external bus requests every PLB clock until the bus unit cycle queue is full Version 4 9 2 PLB Bus Models 17 When the decode unit issues a bus reguest it continues decoding and executing additional instructions from the command memory as long as it is not waiting on an external event An example of an external event would be a synchronization signal In addition a reguest delay parameter may suspend the decode unit issuance of commands to the bus unit until an internal command delay counter has expired The default size of the bus command array is 1024 entries This may be increased or decreased by updating the PLB_Master_CMD_Array_Size constant in the declarations HDL file of the toolkit 5 2 3 Internal Master Data Memory The PLB master model contains an internal memory array which can be initialized by the user with mem_init bus functional commands Each entry of the memory array is maintained by the master model during simulation During this initialization with mem_init commands a valid bit is set for each address entry Any bus functional commands which specify an address that matches a valid entry in the memory array will use the memory array for the bus functional command operation The data used in mem_init statements provides the expect data that is used for the read data comparison checks within the master model It also provides the data use
68. e model contains an internal memory array which can be initialized by the user with mem_init bus functional commands Each entry of the memory array represents a 64 bit address and 128 bit data PLB_slave_addr_array 0 to 63 bits O to 61 address bit 62 dirty bit bit 63 valid bit PLB_slave_data_array 0 to 127 4 word data field PLB_slave_dirty_array 0 to 15 bytes written half word field Bits 62 and 63of the PLB_slave_addr_array are not used for addressing bytes within the PLB slave model memory but they are used by the internal slave model memory interface logic to maintain the status of memory array elements The valid bit is set during model initialization for each memory entry used and also during simulation when a memory entry is allocated in the case of a write memory access miss When a write command reloads a memory entry with bus data the dirty bit is set This 24 Processor Local Bus Functional Model Toolkit Version 4 9 2 may be used with test environments to check that bus commands are executed and master memory is updated in addition to data miscompares For each byte that is written to the slave memory array during simulation of PLB write cycles to the slave the PLB slave dirty array is updated to indicate that the corresponding byte has been updated This feature can be used in simulation environments which need to detect or count exactly which bytes were written to in the slave so that a more comprehensive check
69. e operation of a single read data transfer on the PLB Cycle SYS plbCik Transfer Qualifiers Mn_request Mn_priority 0 1 Mn_busLock Mn_RNW Mn BE 0 3 Mn size 0 3 Mn type 0 2 Mn abort Mn ABus 0 31 PLB PAValid SI wait Poan eee Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 SI_rdWdAddr 0 3 SI rdDAck SI rdComp Mn rdBurst Cu 4 E 11 y K 0000 Y y 000 El EE jamin Next Wr Avali A Next Rd Avalid Pan 0000 X D A0 Y 0000 0000 X X 0000 HO Figure 8 Read Transfers set device path plb complex plb masterO device type plb master mem init addr 00000000 data 00010203 read addr 00000000 size 0000 be 1111 Version 4 9 2 PLB Bus Timing 53 send level 0 set device path plb complex plb siave0 device type plb slave Initialize device O mem init addr 00000000 data 00010203 read response aack delay 3 dack delay 1 mem check level 0 addr 00000000 data 00010203 54 Processor Local Bus Functional Model Toolkit Version 4 9 2 7 2 Write Transfers Figure 9 shows the operation of a single write data transfer on the PLB Cycle 0 1 2 3 4 5 6 7 8 9 SYS plbCik
70. e transfers to from any slave Abort signal provides the master the capability to abort a request late in the cycle Guarded and unguarded memory transfers allow a slave device to enable or disable the prefetching of instructions or data Four levels of request priority for each master allow PLB implementations with various arbitration schemes Master may lock bus arbitration allowing for atomic operations Slaves provide error reporting and busy acknowledge to each master on the PLB Version 4 9 2 PLB Toolkit Overview 3 1 3 PLB Implementation The PLB implementation consists of a PLB core to which all masters and slaves are attached The logic within the PLB core consists of a central bus arbiter and the necessary bus control and gating logic The PLB architecture supports up to sixteen master devices However PLB core implementations supporting less than sixteen masters are allowed The PLB architecture also supports any number of slave devices However it should be noted that the number of masters and slaves attached to a PLB core in a particular system will directly affect the performance of the PLB core in that system Figure 2 shows an example of the PLB connections for a system with three masters and three slaves Central Bus Arbiter Arbitration gt PLB a Slaves Address Address amp Transfer gt amp Transfer
71. ed into a buffer one clock before SI rdDAck assertion e Direct mapped mode When the PLB slave model is programmed in direct mapped mode a subfield of the address PLB Abus is used to directly reference the PLB slave internal memory The direct mapped mode is useful when simulations contain many contiguous slave address as the lookup algorithm is more efficient than the linear search mode Note The internal slave address subfield is automatically calculated by the model as the slave memory configuration parameters are set in the plb_dcl vhd file The user is not required to configure these indices within the toolkit 5 3 5 Ordered Write Cycles PLB ordered When the slave model acknowledges a write cycle when PLB_TAttribute 8 signal is active the PLB slave model will delay all subsequent internal data accesses until the previous write cycle is internally complete The PLB slave model however may acknowledge additional cycles assert SI addrAck during ordered writes Version 4 9 2 PLB Bus Models 25 5 3 6 Internal Slave Memory Checking Mem check slave commands allow automatic slave data memory lookup and compares without performing PLB bus operations Error messages will be generated when data miscompares occur with the mem check commands When the slave is programmed with mem check commands it waits to receive a synchronization signal and then performs the data memory lookup The order in which the mem check commands appear in
72. eguest This occurs when PLB SAValid is deasserted because of a SIn_rd wrComp assertion without overlapped SI addrAck PLB abort and PLB PAValid is not active in the next clock Error 2 2 4 An error message is issued if PLB SAvValid and PLB PAValid are active in the same clock Error 2 2 5 An error message is issued if PLB SAValid is active and PLB rd wrpendReg is inactive Error 2 2 6 An error message is issued when PLB SAValid is active and SYS plbReset is active 8 7 3 Sin addrAck The following error messages are issued for this signal Error 2 3 1 An error message is issued when SIn_addrAck is asserted and PLB PAValid or PLB SAValid is inactive Error 2 3 2 An error message is issued when Sin_addrAck is active while the slave is not selected This check depends on user defined address map Error 2 3 3 An error message is issued when more than one slave asserts SIn_addrAck in the same clock Warning 2 3 4 A warning message is issued if Sln addrAck is asserted at the first assertion of PLB PAValid or PLB SAValid for the requested transaction Sln addrAck should be asserted at least one cycle after PLB PLB PAValid or PLB SAValid or significant frequency degradation of the stated operational freguency is a possible outcome The slave in the toolkit is programmable and by default will assert SIn_addrAck with zero delay or with the assertion of PLB PAValid or PLB SAValid To program the toolkit slave to assert its SIn_addrAck o
73. elay during read cycles when slave_auto_mode is true The model automatically assigns a random delay to the aack_delay between and including the minimum and maximum values e write aack min max integer default 0 12 These parameters specify the range for aack_delay during write cycles when slave_auto_mode is true The model automatically assigns a random delay to the aack_delay between and including the minimum and maximum values e read_rearb_min max integer default 12 15 These parameters specify the range for rearb_delay during read cycles when slave_auto_mode is true The model automatically assigns a random delay to the rearb_delay between and including the minimum and maximum values e write_rearb_min max integer default 12 15 These parameters specify the range for rearb_delay during write cycles when slave_auto_mode is true The model automatically assigns a random delay to the rearb_delay between and including the minimum and maximum values e read_wait_min max integer default 12 15 These parameters specify the range for wait_delay during read cycles when slave_auto_mode is true The model automatically assigns a random delay to the wait_delay between and including the minimum and maximum values e write_wait_min max integer default 12 15 44 Processor Local Bus Functional Model Toolkit Version 4 9 2 These parameters specify the range for wait delay during write cycles when slave auto mode i
74. en the maximum number of automatically generated cycles on the bus have completed The maximum number of automatically generated cycles is determined by the auto max cycle value seed integer default 1 This parameter specifies the seed to be used for the random features of the model The master model currently uses uniform distribution functions implemented with exclusive or algorithms to produce random values for parameters which are changed by the model when configured to automatic mode The user may change the initial seed to meet the random number sequences which are generated which in turn will produce various master read and write sequences by the model master_addr_LO_x 32 64 bit master addr HI x 32 64 bit These parameters are used in master_auto_mode and they override the default generic address parameters for the PLB master models The user may provide up to two non contiguous address ranges for the same master by changing the x from 0 to 1 Note that the addresses specified are starting addresses for generated transactions in the automatic mode If the master addr HI x 000003FF then this will be a viable starting address for any transaction For a size value greater than a single byte the requested address will go outside of the boundary specified by master_addr_HI_x In order to avoid generating transactions that go beyond the boundary of the address range specify master_addr_HI_x such that a transfer size equ
75. erated for approximately 1 out of every five cycles when master_auto_mode is enabled priority_min max integer 0 1 2 3 default 0 3 Version 4 9 2 PLB Bus Functional Language 33 These parameters specify the range for m priority when master auto mode is true The range maximum must not exceed a value of three because the m priority is only two bits Therefore valid priorities are 00 01 10 and 11 e merr read data check disable integer 0 1 default 0 This parameter is used to disable the read data checking in the master when a PLB MrdErr signal driven by the slave to indicate the slave has encountered an error during a read transfer initiated by the master is also asserted To disable this check so that the master will not report read data errors set merr_read_data_check_disable 1 e read check disable integer 0 1 default 0 This parameter is used to disable the read data checking in the master Disabling this check setting read_check_disable 1 is useful when the slave in the testbench is not a toolkit slave and may have different data than the toolkit master which will cause read data comparison errors Note that if this parameter is set equal to 1 it may mask a real problem in the design ordered_probabilty integer 0 100 default 0 This parameter corresponds to the percentage of write requests in which the master will assert the signal Mn_Tattribute bit 8 Mn_Ordered for the duration of the master
76. eroes for a non line non burst transfer Error 2 22 3 An error message is issued if the replication of the byte enables is not correct when a device is connected to a PLB of a larger size 8 8 3 PLB_size 0 3 The following error messages are issued for this signal Error 2 23 1 An error message is issued when the PLB changes this transfer qualifier from the time a request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated through Mn_abort or PLB_MnRearbitrate or timeout Error 2 23 2 An error message is issued if this transfer qualifier does not match Mn_size when PLB_MnAddrAck is active Error 2 23 3 Version 4 9 2 PLB Compliance Checks 87 When PLB PAvValid or PLB SAValid is active an error message is issued for the following combination of PLB type and PLB size values as shown in Table 4 Table 4 PLB type Values PLB type PLB size 000 Any of the reserved size codes 001 Any of the reserved size codes or any line size code 010 Codes other than 0000 011 Codes other than 0000 100 Codes other than 0000 101 Codes other than 0000 110 Any of the reserved size codes 111 Codes other than 0000 8 8 4 PLB type The following error messages are issued for this signal Error 2 24 1 An error message is issued when the PLB changes this transfer gualifier from the time a reguest to transfer is made until the addressed slave asserts its
77. es on its SIn_rdDBus 0 31 when not selected for a read transfer 8 7 15 Sin rdWdAdar 0 3 The following error messages are issued for this signal Error 2 15 1 An error message is issued when a slave drives data other than zeroes on its Sln rdWdAdar 0 3 when not selected for a read transfer Error 2 15 2 An error message is issued when Sin_rdWdAddr 0 3 is not aligned for line transfer 8 716 Sin rdDAck The following error messages are issued for this signal Error 2 16 1 An error message is issued when SIn_rdDAck is asserted outside of the window from two clocks after the assertion of SIn_addrAck to one clock after the assertion of SIn_rdComp Error 2 16 2 An error message is issued when on a non burst read transfer the slave fails to give the expected number of rdDAcks Error 2 16 3 An error message is issued when this signal is asserted during a DMA type 1 4 5 7 cycle from two clocks after Sin addrack until one clock after SIn_rdComp is asserted Error 2 16 4 An error message is issued when this signal is asserted for a transfer that is outside of the slave s assigned address space Error 2 16 5 An error message is issued when this signal is asserted more than once after the rdburst signal has been deasserted for a read burst transfer 8 717 Sln_rdComp The following error messages are issued for this signal Error 2 17 1 An error message is issued when SIn_rdComp is active outside of allowed window
78. es the percentage of 4wd 8wd and 16wd line transfers that will be generated during an entire random simulation in which the line_probability is greater than zero The total of the three integer values should add up to one hundred For example a user could specify the following configure line4wd_8wd_16wd 40 30 30 Out of all line transfers generated 40 would be 4wd line transfers 30 would be 8wd line transfers and 30 would be 16wd line transfers This parameter should be used when the line_probability is greater than zero or it is ignored burst_count_min max integer default 1 32 These parameters specify the range for burst_count when master auto mode is true and burst_probability is greater than zero or size_min max include burst transfers The model automatically assigns a random value to burst_count between and including the minimum and maximum values e fixed burst probability integer default 4 This parameter specifies the probability of fixed burst transfers out of all burst transfers when master auto mode is true and burst probability is greater than zero For example a user could specify the following configure single probability 20 line probability 20 burst probability 60 fiked burst probability 5 This configure would generate a fixed burst transfer for 1 out of every 5 burst transfers 32 Processor Local Bus Functional Model Toolkit Version 4 9 2 fixed burst count min fixed burst count max integer
79. f data on Mn wrDBus does not remain constant from the assertion of PLB_MnaddrAck to the first PLB MnWrDAck in the case when wrDAck is delayed This check is also performed on words following the first of multi word transfers in which case the word of data on Mn wrDBus must remain constant from PLB MnWrDAck through the next PLB_MnWrDAck Error 1 14 3 An warning message is issued when a master changes this transfer gualifier from when a read request to transfer is made until the addressed slave asserts its SIn_addrAck or the transfer is terminated via Mn_abort or PLB_MnRearbitrate Error 1 14 4 An error message is issued if the Mn_wrDbus is not properly mirrored as indicated in the architecture specification for smaller masters connected to larger width PLB Arbiters 8 6 13 Mn rdBurst The following error messages are issued for this signal Error 1 15 1 Mn_RdBurst and PLB_RESET are active at the same time ERROR 1 15 2 Master asserted Mn_rdBurst before AddrAck was received Error 1 15 3 Master failed to deassert its Mn_rdBurst after receiving PLB_MnRdBTerm Error 1 15 4 Master reasserted Mn_rdBurst before the current burst transfer received it last DAck Error 1 15 5 An error message is issued if a master terminates a read burst transfer by deasserting its Mn_rdBurst and then reasserts its Mn_rdBurst signal before the last rdDAck for a multi burst read transfer is terminated 8 6 14 Mn_wrBurst The following error
80. f the bus functional compiler Perl program The name of this variable is target_simulator Note The BFC will not compile a bfl file if it is not configured properly 4 2 Declarations File Access The PLB slave model provided with this toolkit supports more than one internal memory lookup algorithm In addition the model memory sizes can be configured by updating the declarations file plb_dcl vhd v This is described in more detail in Master Model Operation on page 17 and Slave Model Operation on page 23 Since the memory initialization statements are generated from the BFC when parsing the bus functional language memory initialization constructs the BFC needs to know the memory configuration parameters before it generates the simulator specific initialization files Therefore the BFC reads the plb_dcl vhd v file before it processes a test case to determine the memory configuration parameters Note If the BFC file is not executed from the same directory where the plb_dcl vhd v file resides the user must update the plb_dcl_path at the header of the BFC file An error message is generated if the declarations file is not found 12 Processor Local Bus Functional Model Toolkit Version 4 9 2 4 3 Invoking the Bus Functional Compiler The bus functional compiler operates on files with the extension bfl and it generates a file with the same name but with a cmd or do or v extension depending on the target s
81. ge for req_delay when master_auto_mode is true The model automatically assigns a random value to the req_delay between and including the minimum and maximum values abort_probability integer default 5 This parameter specifies the probability that M_abort will be asserted when master_auto_mode is true For example the probability that M_abort will be asserted is approximately 1 out of every 5 default value master requests when master_auto_mode is enabled abort_delay_min max integer default 0 17 These parameters specify the range for abort_delay when master_auto_mode is true The model automatically assigns a random value to the abort_delay between and including the minimum and maximum values This parameter is generated for approximately 1 out of every abort_probability cycles when master_auto_mode is enabled lock_probability integer default 5 This parameter specifies the probability that M_busLock will be asserted when master_auto_mode is true For example the probability that M_busLock will be asserted is approximately 1 out of every 5 default value master requests when master_auto_mode is enabled unlock_delay_min max integer default 1 50 These parameters specify the range for unlock_delay when master_auto_mode is true The model automatically assigns a random value to the unlock_delay between and including the minimum and maximum values when the lock_delay parameter is selected This parameter is gen
82. he PLB slave model during secondary write requests When programmed to recognize PLB SAValid the PLB slave model asserts addrAck during PLB_SAValid and queues secondary write requests which are processed after primary requests are complete The PLB_rdPrim and PLB wrPrim signals are used to switch secondary requests to primary status within the model When this parameter is used in the configuration statement of the slave the write_addr_pipeline_mode will be constant for the entire simulation session data pipeline mode 1 bit 0 overlapped DAck mode 1 sequential DAck mode default 0 This parameter specifies whether the PLB slave model may assert read and write data acknowledge signals simultaneously When programmed for sequential DAck mode the slave model will not assert read and write DAcks in the same clock When this parameter is used in the configuration statement of the slave the data_pipeline_mode will be constant for the entire simulation session msg disable bit 0 disabled 1 enabled default 0 This parameter disables all message generation of the PLB slave model including data error message generation Version 4 9 2 PLB Bus Functional Language 43 6 4 1 2 Automatic Command Mode Configuration Parameters slave auto mode boolean false disabled true enabled default false This parameter specifies whether the PLB slave behavior should automatically respond to bus cycles with varied acknowledge delays and terminati
83. hich include the PLB model toolkit monitor model It is recommended that all simulations use the PLB monitor to ensure PLB compliance plb monitor xbar vhd plb_monitor_xbar v Version 4 9 2 PLB Toolkit Environment 7 This HDL file is a wrapper which instantiates two plb monitor 12m modules for the crossbar environment It is recommended that all simulations use the PLB monitor to ensure PLB compliance The crossbar arbiter is reguired to run in the environment with the crossbar monitor Contact PPCSUPP ppcsupp us ibm com for more information on obtaining the arbiter and corresponding test bench 8 Processor Local Bus Functional Model Toolkit Version 4 9 2 Chapter 3 PLB Toolkit Test Bench Figure 3 shows the default configuration of the PLB toolkit test bench environment It contains instantiations of a PLB master model PLB slave model PLB core and a PLB monitor model It also contains the distributed multiplexers and logic to implement the PLB bus using AND OR HDL statements Note Default configuration instantiates four masters and four slaves The current PLB implementation supports up to eight masters Designs under test may be instantiated in the toolkit test bench HDL which replace the default configuration Also the bus functional models may be instantiated in other test bench environments which include designs under test PLB PLB PLB PLB Master 0 Master 1 Master 2 Master 3 Model Model Model Model
84. ibm com The IBM Microelectronics Division home page can be found at http Awww chips ibm com Document No SA 14 2542 11
85. ies the Sln SSize signals of the PLB The valid size combinations are listed in the PLB architecture specifications Note that this parameter will be ignored if the SSize parameter was previously defined as a configuration parameter e level integer range 0 to 31 This parameter specifies which synchronization signal to send when the slave responds to a read or write 6 4 4 Merr Init Commands The merr init commands allow the user to generate a master error for read and write transactions based on a specified address If the user wishes to generate separate read and write errors the commands merr_init_r addr xxxx and merr_init_w addr xxxx can be used The merr_init_r command generates a master read error based on a specified address and the merr_init_w command generates a master write error based on a specified address When merr_init is used an error is generated for both reads and writes at the specified address e addr 4 byte The address that when read from or written to should cause a master error For PLB4X this will cause the assertion of the SI_MRdErr SI_MWrErr signal whereas for PLB3X this will cause the assertion of Sl MErr Version 4 9 2 PLB Bus Functional Language 47 6 4 5 Mem Check Command The mem check command automatically compares slave memory with the specified comparison data If there is a data comparison error an error message is generated and the corresponding error detection bit is set in the
86. imulator If the bfl extension is omitted the cmd extension is simply added to the end of the filename It is possible to invoke the BFC with multiple command files by specifying each file as an argument input parameter to the BFC When multiple files are used in a single BFC call the command file which is generated will be named using the first input file name To invoke the bus functional compiler type BFC filename1 bfl filename2 bfl Note If the message perl not found or other system error is encountered when invoking the BFC ensure that the path for the Perl executable is correct on the first line of the BFC source program as required by the Perl interpreter specification To locate the Perl executable try using the UNIX command which perl 4 4 Initializing the Bus Functional Models The command files which are generated by the bus functional compiler should be executed at simulation time 0 For the VHDL toolkit this is accomplished with an include or do type command after the model is loaded by the simulator For the Verilog toolkit the BFC generates a Verilog initialization command file which should be included when the simulation model is compiled Version 4 9 2 PLB Bus Functional Compiler 13 Chapter 5 PLB Bus Models The toolkit contains bus functional models for PLB master PLB slave and PLB monitor The PLB master and slave models are controlled through a bus functional co
87. ing back to back read operations For continuous back to back read or write transfers the maximum bandwidth of the bus is one transfer per cycle Byte enables specify bytes within a word allowing for byte halfword and word transfers as well as unaligned halfword transfers and 3 byte transfers Packing and unpacking of data is performed within each PLB slave All masters and slaves attach to the PLB as 128 bit 64 bit and 32 bit devices Slaves may support 8 bit and 16 bit bus widths if required PLB protocol does not include support for halfword or byte devices All transfer requests for bytes within an aligned word will be transferred on the PLB in one data transfer cycle A PLB master may request a16 byte 32 byte or 64 byte line of data These requests will result in data being transferred to the master in 4 8 or 16 word transfers on the PLB For non line transfers transfer width will match the width of the requested data as indicated by the byte enables PLB slaves provide a read word address SI rdWdAdar allowing bus slaves to fetch line data in any order that is target word first or sequentially All masters are required to sample the word address for line read operations and steer the word to the appropriate location within the line based on the word address from the slave See PLB Architecture specification for more information Sequential burst protocol provides a mechanism for a master to request a burst of word halfword or byt
88. ing algorithm may be implemented In addition there are two integer variables within the slave memory process which accumulate the total number of bytes which have been read from the slave memory array and also the total number of bytes which have been written to the array These two variables are called slave_mem total_bytes_written slave_mem total_bytes_read The default size of the slave memory array is 64k bytes This may be increased or decreased by updating the PLB_slave_mem_array_size parameter in the PLB_DCL declaration HDL file of the toolkit The PLB slave model supports two different memory look up algorithms used to access the internal memory arrays fully associative and direct mapped Each of these is described below e Fully associative linear search look up mode The default mode for the PLB slave model is linear search mode This algorithm provides the flexibility to initialize the slave model with many non contiguous data patterns within an entire 64 bit address range In the linear look up mode each array element status is maintained by the slave Initialization with mem_init commands causes the valid bit to be set Any bus cycles which have an address that matches a valid entry in the memory array will use the memory array for the bus functional command operation For write cycles the internal master data memory will be updated when SI_wrDAck is asserted For read cycles data from the internal slave memory is load
89. ion 4 9 2 7 5 Back to Back Write Transfers Figure 12 shows the operation of several back to back single write transfers on the PLB Cycle SYS plbCik Transfer Qualifiers Mn reguest Mn_priority 0 1 Mn_busLock Mn_RNW Mn_BE 0 3 Mn_size 0 3 Mn_type 0 2 Mn_abort Mn_ABus 0 31 PLB_PAValid SI wait SI AddrAck Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 SI_rdWdAddr 0 3 SI rdDAck SI rdComp Mn rdBurst set device mem_init mem_init om gees A N mem_init Ni 2 UN Wa wa Ae A Aa ie naay amy 1911 X I JooooY gooo d000 Goooy i 000 Y J000 jooo Y boo Y UA AA EA 2 ES E Figure 12 Back to Back Write Transfers path plb_complex plb_master0 device_type plb_master addr 00000000 data 00010203 addr 00000004 data 04050607 addr 00000008 data 08090a0b mem_init addr 0000000c data 0c0d0e0f write addr 00000000 size 0000 be 1111 write addr 00000004 size 0000 be 1111 write addr 00000008 size 0000 be 1111 Version 4 9 2 PLB Bus Timing 59 write addr 0000000c size 0000 be 1111 send level 0 set device path plb complex plb siave0 device type plb slave Initialize device O mem init addr 00000000 data 00010203 mem init addr
90. ise the parameter is required Note 4 There is no restriction on the order in which parameters may be specified within a command Note 5 If multiple parameters are specified for the same command they must be separated by commas 6 1 BFM Device Configuration Commands This section discusses set_device path string and device_type string configuration commands 6 1 1 Set Device Command The set device command selects a model to initialize Within a BFL file test case there may be only one set device command used per model initialization Path String The path string specifies the path of the model within the test bench hierarchy The commands following the set_device command are used to initialize the specified device Additional set_device commands are used to specify the initialization of other devices e Device Type String The device type string specifies the type of model being initialized The valid strings for this toolkit are PLB_master PLB_slave or PLB_monitor Any mismatch in the device_type parameter and the model being initialized will cause an initialization error Example set_device path plb_complex m0 device_type plb_master 6 2 PLB Alias Commands This section discusses set_alias and name value alias commands Version 4 9 2 PLB Bus Functional Language 29 6 2 1 Set Alias Command The set alias is an optional command which sets up an alias to be used for string sub
91. lave write data acknowledge 83 Version 4 9 2 PLB Compliance Checks 71 Table 1 Summary of PLB Signals Continued Signal Name Source Description Page Synch in Synch out 8 6 Master Interface Checks This section describes the PLB master interface checks performed during simulation 8 6 1 Mn reguest The following error messages are issued for this signal Error 1 1 1 An error message is issued when a master deasserts its Mn_request without any of the following events that is if any one of the following events occur then no error is flagged PLB MnAddrAck is asserted Mn_abort is asserted PLB_MnRearbitrate is asserted MnTimeout is asserted Error 1 1 2 An error message is issued when Mn_request is active and SYS plbReset is active e Warning1 1 3 A warning message of possible deadlock is issued when Mn_request is not inactive for 2 clock cycles after PLB_MnRearbitrate Mn_request and Mn_busLock are sampled active with PLB Mnaddrack inactive Error 1 1 4 Requesting master which has the bus locked did not deassert Mn Reguest for two clocks after a rearbitrated request 8 6 2 Mn priority 0 1 No protocol checks 8 6 3 Mn busLock The following error messages are issued for this signal Error 1 3 1 An error message is issued when a master s Mn_busLock is active without its Mn_request being active unless the bus is already locked by the requesting master Error 1 3 2 72
92. mand The wait command causes the bus master to suspend instruction decode until an intercommunication signal is received The wait instruction is a serializing instruction and is executed sequentially along with the read write commands In addition all previously issued bus cycles need to complete on the bus before the intercommunication signal on the synch_In bus is recognized e level integer range 0 to 31 The level parameter specifies the synch_In signal to be sampled before instruction execution continues Example wait level 1 38 Processor Local Bus Functional Model Toolkit Version 4 9 2 6 3 9 Branch Command The branch command enables the user to re direct the command decode location within the PLB master decode unit internal command array It also enables looping and jumping Branch targets are established by specifying label attributes with a PLB master command such as T1 read req_delay 3 addr 00001000 size 0000 be 1111 establish a branch target called T1 Note The between the label and master command delineates the two BFL constructs Each branch instruction executes in one PLB clock cycle e SRC This parameter specifies the condition register to determine whether the branch is taken A condition register is used in this comparison OP This parameter specifies the comparison operator to compare the condition register The valid conditions are LT less than GT greater than EQ equal NL n
93. mbinations are listed in the PLB architecture specifications under transfer qualifier signals Note that this parameter will be ignored if MSize was previously defined as a configuration parameter req_delay integer This parameter specifies the number of clock cycles for the master to wait before it asserts its M_request signal for the corresponding read or write cycle lock 1 bit default 0 This parameter specifies whether to assert Mn_busLock with Mn_request If the parameter is not specified then lock is not asserted The PLB will be locked when a valid PLB_MnaddrAck is asserted When using the lock parameter an unlock parameter is required in the same instruction The lock signal is automatically deasserted if a rearbitrate occurs unlock_mode enumerated type default cycle Version 4 9 2 PLB Bus Functional Language 35 This parameter specifies the mode in which lock is deasserted This may be specified as clock mode or cycle mode Clock mode specifies the deassertion of lock as the number of clocks from when lock was previously asserted Cycle mode specifies the number of cycles to expire before lock is deasserted In cycle mode lock is deasserted when Mn reguest is deasserted during the last locked cycle e unlock delay integer range 1 to 255 This parameter specifies the number of clocks to deassert lock after it was previously asserted or the number of cycles to elapse before it is deasserted The mode for
94. meter specifies the total number of data transfers when a burst cycle is used with the size parameter The master will continue to execute cycles until an internal transfer counter equals the burst_count parameter Note that this parameter is only used when a burst cycle is specified with the size parameter For a burst of one data transfer the rd wr_burst signals will not be asserted and the burst_count parameter should be set to 1 or simply omitted from the command Note For fixed length bursts the PLB Architecture allows the pre mature de assertion of the M_rd wrburst signal before the number of data beat transfers specified by the byte enables The PLB Architecture also allows Masters to continue bursting beyond the fixed length burst beat count if a slave burst terminate signal is NOT received during a fixed length burst transfer 36 Processor Local Bus Functional Model Toolkit Version 4 9 2 To allow verification of this architectural flexibility the BURST COUNT parameter can be programmed to a different number of beats than that specified on the byte enables When the BURST COUNT parameter is less than the BE data beat count the burst signal will be pre maturely de asserted When the BURST COUNT is greater than the BE data beat count the master will continue bursting IF a slave burst terminate signal was not asserted to the master IT IS STRONGLY RECOMMENDED THAT LOGIC DESIGNS WHICH SUPPORT BURST AND FIXED LENGTH BURST BE TESTED THO
95. mmand interface which is defined in PLB Bus Functional Language on page 29 The master model has the ability to issue reguests for the bus and generate cycles and the slave model can be initialized to decode PLB bus cycles and respond to PLB master reguests Both the master and slave models may be initialized to perform different PLB cycles with programmable signal delays The master and slave models support multiple modes of data operation The default mode for the models is to source data from internal data memories which are initialized at model load time The initialization data is specified through the BFM user interface The user has the ability to modify the internal memory contents during simulation through the use of bus functional commands described in PLB Bus Functional Language on page 29 Another data mode which is provided in the PLB toolkit is auto_data When the master and or slave models are configured for this mode data is automatically generated and checked as bus transactions are processed in simulation When the master and slave models are ready to drive data on the PLB bus they call a pseudo random number generator to form the necessary data patterns When data is received by the master and slave models they call the same pseudo random number generator to create expect data which is used to compare with the data received from the bus The source and receive data is synchronized through the formation of a deterministic
96. mode 1 Default is O disabled Note The PLB Architecture allows slave designs to assert sl rdBterm anywhere from one clock after si AddrAck or PLB rdPrim to sl rdComp for read transactions and together with sl_AddrAck or one clock after PLB wrPrim to sl wrComp for write transactions It is common for PLB Slave designs to assert sl_rd wrBterm together with the second to last sl_rd wrDack assertions However in order to achieve 100 percent functional verification of a PLB master design the Burst_Term_Mode Clk should be used to assert the sl rd wrbTerm signals in every possible combination of assertions for the entire set of burst transactions 5 3 8 Conversion Cycles with Different PLB Device Sizes The PLB slave model can be configured to be a 32 bit 64 bit or 128 bit device When the PLB slave model asserts Sin AddrAck with a PLB MSize which represents a master that is smaller than the configured PLB slave size SIn_SSize 0 1 the PLB slave will automatically adjust the data bus access and internal memory access to correspond to the transaction size as indicated by the PLB MSize and SI SSize values during the SI addrAck assertion For example if a 32 bit PLB master initiates a 4 word read line transfer to a 64 bit slave the slave will drive 4 SI rdDack signals and drive bits 0 31 of the SI rdDBus However if a 64 bit PLB master initiates a 4 word read line transfer to a 64 bit slave the slave will drive 2 SI rdDAck signals and drive
97. mode true 5 2 5 Burst Operations The PLB master model supports the PLB burst protocol The model accesses the internal master memory during the initial bus request and also during each data phases of the burst transfer The PLB master model terminates a burst transfer when the user specified number of data transfers has occurred or when a slave terminates the burst transfer with a burst terminate signal The PLB master model supports a burst_continue_mode where the PLB master will request the bus again if a slave terminate signal is received and the PLB master has more data to transfer To configure the PLB master model for burst_continue_mode use the following configuration statement configure burst_continue_mode true The PLB master model also supports the PLB fixed length burst protocol The master model will automatically de assert the M_rd wrBurst signal when the BE parameter is non zero the size parameter indicates a burst cycle the corresponding number of data transfers takes place Note For fixed length bursts the PLB architecture allows the pre mature de assertion of the M_rd wrburst signal before the number of data beat transfers specified by the byte enables The PLB architecture also allows masters to continue bursting beyond the fixed length burst beat count if a slave burst terminate signal is NOT received during a fixed length burst transfer To allow verification of this architectural flexibility the BURST COUNT
98. n the PLB and OPB to enable data transfer by PLB masters to and from OPB slaves In the above example we have two Version 4 9 2 PLB Toolkit Overview 1 bridges a PLB to OPB bridge which is a slave on the PLB and a master on the OPB and an OPB to PLB bridge which is a slave on the OPB and a master on the PLB OPB peripherals may also comprise DMA peripherals The device control register DCR bus is used primarily for accessing status and control registers within the various PLB and OPB masters and slaves It is meant to off load the PLB from the lower performance status and control read and write transfers The DCR bus architecture allows data transfers among OPB peripherals to occur independently from and concurrent with data transfers between the processor and memory or among other PLB devices The toolkit allows users to initiate PLB master cycles and provide PLB slave responses through a bus functional language which is parameterized according to the architectural specification Data checking and bus protocol monitoring also provide a way for users to automate the verification of PLB designs under development Source files in ASCII format are distributed with the toolkit which include behavioral models programs and documentation 11 PLB Toolkit Features PLB toolkit features Unit and subsystem level simulation of logic designs which comply with PLB architecture specifications e VHDL and verilog source model solutions with simul
99. n the simulation environment which uses the intercommunication bus When instantiating toolkit models which need to support the send wait commands as described in PLB Bus Functional Language on page 29 ensure that the intercommunication logic within the test bench is updated to reflect the additional model instantiations 34 VHDL Signal Types The signal interface for the VHDL bus functional model wrappers and test bench are declared as IEEE std_logic and std_logic_vector signal types If the bus functional models are integrated with a test bench environment which uses bit and bit_vector types the wrappers may be eliminated so that type conversions do not have to be included in the model interfaces When the wrappers are not used please note that the I O for each PLB toolkit model component contains primary inputs for configuration signals rather than the VHDL generic declarations which are in each wrapper 3 5 IEEE Packages The VHDL version of the PLB core RTL is translated from Verilog to VHDL with a source level language translator The translated VHDL calls out some IEEE packages such as 10 Processor Local Bus Functional Model Toolkit Version 4 9 2 ieee std logic 1164 all ieee std logic arith all ieee std logic unsigned all Some VHDL compilers and analyzers may reguire the use of compiler directive switches to resolve overloaded relational operators Version 4 9 2 PLB Toolkit Test Bench 11 Chapter 4 PLB Bus Functi
100. na mam dab nana ad noe 84 ine td WdAddr OB 22an da EN A ee ote ak PN DL Dn gle he 85 SIN TADACK ceo a fA eh eh eh nds es a ana BLN Oa deb ered 85 SINGIA COMP non BA an waked beet a eke LN eee el See ee a ee eee 85 SIN FEB TERM neh or hide eRe be ee a Ga Bat edn 86 SINAMBUSY OMO cutest a Cacao illo BN BR Ba al Mall ous 86 Sin Mrd wrErr 0 15 io 86 PLB Interface Checks 2 1 di Basa SA ANA Aan AA e 87 PER RNW sco sel duc ren oS an datas ROA Sars Bote ae ane cid na 87 PLE BE a too eng ges anta CORES ES SR enti bed ae eet ERAS a4 87 PLB SIZ6 O 3 ss Beste aya Dara benua ols ed GE KA arah Be Seed ee a aa 87 PEB typen Dato da cheat Mah cae ee ee BAN ean Bae Kai Nan 88 PLB TAI but oth hon fie a eos De en Sh Be un 88 PEB TOCKE cerina Manan iat ot ase A etek EA ES aa 88 PEB ABUS PLE UABUS amp 2 2 ce cece ida gia tie ted ease dhe ad anata eee 89 PEBSDUSLOCK ena pr Spa Mann mena HER MEN ERD bee cui eae cent dys UN Jot 89 PEB rd Burst A A o An EN Bd Ars te A set 90 PEBEWEBUPSt aaraa AAA Maser a ei ana aan Nea de 90 PBB IM ne em sam itna a AR ern 2c 8 RO 90 PLB Wh Mi shin asses Sak hkamah area snack aus saia E E teste ord ana ae Gan 91 PLR ADO Lai nat nga ES ERA LAN NN Ba an e Wee 91 PEB SrdDbus Se LA AA BNN 91 Time Out Handshake Checks For 3 x PLB cece eee eee eee 91 PEBe MnWiB Renn 2 icici Sab awed RE AAA ie LA DA pa EN 91 PEB MnRABTErM sados nk ah ds dn aa eb ea Hata ides 92 PEB ME nee Se a E E DS A an E A
101. nd SI wrDAck For example a DAck_delay value of 0 for a read response causes the SI rdDAck signal to be asserted 2 clocks after SI addrAck is asserted which is the earliest legal PLB slave data response time for the first SI_rdDAck A DAck delay value of 0 for a write response causes the SI wrDAck signal to be asserted together with the SI addrAck assertion which is the earliest legal PLB slave data response time for the first SI wrDAck For line and burst transfers the dack delay parameter can be used to specify delays between dacks for a multiple data beat transfer This is accomplished with the following syntax read response dack delay 2 or configure dack_delay 2 These bfl statements will produce a delay of 2 between dacks for a line or burst transfer Another available option is to specify different delays between dacks for a multiple data beat transfer This is accomplished with the following syntax read_response dack_delay 2 3 4 5 46 Processor Local Bus Functional Model Toolkit Version 4 9 2 This will delay the first dack by 2 in relation to addrack or rdprim the second dack will be delayed by 3 from the first dack the third dack will be delayed by 4 from the second dack and the fourth dack will be delayed by 5 from the third dack Please note that up to 8 values may be used dack delay x x x x x x x x and any dacks beyond 8 will default to the dack delay value of the eighth dack e comp delay integer default
102. nd the transfer size M_Size See PLB architecture specifications for details on different device widths 5 2 7 General Purpose and Branch Processor Registers The PLB master model contains 32 general purpose registers RO 31 a 32 bit synchronization register SR and a 32 bit condition register CR These registers can be used by the programmer to implement algorithms or conditions which affect the way in which the PLB master executes commands The condition register is updated during compare instructions It provides a mechanism for testing and branching The bits of the Condition Register are grouped into eight 4 bit fields named CR Field 0 CRO CR Field 7 CR7 Instructions are provided to perform logical operations on individual CR bits and to test individual CR bits The bits of the CR fields are interpreted as follows bit O Negative LT The result is negative bit 1 Positive GT The result is positive bit 2 Zero EQ The result is zero bit 3 undefined The synchronization register latches the Synch_in input It can subsequently be referenced or reset using an ALU or move instruction 5 2 8 ALU Instructions The following instructions are available for arithmetic operations a detailed description is provided in PLB Master Commands on page 30 Add Sub And Or Shift_Left Shift_Right Compare 20 Processor Local Bus Functional Model Toolkit Version 4 9 2
103. ne cycle after PLB PAValid or PLB SAValid put the following in the configuration statement for each slave configure aack delay 1 This will delay the Sin addAck signal until one cycle after PLB PAValid or PLB SAvValid Version 4 9 2 PLB Compliance Checks 81 8 7 4 Sin wait The following error messages are issued for this signal Error 2 4 1 An error message is issued when SlIn wait is active while the slave is not selected This check depends on user defined address map Error 2 4 2 An error message is issued when more than one slave asserts Sln wait in the same clock 8 7 5 Sin rearbitrate The following error messages are issued for this signal Error 2 5 1 An error message is issued when SIn_rearbitrate is asserted and both PLB PAValid and PLB SAValid are inactive Error 2 5 2 An error message is issued when Sln rearbitrate is active while the slave is not selected This check depends on user defined address map Error 2 5 3 A warning message is issued when Sln rearbitrate is asserted and PLB SAValid is active Not applicable to PLB 4 x Error 2 5 4 An error message is issued when more than one slave asserts SIn_rearbitrate in the same clock 8 7 6 PLB_rd wrpendReq The following error messages are issued for this signal Error 2 6 1 3 An error message is issued when the PLB changes this transfer qualifier from the time when a request to transfer is made until the addressed slave asserts its Sln addr
104. ocessor Local Bus Functional Model Toolkit Version 4 9 2 write addr 0002100C size 0000 be 1111 read addr 00021000 size 0000 be 1111 read addr 00021004 size 0000 be 1111 read addr 00021008 size 0000 be 1111 read addr 0002100C size 0000 be 1111 e PLB Slave 0 set device path plb complex s0O device type plb slave Initialize device O configure ssize 00 mem init addr 00021000 data AABBCCDD mem init addr 00021004 data AABBCCDD mem init addr 00021008 data AABBCCDD mem init addr 0002100C data AABBCCDD write response aack delay 4 dack delay 3 write response aack delay 3 dack delay 3 write response aack delay 2 dack delay 3 write response aack delay 1 dack delay 3 read response aack delay 4 dack delay 2 read response aack delay 3 dack delay 2 read response aack delay 2 dack delay 2 read response aack delay 1 dack delay 2 PLB Monitor BFL set_device path plb_complex mon device_type plb_monitor configure msize 00 ssize 00 write addr 00021000 size 0000 be 1111 aack_delay 4 dack_delay 3 write addr 00021004 size 0000 be 1111 aack_delay 3 dack_delay 3 write addr 00021008 size 0000 be 1111 aack_delay 2 dack_delay 3 write addr 0002100C size 0000 be 1111 aack delay 1 dack_delay 3 read addr 00021000 size 0000 be 1111 aack delay 4 dack delay 2 read addr 00021004 size 0000 be 1111 aack delay 3 dack delay 2 read addr 00021008 size 0000 be 1111 aack delay 2 dack delay 2 read addr 0002100C size 0000 be
105. on developers who need to understand Core ASIC development and system on a chip SOC designs The audience should understand embedded system design operating systems and the principles of computer organization Since the PLB model toolkit is designed to comply with the architectural specification toolkit users need to have a working level understanding of the architectural specification to be able to develop test cases and simulate using the bus model toolkit The user should also be familiar with UNIX type operating systems basic digital logic design and simulation and the simulator which is used for the verification process Related Publications The following publications contain related information Processor Local Bus Architecture Specifications On Chip Peripheral Bus Architecture Specifications Device Control Register Bus Architecture Specifications Processor Local Bus Toolkit User s Manual On Chip Peripheral Bus Toolkit User s Manual Version 4 9 2 About This Book xiii Device Control Register Bus Toolkit User s Manual Processor Local Bus Arbiter Core User s Manual On Chip Peripheral Bus Arbiter Core User s Manual PLB to OPB Bridge Core User s Manual OPB to PLB Bridge Core User s Manual How This Book is Organized This book is organized as follows Chapter 1 PLB Toolkit Overview Chapter 2 PLB Toolkit Environment Chapter 3 PLB Toolkit Test Bench Chapter 4 PLB Bus Functional Compiler Chapter 5
106. on types The valid parameter types are true and false When the slave model is configured for automatic mode there is no need to initialize read write_response commands since they are ignored while auto mode is enabled e seed integer default 1 This parameter specifies the seed to be used for the random features of the model The slave model currently uses a uniform distribution function implemented with exclusive or algorithms to produce random values for parameters which are varied by the model when configured in automatic mode The user may change the initial seed to change the random number sequences which are generated which in turn will produce varying slave response sequences by the model e slave_addr_LO_x 32 bit slave_addr_HI_x 32 bit These parameters allow a user to override the default generic address decode parameters for the PLB device slaves The user may provide up to two non contiguous address ranges for the same slave by changing the x from 0 to 1 If more non contiguous slaves address ranges are necessary the user may instantiate additional PLB device models in the test bench It is important that there are no overlapping memory address areas between multiple slaves since both slaves would attempt to respond to a single cycle If both address parameters are equal they are not used as a valid address decode e read aack min max integer default 0 12 These parameters specify the range for aack_d
107. onal Compiler Test cases written in the PLB bus functional languages are parsed by the toolkit bus functional compiler For VHDL simulators it generates simulator interface commands to initialize the PLB models within the toolkit test bench For Verilog simulators the BFC generates a Verilog initialization file which contains Verilog statements to initialize the bus functional models These command files are used to load the bus functional model command and data arrays after the test bench is loaded into the simulator Multiple bus functional model command sections may be written within the same BFL file or individual BFL files may be used to initialize each master slave device The bus functional compiler will generate a single command file for each BFL file which it processes If more than one BFL file is used for a single test case the user should include each command file generated by the BFC when initializing the bus functional models within the test bench The bus functional compiler is implemented in Perl which is an interpreted language distributed under the GNU public license It is available at no cost and runs on nearly all UNIX or UNIX like operating systems 41 Simulator Configuration Since the output of the bus functional compiler is a simulator specific command initialization file the user should indicate the target simulator being used This can be done by changing the default simulator command output parameter at the header o
108. onal Model Toolkit Version 4 9 2 Chapter 8 PLB Compliance Checks 8 1 Monitor Model The PLB monitor model attaches to the PLB bus and generates informational architectural compliance messages during simulation The model is passive in that it does not participate in any bus protocol signal assertions but it samples PLB signals in every clock to keep track of the state of the PLB bus and inform the user of any detectable PLB compliance problems Messages are generated to the simulator console which also may be re directed to file systems in most simulation environments 8 2 Terminology The following terminology is used in the specification of the PLB monitor compliance checks e Active refers to the situation when a signal is at its true state a logical 1 e Asserted refers to the situation when a signal transitions from inactive to its active state e Inactive refers to the situation when a signal is at its false state a logical 0 e Deasserted refers to the situation when a signal transitions from active to its inactive state e Time out refers to the event which occurs when there have been 16 cycles of non response from a slave or Mn_abort since the assertion of PLB_PAValid The 16 cycle count may be interrupted by the slave response of Sin wait active And the count will remain interrupted for as long as the wait is active The count will be terminated by slave asserting SIn_rearbitrate or Sn_addrAck The count may also
109. ot less than NG not greater than NE not equal e Label This parameter specifies the BFL destination of the branch if the condition register matches the operator parameter The label must be defined in the test case using the label command attribute Example branch CR3 LT Label 6 3 10 Move Command The move command enables the user to move a 32 bit internal register or internal memory value to an internal register Register to Register Move instructions execute in one clock cycle Internal memory to register Move instructions are decoded in one clock and the register update occurs in the next clock Note Register data is always available in the next clock for following instructions DST SRC The SRC parameter specifies the internal register or 32 bit internal memory value to be used as the source of the move instruction The DST parameter specifies the internal register which is updated with the SRC parameter value The DST may be CR SR or RO 31 Example move CR RO Example move CR 12345678 Version 4 9 2 PLB Bus Functional Language 39 6 3 11 Compare Command The compare command enables the user to compare two values and store the results in the condition register Each compare instruction executes in one PLB clock cycle SRC two are required This parameter specifies the internal register value to be used as a source of the compare instruction Each compare instruction requires two SRC parameters Valid
110. quest Mn_priority 0 1 Mn_busLock Mn_RNW Mn_BE 0 3 Mn_size 0 3 Mn_type 0 2 Mn_abort Mn_ABus 0 31 PLB_PAValid SI addrAck SI wait Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 SI rdWdAdar 0 3 SI rdDAck SI rdComp Mn rdBurst valid TT A Y 00 m y Next Rd Avalid Next Wr e Next Wr Addr Next Rd AddrAck Yw2 Yw3 wo wi Y 0000 0000 0000 0010 0011 X 0000 0001 Y 0000 NAS Figure 14 Four Word Line Read Set device path plb_complex plb_master0 device_type plb_master mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f read addr 00000008 size 0001 be 1111 send level 0 Set device path plb_complex plb_slave0 device_type plb_slave Initialize device O Version 4 9 2 PLB Bus Timing 63 mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f read response aack delay 0 dack delay 0 rdword mode 1 mem check level 0 addr 00000000 data 00010203 mem check level 0 addr 00000004 data 04050607 mem_check le
111. r Test When instantiating a PLB slave design under test connect the PLB signals in the test bench to the new device and remove a PLB slave model instantiation Ensure that the PLB slave address map has non overlapping slave address space The PLB slave model instantiation generics parameters have a default slave address mapping as follows Device 0 00000000 0003FFFF Device 1 00040000 0007FFFF Device 2 00080000 000BFFFF Device 3 000C0000 000FFFFF The PLB slave model has parameters for the address decode in the HDL file These may be updated by the user to re program the default slave address space for a single PLB slave instantiation When multiple slave models are connected to a single PLB core the user must ensure that the slave decode maps are mutually exclusive within a test bench This can be accomplished through the BFL configure command generic statements in the VHDL instantiations or Verilog parameters in the model HDL files 3 3 Instantiating PLB Master Designs Under Test When instantiating a PLB master design under test connect the master to the PLB master interface of the PLB core arbiter Each master will have an independent PLB interface as defined in the PLB architecture specification Each toolkit model uses intercommunication signals called Synch_in 0 to 31 and Synch_out 0 to 31 to synchronize events in the test environment The Synch_in 0 to 31 is the logical OR of all the Synch_out outputs of each instantiated models i
112. r for automatically checking the PLB Mn rdWdAdar signals during line transfers The valid modes are sequential and target word first An error message will be generated if a comparison error occurs Example read reg delay 3 addr 00001000 size 0000 be 1111 e data ALU Register When this optional parameter is used data is loaded into the specified PLB master register directly instead of being loaded into the internal PLB master model memory Also no data comparison checking is performed with the data received from the PLB bus 6 3 5 Mem Update Command The mem_update command updates master memory during the decode and execution of master bus commands It is a serializing instruction meaning that all outstanding bus cycles complete before the internal memory array is updated e addr 4 byte This parameter specifies the 32 bit address of the internal memory data value to be updated data 4 byte or CRx Rx SR Version 4 9 2 PLB Bus Functional Language 37 This parameter specifies the data which will be used to update the PLB master internal memory An immediate 4 byte data value or an internal register may be used Example mem_update addr 00001000 data 05060708 6 3 6 Reg Update Command The reg update command updates an internal master register during the decode and execution of master bus commands Each reg update command executes in one PLB clock cycle DST 4 byte This parameter specifies the 32 bit destin
113. r wants to avoid having the model adjust all invalid sizes down to a single size 0000 transfer see description of size_min max These parameters provide the user with the ability to provide split ranges for the m_size parameter Thus a user could do the following configure size0 min 0 size0 max 1 size1 min 10 size1 max 10 This would produce singles transfers size 0000 4 word line transfers size 0001 and fullword burst transfers size 1010 e cmd min cmd max 1 2 1 read 2 write default 1 2 These parameters specify the random generation of reads and or writes If one is specified for both then only reads will be produced and if two is specified for both then only writes will be produced e single probability line probability burst probability integer default 33 33 34 These parameters specify the percentage of single line and burst transfers that will be generated during the entire random simulation The total of the three should add up to one hundred For example a user could specify the following configure single_probability 50 line probability 25 burst probability 25 This would generate single transfers 50 of the time line transfers 25 of the time and burst transfers 25 of the time All three parameters should be specified in order to correctly override the defaults This is true even if one of the values is set to zero line4wd_8wd_16wd integer integer integer default 33 33 34 This parameter specifi
114. rAck from the time PLB_PAValid or PLB_SAValid is active For example an aack_delay value of 0 will assert SI addrAck together with PLB PAValid and an aack_delay of 1 will assert Sl addrAck one clock after PLB PAValid is recognized read aack delay integer default 0 This parameter specifies the number of clocks to wait before asserting SI addrAck from the time PLB PAValid or PLB SAValid is active For example an read aack delay value of 0 will assert SI addrAck together with PLB PAValid and an read aack delay of 1 will assert SI addrAck one clock after PLB PAValid is recognized write aack delay integer default 0 This parameter specifies the number of clocks to wait before asserting SI addrAck from the time PLB PAValid or PLB SAValid is active For example an write aack delay value of O will assert SI addrAck together with PLB PAValid and an write aack delay of 1 will assert Sl addrAck one clock after PLB PAValid is recognized SSize 2 bit This parameter specifies the Sln SSize signals of the PLB The valid size combinations are listed in the PLB architecture specifications This parameter may also be used in each read write slave response command However when this parameter is used in a configuration statement it is retained throughout the simulation as a slave configuration parameter Example configure ssize 01 read dack delay integer default 0 This parameter specifies the number of clocks to wait before
115. rerr in 4X Note that mirq does not exist in 3X Version 4 9 2 PLB Bus Models 15 5 2 PLB Master Model The PLB master model contains logic to automatically reguest the bus when it has read write commands to execute It performs an operation based on the bus functional command which was initialized in the internal master model command array The PLB arbiter determines which master bus cycle to issue on the slave side of the PLB bus Figure 4 demonstrates all PLB master interface input output signals See PLB architecture specifications for detailed functional description of the signals PLB Bus Master Interface Synch in gt PLB MnAddrAck gt PLB MnRearbitrate gt I PLB_MnSSize 0 1 gt PLB MnBusy PLB MErr gt i Synch out D Mn_request 4 Mn_priority 0 1 4 Mn busLock 4 Mn_RNW Request Qualifiers 4 Mn_BE 0 3 4 Mn size 0 3 4 Mn type 0 2 n 4 Mn MSize 0 1 4 Mn compress Mn_guarded 4 Mn_ordered 4 Mn_lockErr 4 Mn abort 4 Mn ABus 0 31 m PLB MnWrDAck PLB MnwrBTerm gt 4 Mn wrBurst Write Data Bus 4 Mn wrDBus 0 31 4 Mn_wrDBus 32 63 PLB MnRdAck gt PLB_MnRdBTerm P PLB_MnRdWdAddr 0 3 gt Read Data Bus PLB_Mn
116. rmediate data checking during simulation can be done by using memory check commands which are executed when an intercommunication signal is received by the slave These memory check commands are independent of the slave response command flow The default size of the bus command array is 256 entries This may be increased or decreased by updating the PLB slave CMD array size parameter in the PLB_DCL declaration HDL file of the toolkit 5 3 3 Command Modes This section discusses the possible modes that are available for a PLB slave device PLB slaves may be configured to act in either Configuration mode Command mode or Auto mode A description of these modes are e Configuration Mode Version 4 9 2 PLB Bus Models 23 This response mode allows the user to change the slave read write response on a test case basis For each PLB master cycle that is received the PLB slave model uses an internal configuration register to respond to all PLB read or write memory cycles which are active within its address space This mode is the default configuration of the PLB slave model The configuration delay values can be initialized using configuration commands such as configure read_aack_delay 2 read_dack_delay 2 1 1 1 write aack delay 1 write dack delay 1 1 1 1 This mode is the default mode of the PLB Slave model and the user is not reguired to specify a BFL configuration parameter for this mode e Command Mode This response mode enables the u
117. ror message is asserted when wrcomp is asserted for a burst transfer before the last wrdack of the burst is received 8 7 12 Sln_wrComp The following error messages are issued for this signal Error 2 12 1 An error message is issued when SIn_wrComp is asserted and PLB_wrBurst is active during the data phase of a burst write transfer Error 2 12 2 An error message is issued when SIn_wrComp is active outside of allowed window i e from the assertion of SIn_addrAck to the assertion of Sln wrComp Error 2 12 3 An error message is issued when more than one slave asserts SIn_wrComp in the same clock 8 713 Sin wrBTerm The following error messages are issued for this signal Error 2 13 1 An error message is issued when Sin_wrBTerm is active outside of allowed window from the assertion of SIn_addrAck to the assertion of Sln wrComp Warning 2 13 2 A warning message is issued when SIn_wrBTerm is not asserted during a guarded burst transfer that crosses a 1k address boundary Note 2 13 3 A note message is issued if this signal is asserted pre maturely during a fixed length burst transfer This means the wrbterm is asserted when there is more than one dack required to meet the number of expected dacks 8 7 14 Sin rdDBus The following error messages are issued for this signal 84 Processor Local Bus Functional Model Toolkit Version 4 9 2 Error 2 14 1 An error message is issued when a slave drives data other than zero
118. rs 63 fourword line write transfers 65 G general purpose register PLB bus models branch processor register 20 ieee packages 10 initializing bus functional models 13 internal master datamemory 18 internal slave data memory structure 24 internal slave memory checking 26 invoking bus functional compiler 13 Version 4 9 2 M master inferface checks 72 master model operation 17 monitor model 69 O operations 23 ordered write cycles 25 P pipeline modes 27 PLB alias commands 29 PLB bus functional compiler declarations file access 12 initializing bus functional models 13 invoking bus functional compiler 13 simulator configuration 12 PLB bus functional language 29 BFM device configuration commands 29 PLB alias commands 29 PLB master commands 30 PLB monitor commands 48 PLB slave commands 41 PLB bus models PLB monitor 27 running 4x bus models in 3x mode 15 PLB bus timing back to back read transfers 57 back to back read write transfers 61 back to back write transfers 59 four word line read followed by four word line write transfers 67 fourword line read transfers 63 fourword line write transfers 65 read transfers 53 transfer abort 56 write transfers 55 PLB compliance checks 69 address map setup error 69 master inferface checks 72 monitor model 69 slave interface checks 80 slave interface PLB core OR logic error 69 timeout handshake checks 91 PLB implementation 4 PLB master commands 30 PLB master designs under test
119. ry access relative to the address phases depending on how the master cycles are generated and how the slave model is programmed to respond to the bus cycles The PLB slave model memory uses the SI rdDAck and SI wrDAck signals to perform internal memory accesses needed to satisfy PLB read and write bus cycle requests In the PLB slave model memory access for reads always occurs one clock before the SI rdDAck assertion and the memory access for writes always occurs in the clock that SI wrDAck is asserted Also writes have precedence in the memory access logic of the PLB slave memory model If SI rdDAck is asserted in a cycle after a wrDAck then the read data always reflects the new data written If a rdDAck is asserted in a cycle before or during a wrDAck then the read data always reflects the old data Since the PLB architecture allows out of order rd wrDAcks with respect to addrAck from the same slave it is the responsibility of the system designer to resolve data coherency issues when simultaneous write read cycles occur Slave memory and configuration parameters are initialized at simulation time 0 with the command file generated by the PLB bus functional compiler The slave response commands are initialized in the slave command array at simulation time 0 but they are executed sequentially during simulation Separate read and write internal command pointers advance when bus transfers complete a rearbitrate occurs or a master abort occurs Inte
120. s true The model automatically assigns a random delay to the wait delay between and including the minimum and maximum values read dack min max integer default 0 15 These parameters specify the range for DAck delay during read cycles when slave auto mode is true The model automatically assigns a random delay to the DAck delay between and including the minimum and maximum values write dack min max integer default 0 15 These parameters specify the range for DAck delay during write cycles when slave auto mode is true The model automatically assigns a random delay to the DAck delay between and including the minimum and maximum values read comp min max integer default 0 2 These parameters specify the range for comp delay during read cycles when slave auto mode is true The model automatically assigns a random delay to the comp delay between and including the min and max values write comp min max integer default 0 2 These parameters specify the range for comp delay during write cycles when slave auto mode is true The model automatically assigns a random delay to the comp delay between and including the minimum and maximum values read_burst_term_min max integer default 7 10 These parameters specify the range for burst_term delay during read cycles when slave_auto_mode is true The model automatically assigns a random delay to the burst_term delay between and including the minimum and m
121. sage is issued when the PLB_wrDBus does not remain constant from the slaves assertion of SIn_addrAck to SIn_wrDAck and also between SIn_wrDAck assertions in multi data transfers e 2 10 2 An error message is issued when the PLB changes the write data bus from the time when a primary request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated through Mn_abort PLB_MnRearbitrate or PLB_MnTimeout 8 711 Sin wrDAck The following error messages are issued for this signal Error 2 11 1 An error message is issued when a slave asserts its SIn_wrDAck before asserting its Sln addrAck or after asserting its SIn_wrComp Error 2 11 2 An error message is issued when on a non burst write transfer the slave fails to give expected number of wrDAcks Error 2 11 3 An error message is issued when this signal is asserted during a DMA transfer type1 4 5 7 from the assertion of SIn_addrack to the assertion of SIn_wrComp Version 4 9 2 PLB Compliance Checks 83 Error 2 11 4 An error message is issued when a slave asserts is SIn_wrDAck after it has already been asserted for the last write data transfer of a burst write Error 2 11 5 An error message is issued if more than one SI wrDAck is asserted during the same clock cycle Error 2 11 6 An error message is asserted when this signal is asserted for a transfer that is outside of the slave s assigned address space Error 2 11 7 An er
122. sed slave asserts its Sln addrAck or the transfer is terminated through Mn abort or PLB MnRearbitrate or timeout Error 2 29 2 An error message is issued if this transfer gualifier does not match Mn ABus when PLB MnAddrAck is active Error 2 29 3 An error message is issued when the PLB Abus word address is non zero during a line write transfer 8 8 8 PLB busLock The following error messages are issued for this signal Error 2 30 1 An error message is issued if this arbitration gualifier does not match Mn busLock when PLB MnAddrAck is active Error 2 30 2 An error message is issued if PLB busLock and PLB SAvValid are active at the same time and the bus is not actually locked This may be due to the previous reguest being aborted Error 2 30 3 An error message is issued when PLB busLock is active and SYS plbReset is active Error 2 30 4 An error message is issued if this arbitration gualifier does not match Mn busLock when the bus is already locked Error 2 30 5 An error message is issued if this signal is asserted with no PLB PAValid or PLB SAValid and the bus is not locked Version 4 9 2 PLB Compliance Checks 89 8 8 9 PLB rdBurst The following error messages are issued for this signal Error 2 31 1 PLB_rdBurst and PLB_RESET are active at the same time Error 2 31 2 PLB asserted PLB_rdBurst without a primary or secondary read burst transfer acknowledged Error 2 31 3 PLB_rdBurst does not match M rdBurst
123. seed produced with a root_seed and the address of each byte of data To produce the source and expect data the models use an addition function for the root_seed and address which produces a unique seed for each byte of data The root_seed is typically varied by the user on a test case basis The PLB Bus Model can be configured to run with a 64 bit and a 128 bit data bus width It is important to note that the 4X version of the toolkit will not work with a 32 bit data bus width configuration For applications requiring a 32 bit data bus width there are two options PLB3X can be used and configured for 32 bits or PLB4X can be used with manipulated assignments to all unused portions of the 64 bit data connection and 8 bit byte enable connection The PLB supports all singles line fixed length burst master and slave terminated burst transfers However the PLB only supports a burst size equal to that of the slave For example ssize slave data bus width 00 size burst size 1010 ssize 01 size 1011 ssize 10 size 1100 Another option provided by the 4X toolkit is the ability to run in 3X mode This means that the toolkit will run with the functionality and signals from 3X but will have the additional monitor checks and toolkit enhancements that have been added to the 4X version This configuration is possible through the use of 3X wrappers These wrappers allow the user to instantiate 3X devices using the 4X toolkit without having
124. ser to change the slave read write response on a transaction basis For each PLB master cycle that is received the PLB slave model uses a response command from an internal read or write command array when a PLB read or write memory cycle is active within its address space The PLB slave model uses command mode instead of configuration mode when read write response commands are programmed in a test case such as read_response aack_delay 2 dack_delay 3 When the BFC parses response commands it automatically initializes the appropriate internal slave model register to enable command mode The user is not required to specify a BFL configuration parameter to use this mode Auto Mode This response mode enables various cycle responses without using pre programmed read write slave response commands In this mode the PLB slave model generates address and data phase completion signals automatically based on an internal random number generator and pre programmed minimum and maximum delays The random number generator selects a new delay value between the minimum and maximum using a uniform distribution function The minimum and maximum range may be initialized by the user using a configuration command The PLB slave model requires a configuration command for enabling auto mode The following configure statement is an example configure slave_auto_mode true 5 3 4 Internal Slave Data Memory Structure and Look Up Algorithms The PLB slav
125. stitution in the bus functional command parameters The aliases must be set up before they are used Multiple aliases may be set up It is possible to have alias files separate from BFL command files by invoking the BFC with multiple BFL files The syntax for the set_alias command is set_alias target_name string_name When an alias is established the BFC automatically substitutes the string_name for every occurrence of the target_name Example set_alias TARGET_REG 01020304 In this example the BFC automatically replaces every occurrence of the string TARGET REG with string 01020304 6 3 PLB Master Commands The PLB master command types include configuration bus cycle and internal memory access commands 6 3 1 Configure Command The configure command allows the user to configure different PLB model attributes One or more parameters can be used with a single configure command and multiple configure commands may be used in a single test case It is important to note that the configure commands are only executed at time 0 in simulation 6 3 1 1 BFL Mode Configuration Parameters e msize 2 bit This parameter specifies the Mn_Msize signals of the PLB The valid size combinations are listed in the PLB architecture specifications under transfer qualifier signals This parameter may also be used in each read write master command However when this parameter is used in a configuration statement it is retained
126. t Error 1 25 6 If enable_timeout_report is true then an error message will be issued whenever a timeout is received This error can be turned on through monitor bfl but it defaults to being turned off 8 7 Slave Interface Checks This section describes the PLB slave interface checks performed during simulation 8 7 1 PLB PAValid The following error messages are issued for this signal Error 2 1 1 An error message will be issued if PLB PAValid is deasserted without a valid termination of the request by either SIn_addrAck Sin rearbitrate Mn_abort or PLB_MnTimeout Error 2 1 2 An error message is issued if PLB PAValid is active and PLB rd wrpendReg is inactive Error 2 1 3 An error message is issued when PLB PAValid is active and SYS plbReset is active 8 7 2 PLB SAValid The following error messages are issued for this signal 80 Processor Local Bus Functional Model Toolkit Version 4 9 2 Error 2 2 1 An error message will be issued if PLB SAvValid is deasserted for a secondary read cycle without a valid termination of the request by either Sln addrAck or Mn abort SI rdComp or SI rearbitrate Error 2 2 2 An error message will be issued if PLB SAValid is deasserted for a secondary write cycle without a valid termination of the request by either Sln_addrAck or Mn abort SI wrComp or SI rearbitrate Error 2 2 3 An error message will be issued when a secondary reguest is not converted into a primary r
127. the deassertion of lock is specified with the unlock mode parameter A cycle is defined by the assertion of PLB_MAddrAck PLB_MTimeout or M_abort Note that if two commands are given both with an unlock_delay gt 1 the unlock_delay from the first command will be used to deassert M_buslock and not the second For example write addr 08f9f360 size 0001 priority 11 lock 1 unlock_delay 4 unlock_mode cycle read addr 08f9f460 size 0001 priority 11 lock 1 unlock delay 3 unlock mode cycle In this case the M buslock will be deasserted 4 cycles after the write request The unlock delay of 3 will be ignored e type 3 bit default 000 This parameter specifies the Mn_type signals of the PLB The valid size combinations are listed in the PLB architecture specifications under transfer qualifier signals The default value is a memory transfer e compress 1 bit default 0 This parameter enables the assertion of the Mn_Compress signal for the duration of the master request phase guarded 1 bit default 0 This parameter enables the assertion of the Mn_Guarded signal for the duration of the master request phase e ordered 1 bit default 0 This parameter enables the assertion of the Mn_Ordered signal for the duration of the master request phase lockErr 1 bit default 0 This parameter enables the assertion of the Mn_lockErr signal or the duration of the master request phase e burst count integer This para
128. this signal Error 3 1 1 An error message is issued when a write burst transfer has timed out and the arbiter does not assert this signal to the corresponding master who s request timed out Version 4 9 2 PLB Compliance Checks 91 8 9 2 PLB MnRdBTerm The following error messages are issued for this signal e Error 3 2 1 An error message is issued when a read burst transfer has timed out and the arbiter does not assert this signal to the corresponding master who s request timed out 8 9 3 PLB MnErr An error message is issued if a time out occurs and the arbiter fails to assert the corresponding PLB MnErr signal in any read write DAck cycle for non line line or burst transfer requests 92 Processor Local Bus Functional Model Toolkit Version 4 9 2 Index A about this book xiii address map setup error 69 alu instructions 20 B back to back read transfers 57 back to back read write read write transfers 61 BFM device configuration commands 29 branch intructions 21 branch processor register 20 burst modes 26 burst operations 19 bus functional compiler PLB model toolkit 12 bus functional compiler files 5 bus model toolkits PLB toolkit 1 bus models 14 Cc command modes 18 23 conversion cycles with different PLB device sizes 20 26 D declarations file access 12 decode unit 17 E example test case file 5 F four word line read followed by four word line write transfers 67 fourword line read transfe
129. to connect all of the additional 4X signals Please see the section titled Running in 4X Bus Models in 3X Mode for more configuration information The PLB monitor model receives all PLB core signals in the PLB test bench environment It performs bus protocol checking for arbitration and data transfers Error detection is reported to the user through direct register access and message generation 14 Processor Local Bus Functional Model Toolkit Version 4 9 2 5 1 Running the 4X Bus Models in 3X Mode As discussed previously the 4X toolkit may be configured to run in 3X mode This allows the user to have access to all of the functionality and signals from the 3X toolkit with additional checks from the monitor and improvements to the toolkit itself In order to run in 3X mode the user must do the following Change the PLB ARCHITECTURE VERSION in the plb_dcl to 3 Change the PLB DATA BUS WIDTH in the plb_dcl to 64 Change the PLB READ PIPELINE DEPTH in the plb dcl to 2 A larger value can be used when using the arbiter model Instantiate devices using the 3X wrappers i e use plb_master3x plb_slave3x titles for instantiation Connect the byte enable signals for a 64 bit bus byte enables are 8 bits for a 64 bit bus as opposed to 4 bits for a 32 bit bus and 16 bits for a128 bit bus Note that ordered guarded and compressed are separate in 3X but are part of the t attribute in 4X Note that merr in 3X is separated into mrderr and mw
130. ty mode wrapper for the PLB master component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit master model being used with 3 x PLB Architecture arbiter designs plb_slave3x vhd plb_slave3x v This HDL file is a compatibility mode wrapper for the PLB slave component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit slave model being used with 3 x PLB Architecture arbiter designs plb monitor3x vhd plb monitor3x v Processor Local Bus Functional Model Toolkit Version 4 9 2 This HDL file is a compatibility mode wrapper for the PLB monitor component which is instantiated in this file Users should instantiate this entity in test fixtures which include the PLB model toolkit monitor model being used with 3 x PLB Architecture arbiter designs It is recommended that all simulations use the PLB monitor to ensure PLB compliance plb complex vhd plb_complex v This HDL file is the PLB test bench Designs under test may be instantiated in the test bench and simulated with the PLB behavioral models 2 4 VHDL Verilog Files for Crossbar Arbiter with crossbar monitor The PLB4 Toolkit supports use of the crossbar arbiter with the cross bar monitor In this environment these are the list of files to use and the order they need to be compiled plb_pkg vhd plb_pkg inc This HDL file is used by the P
131. uct s and or program s described in this publication at any time It is possible that this publication may contain references to or information about IBM products machines and programs programming or services that are not announced in your country Such references or information must not be construed to mean that IBM intends to announce such IBM products programming or services in your country Any reference to an IBM licensed program in this publication is not intended to state or imply that you can use only IBM s licensed program You can use any functionally equivalent program instead No part of this publication may be reproduced or distributed in any form or by any means or stored in a data base or retrieval system without the written permission of IBM Requests for copies of this publication and for technical information about IBM products should be made to your IBM Authorized Dealer or your IBM Marketing Representative Address comments about this publication to IBM Corporation Department YM5A P O Box 12195 Research Triangle Park NC 27709 IBM may use or distribute whatever information you supply in any way it believes appropriate without incurring any obligation to you Copyright International Business Machines Corporation 1996 2003 All rights reserved 4321 Notice to U S Government Users Documentation Related to Restricted Rights Use duplication or disclosure is subject to restrictions set forth in G
132. ued if there are no enabled bytes on Mn BE when Mn reguest is active and Mn size indicate a non line non burst transfer Error 1 5 3 An error message is issued if Mn BE contains non contiguous enabled bytes when Mn reguest is active and Mn size indicate a non line non burst transfer memory transfer Error 1 5 4 An error message is issued if the Mn BE bit corresponding to the LSB bits of Mn ABus encode is not active for a non line non burst transfer For example On a non line non burst transfer reguest with Mn ABus 30 31 11 Mn BE 0 3 must be 0001 Error 1 5 5 Version 4 9 2 PLB Compliance Checks 73 An error message is issued if the Mn BE signal is not properly replicated as indicated in the architecture specification for smaller masters connected to larger width PLB Arbiters 8 6 6 Mn size 0 3 The following error messages are issued for this signal Error 1 6 1 An error message is issued when a master changes this transfer qualifier from when a request to transfer is made until the addressed slave asserts its Sln addrAck or the transfer is terminated via Mn_abort PLB MnRearbitrate or Mn Timeout Error 1 6 2 When Mn_request is active an error message is issued for the following combination of Mn type values as shown in Table 2 and Mn_size values as shown in Table 3 Table 2 Mn_type Values Mn_type Mn_size 000 Any of the reserved size codes 001 Any of the reserved size
133. uest priority 72 Mn_rdBurst Master n Master n burst read transfer indicator 77 Mn_request Master n Master n bus request 72 Mn RNW Mastern Master n read write 73 Mn size 0 3 Master n Master n transfer size 74 Mn type 0 2 Master n Master n transfer type 75 Mn_wrBurst Master n Master n burst write transfer indicator 77 Mn_wrDBus 0 31 Master n Master n write data bus 76 PLB_abort Arbiter PLB abort bus request indicator 91 PLB_ABus 0 31 Arbiter PLB address bus 89 PLB_BE 0 3 Arbiter PLB byte enables 87 PLB_busLock Arbiter PLB bus lock 89 PLB_guarded Arbiter PLB guarded transfer indicator 88 PLB_lockErr Arbiter PLB lock error indicator 88 PLB_masterlD 0 1 Arbiter PLB current master identifier 82 PLB_Mn_Busy Master n PLB master n slave busy indicator 82 PLB_Mn_Err Master n PLB master n slave error indicator 92 PLB_Mn_WrBTerm Master n PLB master n terminate write burst indicator 91 PLB_Mn_WrDAck Master n PLB master n write data acknowledge 78 PLB_MnAddrAck Master n PLB master n address acknowledge 78 70 Processor Local Bus Functional Model Toolkit Version 4 9 2 Table 1 Summary of PLB Signals Continued Signal Name Source Description Page PLB MnRdBTerm Master n PLB master n terminate read burst indicator 92 PLB_MnRdDAck Master n PLB master n read data acknowledge 79 PLB MnRdDBus 0 31 Master n PLB master n read data b
134. ur Word Line Read followed by Four Word Line Write set_device path plb_complex plb_master0 device_type plb_master mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f mem init addr 00000010 data 10111213 mem init addr 00000014 data 14151617 mem init addr 00000018 data 18191a1b Version 4 9 2 PLB Bus Timing 67 mem init addr 0000001c data 1c1d1e1f read addr 00000000 size 0001 be 1111 write addr 00000010 size 0001 be 1111 send level 0 set device path plb_complex plb_slave0 device_type plb_slave Initialize device O 68 mem init addr 00000000 data 00010203 mem init addr 00000004 data 04050607 mem init addr 00000008 data 08090a0b mem init addr 0000000c data 0c0d0e0f mem init addr 00000010 data 10111213 mem init addr 00000014 data 14151617 mem init addr 00000018 data 18191a1b mem_init addr 0000001c data 1c1d1e1f write_response aack_delay 0 dack_delay 0 read_response aack_delay 0 dack_delay 0 mem_check level 0 addr 00000000 data 00010203 mem_check level 0 addr 00000004 data 04050607 mem_check level 0 addr 00000008 data 08090a0b mem_check level 0 addr 0000000c data OcOd0e0f mem_check level 0 addr 00000010 data 10111213 mem_check level 0 addr 00000014 data 14151617 mem_check level 0 addr 00000018 data 18191a1b mem_check level 0 addr 0000001c data 1c1d1e1f Processor Local Bus Functi
135. uration 12 slave bus command modes 23 slave interface checks 80 slave interface PLB core OR logic error 69 T timeout handshake checks 91 transfer abort 56 V verilog files 6 vhdl files 6 vhdl signal types 10 WwW write transfers 55 Version 4 9 2 Version 4 9 2 International Business Machines Corporation 1996 2003 Printed in the United States of America 6 20 03 All Rights Reserved The information contained in this document is subject to change without notice The products described in this document are NOT intended for use in implantation or other life support applications where malfunction may result in injury or death to persons The information contained in this document does not affect or change IBM s product specifications or warranties Nothing in this document shall operate as an express or implied license or indemnity under the intellectual property rights of IBM or third parties All information contained in this document was obtained in specific environments and is presented as illustration The results obtained in other operating environments may vary THE INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED ON AN AS IS BASIS In no event will IBM be liable for any damages arising directly or indirectly from any use of the information contained in this document IBM Microelectronics Division 1580 Route 52 Bldg 504 Hopewell Junction NY 12533 6531 The IBM home page can be found at http www
136. us 79 PLB MnRdWdAdar 0 3 Master n PLB master n read word address 79 PLB_MnRearbitrate Master n PLB master n bus rearbitrate indicator 78 PLB_PAValid Arbiter PLB primary address valid indicator 80 PLB pendPri 0 1 Arbiter PLB pending reguest priority 83 PLB pendReg Arbiter PLB pending bus reguest indicator 82 PLB rdBurst Arbiter PLB burst read transfer indicator 90 PLB rdPrim Arbiter PLB secondary to primary read reguest indicator 90 PLB regPri 0 1 Arbiter PLB current reguest priority 83 PLB RNW Arbiter PLB read not write 87 PLB SAValid Arbiter PLB secondary address valid indicator 80 PLB size 0 3 Arbiter PLB transfer size 87 PLB type 0 2 Arbiter PLB transfer type 88 PLB wrBurst Arbiter PLB burst write transfer indicator 90 PLB wrDBus 0 31 Arbiter PLB write data bus 83 PLB wrPrim Arbiter PLB secondary to primary write reguest indicator 91 SI addrAck Slave Slave address acknowledge 81 SI MBusy 0 3 Slave Slave busy indicator 86 SI MErr 0 3 Slave Slave error indicator 86 SI rdBTerm Slave Slave terminate read burst transfer 86 SI rdComp Slave Slave read transfer complete indicator 85 SI rdDAck Slave Slave read data acknowledge 85 SI rdDBus 0 31 Slave Slave read data bus 84 SI rdWdAddr 0 3 Slave Slave read word address 85 SI rearbitrate Slave Slave rearbitrate bus indicator 82 SI wait Slave Slave wait indicator 82 SI wrBTerm Slave Slave terminate write burst transfer 84 SI wrComp Slave Slave write transfer complete indicator 84 SI wrDAck Slave S
137. values are SR R0 31 e DST This parameter specifies the condition register destination of the compare instruction Valid values are CRO 7 Example compare RO R1 CR1 6 3 12 Add Command The add command updates an internal master register with the result of an addition between an internal register and an immediate value Each add command executes in one PLB clock cycle DST hex value up to 4 bytes These two parameters specify the 32 bit internal destination register to be updated and the immediate hexadecimal value to be added to the destination register The DST must be RO 31 SR or CR Example add RO 01 6 3 13 Sub Command The sub command updates an internal master register with the result of a subtraction between an internal register and an immediate value Each sub command executes in one PLB clock cycle DST hex value up to 4 bytes These two parameters specify the 32 bit internal destination register to be updated and the immediate hexadecimal value to be subtracted from the destination register The DST must be RO 31 SR or CR Example sub R0 01 6 3 14 AND Command The AND command updates an internal master register with the result of a bit wise AND operation between an internal register and an immediate value Each AND command executes in one PLB clock cycle DST hex value up to 4 bytes These two parameters specify the 32 bit internal destination register to be updated and the imme
138. vel 0 addr 00000008 data 08090a0b mem_check level 0 addr 0000000c data OcOd0e0f 64 Processor Local Bus Functional Model Toolkit Version 4 9 2 7 8 Four word Line Write Transfers Figure 15 shows the operation of a single four word line write to a slave device which is capable of latching data every clock cycle from the PLB Cycle SYS plbCik Transfer Qualifiers Mn_request Mn_priority 0 1 Mn_busLock Mn RNW Mn BE 0 3 Mn size 0 3 Mn type 0 2 Mn abort Mn ABus 0 31 PLB PAValid SI AddrAck SI wait Write Data Bus Mn wrDBus 0 31 SI wrDAck SI wrComp Mn wrBurst Read Data Bus SI rdDBus 0 31 SI_rdWdAddr 0 3 SI_rdDAck SI rdComp Mn rdBurst set device mem init mem init _ er A A mem_init valid y CA LAI KA poor o00 mE Ko y FA PNext Rd Avalid 4 Next Wr Avalid PA Nekt Rd AddrAck 4 Next Wr AddrAck E Ni Xwo Ywi Xw2 Yw3 Y AN 0000 0000 Figure 15 Four Word Line Write path plb complex plb masterO device type plb master addr 00000000 data 00010203 addr 00000004 data 04050607 addr 00000008 data 08090a0b mem_init addr 0000000c data OcOd0e0f write addr 00000000 size 0001 be 1111 send level 0 Version 4 9 2 PLB Bus Timing 65 set device path plb complex plb
139. wrDBus 0 PLB DATA BUS WIDTH 000 cece ee eee eens 76 Mi rd Burst 21538 LA tel ons ate oo ek a na e o A an Sa 77 Mine WiBUtSt na A ae wlth tn hs hares na baa Ree 77 PLB MnAddFAckk 42 22 a ES YAA AS Roe RE Re ied ES 78 PLB MnRearbitrate csa os tadas ba data td rn tate la 78 PEBE2MOWEIDAck ica ana naa an the et oe ge AN Enam Dana dn 78 PEBeMnRdDAck lt 025 aaien fa ees BARA doe he Tn E BE den 79 PLB_MnRdWdAddr 0 3 ii 79 PEBMNBUSY curtir ab aa an dana sa e Beene te 79 PLB_MRdErr PLB_MWrErr Lo ee eens 79 PLB MSSIZ65 a to Dn SA KAN aa REA naa as eed ie ee the lee 79 Version 4 9 2 Contents vii PEB MOTIMeQ t 22252 ae to de dt nt eed INK et LAN 80 Slave Interface Checks sua ii as Lal dde 80 PLB PAV alli a eaaa AN ts y ad ddr aa 80 PEBESA Valid ns A a a enda dia 80 DOI AGCGGACK saa A A A ae ha Be weg ta E Sd Ge 81 SIN Wit Gta Benard ERA ade eet RE EE Weed AI Ai dead 82 SIngrearbitraters 65 56 ita ala banana ant on mana ira baikan Aa mpd raters anh ends 82 PEB rd Wrpend REG iis 2th an a ad EN Bean E EA 82 PLB MasterlD 0 3 4 22444 mena ba PE ee ee ena bea TA PE ee RA 82 PLB rd wrpend PRO iaaa eia anda a SBN UN BA NE RAN ee 83 PEB reg OVER Gina a BRA PN 83 PEB WDBUS 4 sic saree Ye Stone wld teh tech ae a Bele Se e ed a eE 83 DIN Wi DA ea aa ll ts a cat 83 SIM WGOMP RA AA ee cae nde Goi Bu ee eae do A 84 SINE WB EM Aa ba i oats Of SS ay tk Lote mms fh Ga Sapte tM 84 Snsd DBUS 2 era dis ad na ae decent da A

Download Pdf Manuals

image

Related Search

Related Contents

Modelo: ESTRELLA – 2/3Grupos  FP92W 19" Wide-Screen LCD Monitor User Manual  Canon imageCLASS D1370  Manual - Embedded Computer Source  “Countdown Timer” automatic water limiting supply shut off safety  Digital TV Box User Manual  DOOR ACCESS SYSTEM USER`S MANUAL KTGS01  EASY HELP  Samsung GT-M8910 Manual de Usuario  Samsung CLP-300 Наръчник за потребителя  

Copyright © All rights reserved.
Failed to retrieve file