+ All Categories
Home > Documents > AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab...

AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab...

Date post: 10-May-2018
Category:
Upload: dohuong
View: 235 times
Download: 4 times
Share this document with a friend
23
AMBA APB – Case Study AMBA APB AMBA APB Case Study Case Study Pallab Pallab Dasgupta Dasgupta Professor, Dept. of Computer Science & Professor, Dept. of Computer Science & Engg Engg ., ., Professor Professor - - in in - - charge, AVLSI Design Lab, charge, AVLSI Design Lab, Indian Institute of Technology Kharagpur Indian Institute of Technology Kharagpur Testing & Verification Dept. of Computer Science & Engg, IIT Kharagpur Testing & Verification Testing & Verification Dept. of Computer Science & Dept. of Computer Science & Engg Engg , IIT Kharagpur , IIT Kharagpur
Transcript
Page 1: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

AMBA APB – Case StudyAMBA APB AMBA APB –– Case StudyCase Study

Pallab Pallab DasguptaDasguptaProfessor, Dept. of Computer Science & Professor, Dept. of Computer Science & EnggEngg.,.,ProfessorProfessor--inin--charge, AVLSI Design Lab,charge, AVLSI Design Lab,Indian Institute of Technology KharagpurIndian Institute of Technology Kharagpur

Testing & VerificationDept. of Computer Science & Engg, IIT KharagpurTesting & VerificationTesting & VerificationDept. of Computer Science & Dept. of Computer Science & EnggEngg, IIT Kharagpur, IIT Kharagpur

Page 2: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

2© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Advanced Microcontroller Bus Architecture (AMBA)Advanced Microcontroller Bus Architecture (AMBA)

Defines an onDefines an on--chip communications standard for designing highchip communications standard for designing high--performance embedded microcontrollersperformance embedded microcontrollers

Three Components:Three Components:■■ Advanced HighAdvanced High--performance Bus (AHB)performance Bus (AHB)■■ Advanced System Bus (ASB)Advanced System Bus (ASB)■■ Advanced Peripheral Bus (APB)Advanced Peripheral Bus (APB)

HighHigh--bandwidthbandwidthMemory InterfaceMemory Interface

HighHigh--performanceperformanceARM processorARM processor

HighHigh--bandwidthbandwidthOnOn--chip RAMchip RAM

DMA busDMA busmastermaster

BBRRIIDDGGEE

UARTUART TimerTimer

KeypadKeypad PIOPIO

AHB or ASBAHB or ASB APBAPB

APB bridgeAPB bridge

Page 3: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

3© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

APB & Its State DiagramAPB & Its State Diagram

APB is used to interface to any APB is used to interface to any peripherals which are of low peripherals which are of low bandwidth and do not require high bandwidth and do not require high performance of pipelined bus performance of pipelined bus interfaceinterface

Salient Features:Salient Features:■■ Low power consumptionLow power consumption■■ Reduced interface complexityReduced interface complexity■ Latched address & control■ Suitable for many peripherals

IDLEIDLEPSELxPSELx = 0= 0

PENABLE = 0PENABLE = 0

SETUPSETUPPSELxPSELx = 1= 1

PENABLE = 0PENABLE = 0

ENABLEENABLEPSELxPSELx = 1= 1

PENABLE = 1PENABLE = 1

No TransferNo Transfer

TransferTransfer

TransferTransferNo TransferNo Transfer

APB State DiagramAPB State Diagram

Page 4: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

4© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

APB Bridge InterfaceAPB Bridge Interface

APB bridge is the only bus master on the AMBA APB. APB bridge is the only bus master on the AMBA APB.

APB bridge is also a slave on the higherAPB bridge is also a slave on the higher--level system bus.level system bus.

APBAPBBridgeBridge

System busSystem busSlave interfaceSlave interface

Read dataRead data

ResetReset

ClockClock

PRDATAPRDATA

PRESETnPRESETn

PCLKPCLK

PSEL1PSEL1PSEL2PSEL2

PSELnPSELn

PENABLEPENABLE

PADDRPADDR

PWDATAPWDATA

PWRITEPWRITE

...... SelectsSelects

StrobeStrobe

AddressAddressandand

ControlControl

Write dataWrite data

Page 5: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

5© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

APB Slave InterfaceAPB Slave Interface

APB slaves have a simple, yet flexible, interface. APB slaves have a simple, yet flexible, interface. Exact implementation of the interface will be dependent on the Exact implementation of the interface will be dependent on the design style employed and many different options are possible.design style employed and many different options are possible.

APBAPBSlaveSlave

Read dataRead data

ResetReset

ClockClock

PRDATAPRDATA

PRESETnPRESETn

PCLKPCLK

PSELxPSELx

PENABLEPENABLE

PADDRPADDR

PWDATAPWDATA

PWRITEPWRITE

SelectSelect

StrobeStrobe

AddressAddressandand

ControlControl

Write dataWrite data

Page 6: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

6© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

APB Write TransferAPB Write Transfer

Page 7: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

7© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

APB Read TransferAPB Read Transfer

PCLKPCLK

Page 8: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

8© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Layered Random Test ArchitectureLayered Random Test Architecture

GeneratorsGeneratorsGenerators

TransactorTransactorTransactor

TestsTestsTests

DriverDriverDriver

Self-CheckSelfSelf--CheckCheck

AssertionsAssertionsAssertions

CheckerCheckerChecker

MonitorMonitorMonitor

DUTDUTDUT

Verification Verification EnvironmentEnvironment

Test BenchTest Benchcreates random

transactions

creates random

transactions

executestransactions

executestransactions

supplies data to the DUT

supplies data to the DUT

creates interestingconditions

creates interestingconditions

identifiestransactions identifies

transactions checks

correctness checks

correctness

observes data from the DUT

observes data from the DUT

Page 9: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

9© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Environment Setup & ExecuteEnvironment Setup & Execute

TopTop--level test bench instantiates the DUT environment, builds it level test bench instantiates the DUT environment, builds it and runs all steps in layered architecture by executing this and runs all steps in layered architecture by executing this environmentenvironment

The test environment structure is as follows:The test environment structure is as follows:

dut_envdut_env envenv; ; // DUT Environment// DUT Environmentinitial begininitial beginenvenv = = new(mst_ifnew(mst_if, , mon_ifmon_if); );

// Creating environment: Master Interface and Monitor Interface// Creating environment: Master Interface and Monitor Interfaceenv.buildenv.build(); (); // Building environment// Building environmentenv.runenv.run(); (); // Run all steps// Run all steps

endend

Page 10: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

10© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Components of EnvironmentComponents of Environment

Test bench TopTest bench Top--level components include:level components include:■■ APB Atomic GeneratorAPB Atomic Generator■■ APB MasterAPB Master■■ APB MonitorAPB Monitor■■ ScoreboardScoreboard

apb_cfgapb_cfg cfgcfg; ; // specifies transaction// specifies transaction// configuration// configuration

apb_trans_channelapb_trans_channel gen2mas; gen2mas; // channel between// channel between// generator & master// generator & master

apb_trans_channelapb_trans_channel mon2scb; mon2scb; // channel between// channel between// monitor & score// monitor & score--boardboard

apb_trans_atomic_genapb_trans_atomic_gen gengen; ; // APB transaction generator// APB transaction generatorapb_masterapb_master mstmst; ; // APB master// APB masterapb_monitorapb_monitor monmon; ; // APB monitor// APB monitordut_sbdut_sb scbscb; ; // scoreboard// scoreboard

Page 11: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

11© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Overall Execution FlowOverall Execution Flow

Generate ConfigurationGenerate Configurationfor Testsfor Tests

Generate Random Generate Random Test ScenariosTest Scenarios

Execute Individual TestExecute Individual TestScenariosScenarios

Execute CommandsExecute CommandsCorresponding to TestCorresponding to Test

class apb_cfg;rand int trans_cnt;

task apb_master::do_write(apb_trans tr);

endtask: do_write

in_chan.get(tr);if ((tr.dir) == apb_trans::WRITE)

do_write(tr);

this.randomized_obj.randomize();$cast(tr,this.randomized_obj.copy());this.out_chan.put(tr);

Page 12: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

12© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Signal LayerSignal Layer

Specifies DUT interface signalsSpecifies DUT interface signalsinterface interface apb_if(inputapb_if(input PClkPClk););logic [`APB_ADDR_WIDTHlogic [`APB_ADDR_WIDTH--1:0] 1:0] PAddrPAddr;;logic logic PSelPSel;;logic [`APB_DATA_WIDTHlogic [`APB_DATA_WIDTH--1:0] 1:0] PWDataPWData;;logic [`APB_DATA_WIDTHlogic [`APB_DATA_WIDTH--1:0] 1:0] PRDataPRData;;logic logic PEnablePEnable;;logic logic PWritePWrite;;logic logic RstRst;;

/* master & monitor clocking blocks *//* master & monitor clocking blocks */

modportmodport Master(clockingMaster(clocking master_cbmaster_cb););modportmodport Monitor(clockingMonitor(clocking monitor_cbmonitor_cb););modportmodport Slave(inputSlave(input PAddrPAddr, , PClkPClk, , PSelPSel, , PWDataPWData,,

PEnablePEnable, , PWritePWrite, , RstRst, output , output PRDataPRData););endinterfaceendinterface

Page 13: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

13© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Command LayerCommand Layer

APB master implements driver routines named APB master implements driver routines named do_readdo_read()(), , do_writedo_write()() and and do_idledo_idle()()

task task apb_master::apb_master::do_write(apb_transdo_write(apb_trans trtr));;// Drive Control bus// Drive Control bus`̀APB_MASTER_IF.PAddrAPB_MASTER_IF.PAddr <= <= tr.addrtr.addr;;`̀APB_MASTER_IF.PWDataAPB_MASTER_IF.PWData <= <= tr.datatr.data;;`̀APB_MASTER_IF.PWriteAPB_MASTER_IF.PWrite <= 1'b1;<= 1'b1;`APB_MASTER_IF.PSel <= 1'b1;`APB_MASTER_IF.PSel <= 1'b1;

// Assert // Assert PenablePenable##1 `##1 `APB_MASTER_IF.PEnableAPB_MASTER_IF.PEnable <= 1'b1;<= 1'b1;

// // DeassertDeassert itit##1 `##1 `APB_MASTER_IF.PEnableAPB_MASTER_IF.PEnable <= 1'b0;<= 1'b0;

endtaskendtask: : do_writedo_write

Page 14: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

14© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Functional Layer Functional Layer

Functional layer (APB master) receives the transaction Functional layer (APB master) receives the transaction generated by the scenario layer from the channel.generated by the scenario layer from the channel.

apb_transapb_trans trtr;;

in_chan.get(trin_chan.get(tr););case (case (tr.dirtr.dir))apb_trans::READapb_trans::READ: : do_read(trdo_read(tr););apb_trans::WRITEapb_trans::WRITE: : do_write(trdo_write(tr););default: default: do_idledo_idle();();

endcaseendcase

Page 15: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

15© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Scenario LayerScenario Layer

Scenario layer (APB atomic generator) creates individual Scenario layer (APB atomic generator) creates individual transaction object & sends to the functional layer through channtransaction object & sends to the functional layer through channelel

apb_transapb_trans trtr;;

apb_trans_atomic_gen::newapb_trans_atomic_gen::new((……););

this.addrthis.addr = 0; = 0; this.datathis.data = 0; = 0; this.dirthis.dir=IDLE; =IDLE;

endfunction:newendfunction:new

apb_trans_atomic_gen::mainapb_trans_atomic_gen::main((……););

this.randomized_obj.randomizethis.randomized_obj.randomize();();

$$cast(trcast(tr, , this.randomized_obj.copythis.randomized_obj.copy());());

this.out_chan.put(trthis.out_chan.put(tr););

endfunction:mainendfunction:main

Page 16: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

16© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Test LayerTest Layer

envenv creates an object of creates an object of apb_cfgapb_cfg which contains the which contains the

configuration for the tests for APB VIPconfiguration for the tests for APB VIP

class class apb_cfgapb_cfg;;rand rand intint trans_cnttrans_cnt;;constraint basic {constraint basic {trans_cnttrans_cnt > 5;> 5;trans_cnttrans_cnt < 10;< 10;

}}endclassendclass: : apb_cfgapb_cfg

apb_cfgapb_cfg cfgcfg;;

cfg.randomizecfg.randomize();();

Page 17: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

17© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Monitor Execution FlowMonitor Execution Flow

Page 18: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

18© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Functional Layer (Monitor)Functional Layer (Monitor)

dut_envdut_env creates an object of creates an object of dut_sbdut_sb which implements the which implements the checker componentchecker component

Implements Implements check_readcheck_read, , check_writecheck_write etc.etc.

scoreboard waits for a transaction to be generated then waits foscoreboard waits for a transaction to be generated then waits for r the monitor to notify that this transaction occurred. the monitor to notify that this transaction occurred.

determines the transaction correctness by applying the determines the transaction correctness by applying the following:following:■■ Each generated WRITE transactions are stored to a register Each generated WRITE transactions are stored to a register

file (which acts as a reference model in this case).file (which acts as a reference model in this case).■■ Each generated READ transactions get their data field filled Each generated READ transactions get their data field filled

from the register file (so to provide an expected result).from the register file (so to provide an expected result).■■ each transactions is then compared on a firsteach transactions is then compared on a first--come firstcome first--

serve basis.serve basis.

Page 19: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

19© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Functional Layer (code snippet for checker)Functional Layer (code snippet for checker)Executes the following code in infinite loop:Executes the following code in infinite loop:

mon2scb.get(mon_tr);mon2scb.get(mon_tr);

mas_trmas_tr = = from_master_q.pop_frontfrom_master_q.pop_front();();

exp_dataexp_data = top.m1.memory_read(mas_tr.addr);= top.m1.memory_read(mas_tr.addr);

case(mas_tr.dircase(mas_tr.dir) )

apb_trans::WRITEapb_trans::WRITE: : check_write(mas_trcheck_write(mas_tr, , mon_trmon_tr, , exp_dataexp_data););

apb_trans::READapb_trans::READ: : check_readcheck_read ((mas_trmas_tr, , mon_trmon_tr, , exp_dataexp_data););

default: `default: `vmm_fatal(logvmm_fatal(log, "Fatal error: Scoreboard , "Fatal error: Scoreboard received illegal master transaction");received illegal master transaction");

endcaseendcase

if(matchif(match >= >= max_trans_cntmax_trans_cnt) begin) begin

`̀vmm_verbose(this.logvmm_verbose(this.log, $, $psprintf("Donepsprintf("Done scorboardingscorboarding found found %d matches", match));%d matches", match));

this.notify.indicate(this.DONEthis.notify.indicate(this.DONE););

endend

Page 20: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

20© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

Command Layer (Checker)Command Layer (Checker)APBAPB--Monitor uses callbacks to monitor the bus before and after the Monitor uses callbacks to monitor the bus before and after the transactiontransaction

while(1) beginwhile(1) begin

$$cast(trcast(tr, , randomized_obj.copyrandomized_obj.copy());());

// Pre// Pre--Rx CallbackRx Callback

`̀vmm_callback(apb_monitor_callbacksvmm_callback(apb_monitor_callbacks ,,monitor_pre_rx(thismonitor_pre_rx(this, , trtr));));

// Sample the bus using the // Sample the bus using the apb_sampleapb_sample() task() task

sample_apb(trsample_apb(tr););

// Put the trans into the output channel// Put the trans into the output channel

out_chan.put(trout_chan.put(tr););

// Add a Post// Add a Post--Rx Callback. Typically for Coverage or ScoreboardRx Callback. Typically for Coverage or Scoreboard

`̀vmm_callback(apb_monitor_callbacksvmm_callback(apb_monitor_callbacks ,,monitor_post_rx(thismonitor_post_rx(this, , trtr));));

`̀vmm_debug(logvmm_debug(log, , tr.psdisplay("Monitortr.psdisplay("Monitor ==>"));==>"));

endend

Page 21: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

21© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

AMBA APB Property SetAMBA APB Property Set

PSEL:PSEL:■■ If If PSELxPSELx is LOW for some slave x in the present cycle (1ST) is LOW for some slave x in the present cycle (1ST)

and in the next (2nd) cycle it goes HIGH, it must be also HIGH and in the next (2nd) cycle it goes HIGH, it must be also HIGH in the next (3rd) cycle.in the next (3rd) cycle.

■■ At a time only one PSEL can be high i.e. only 1 slave can be At a time only one PSEL can be high i.e. only 1 slave can be selected at a time.selected at a time.

PENABLE:PENABLE:■■ If PENABLE is HIGH in the present cycle, it must go LOW in If PENABLE is HIGH in the present cycle, it must go LOW in

the next cycle.the next cycle.

Page 22: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

22© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

AMBA APB Property Set (contd..)AMBA APB Property Set (contd..)

PSEL & PENABLE:PSEL & PENABLE:

■■ If If PSELxPSELx is LOW for some slave x in the present cycle (1st) is LOW for some slave x in the present cycle (1st) and in the next cycle (2nd) it becomes HIGH then one more and in the next cycle (2nd) it becomes HIGH then one more cycle later (3rd) PENABLE must also be HIGH.cycle later (3rd) PENABLE must also be HIGH.

■■ If all of the PSEL is LOW in the present cycle (1st) then in theIf all of the PSEL is LOW in the present cycle (1st) then in thesame cycle (1st) & also in the next cycle (2nd) PENABLE same cycle (1st) & also in the next cycle (2nd) PENABLE must also be LOW.must also be LOW.

■■ If PENABLE is HIGH (1st) and in the next cycle (2nd) PSEL is If PENABLE is HIGH (1st) and in the next cycle (2nd) PSEL is HIGH, then one more cycle (3rd) later PSEL & PENABLE are HIGH, then one more cycle (3rd) later PSEL & PENABLE are both HIGH.both HIGH.

Page 23: AMBA APB – Case StudyAMBA APB – Case Study APB – Case StudyAMBA APB – Case Study Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in-charge, AVLSI Design

23© Pallab © Pallab DasguptaDasgupta, Dept. of Computer Sc & , Dept. of Computer Sc & EnggEngg, IIT Kharagpur, IIT Kharagpur

AMBA APB Property Set (contd..)AMBA APB Property Set (contd..)

PENABLE & PWDATA:PENABLE & PWDATA:■■ If PENABLE is HIGH in the present cycle then PWDATA will If PENABLE is HIGH in the present cycle then PWDATA will

hold the same value as the previous cycle.hold the same value as the previous cycle.

PSEL & PWRITE:PSEL & PWRITE:■■ If PWRITE changes one of the PSEL must be HIGH.If PWRITE changes one of the PSEL must be HIGH.

PENABLE & PWRITE:PENABLE & PWRITE:■■ If PENABLE is HIGH in the present cycle then PWRITE will If PENABLE is HIGH in the present cycle then PWRITE will

hold the same value as the previous cycle.hold the same value as the previous cycle.

PENABLE & PADDR:PENABLE & PADDR:■■ If PENABLE is HIGH in the present cycle then PADDR will If PENABLE is HIGH in the present cycle then PADDR will

hold the same value as the previous cycle.hold the same value as the previous cycle.


Recommended