Altera Avalon Verification IP Suite Uživatelský manuál

Procházejte online nebo si stáhněte Uživatelský manuál pro Měřící nástroje Altera Avalon Verification IP Suite. Altera Avalon Verification IP Suite User Manual Uživatelská příručka

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 224
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků

Shrnutí obsahu

Strany 1 - User Guide

Introduction to Avalon Verification IP SuiteUser Guide101 Innovation DriveSan Jose, CA 95134www.altera.comUG-010732014.06.30SubscribeSend Feedback

Strany 2 - Contents

event_instruction_inconsistent() ...15-3event_instruction

Strany 3

get_command_data()bit [AV_DATA_W-1:0] get_command_data(int index)Prototype:Verilog HDL: indexVHDL: command_data, index, bfm_id, req_if(bfm_id)Argument

Strany 4

get_command_queue_size()int get_command_queue_size()Prototype:Verilog HDL: NoneVHDL: command_queue_size, bfm_id, req_if(bfm_id)Arguments:intReturns:Qu

Strany 5

get_command_transaction_id()AvalonTransactionId_t get_command_transaction_id()Prototype:Verilog HDL: NoneVHDL: command_transaction_id, bfm_id, req_if(

Strany 6

get_response_address()bit [AV_ADDRESS_W-1:0] get_response_address()Prototype:Verilog HDL: NoneVHDL: response_address, bfm_id, req_if(bfm_id)Arguments:

Strany 7

get_response_data()bit [AV_DATA_W-1:0] get_response_data(int index)Prototype:Verilog HDL: indexVHDL: response_data, index, bfm_id, req_if(bfm_id)Argum

Strany 8

get_response_read_id()AvalonTransactionId_t get_response_read_id()Prototype:Verilog HDL: NoneVHDL: response_read_id, bfm_id, req_if(bfm_id)Arguments:A

Strany 9

get_response_wait_time()int get_response_wait_time(int index)Prototype:Verilog HDL: indexVHDL: response_wait_time, index, bfm_id, req_if(bfm_id)Argume

Strany 10 - Altera Corporation

get_transaction_fifo_max()int get_transaction_fifo_max()Prototype:Verilog HDL: NoneVHDL: transaction_fifo_max, bfm_id, req_if(bfm_id)Arguments:intRetu

Strany 11

init()init()Prototype:Verilog HDL: NoneVHDL: bfm_id, req_if(bfm_id)Arguments:voidReturns:Initializes the counters and clears the queue.Description:Ver

Strany 12 - BFM Implementation

set_command_transaction_mode()set_command_transaction_mode()Prototype:Verilog HDL: int modeVHDL: int mode, bfm_id, req_if(bfm_id)Arguments:voidReturns

Strany 13 - VHDL SupportVerilog HDL

Running the Simulation ...16-5Observing th

Strany 14 - Application Example of BFMs

signal_command_receivedsignal_command_receivedPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Notifies the testbench that a command was det

Strany 15 - Testbench

signal_response_completesignal_response_completePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Triggers when either signal_read_response_c

Strany 16 - Clock Source BFM

signal_write_response_completesignal_write_response_completePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Notifies the testbench that the

Strany 17 - Clock_stop()

8Avalon-ST Source BFMSubscribeSend FeedbackThe Avalon-ST Source BFM implements the Avalon-ST interface protocol. The Avalon-ST protocol ispoint-to-poi

Strany 18 - Reset Source BFM

Figure 8-2: Avalon-ST Source Sending Data to a SinkThe following figure illustrates the timing when READY_LATENCY = 0.CLKreadyvaliddataD1 D2Ssrc_drSsr

Strany 19

• Response Descriptor—Collects information about completed transactions.Figure 8-3: Block Diagram of the Avalon-ST Source BFMTransaction DescriptorPub

Strany 20

DescriptionLegalValuesDefaultValueParameterPort WidthsData symbol width in bits. The symbol width shouldbe 8 for byte-oriented interfaces.1–10248Symbo

Strany 21 - Interrupt Source and Sink API

event_min_transaction_queue_size()event_min_transaction_queue_size()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbenc

Strany 22

event_src_ready()event_src_ready()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbench that the ready signal was assert

Strany 23 - Avalon-MM Master BFM

get_response_queue_size()get_response_queue_size()Prototype:Verilog HDL: NoneVHDL: response_queue_size, bfm_id, req_if(bfm_id)Arguments:intReturns:Ret

Strany 24

1Introduction to Avalon Verification IP SuiteSubscribeSend FeedbackThe Avalon®Verification IP Suite provides bus functional models (BFMs) to simulate

Strany 25

get_version()get_version()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:StringReturns:Returns BFM version as a string of three integers separated by

Strany 26

push_transaction()push_transaction()Prototype:Verilog HDL: NoneVHDL: bfm_id, req_if(bfm_id)Arguments:voidReturns:Inserts the out-going transaction int

Strany 27 - Block Diagram

set_response_timeout()set_response_timeout(int cycles)Prototype:Verilog HDL: cyclesVHDL: cycles, bfm_id, req_if(bfm_id)Arguments:voidReturns:Sets the

Strany 28 - Master BFM

set_transaction_idles()set_transaction_idles(bit[31:0] idle_cycles)Prototype:Verilog HDL: idle_cyclesVHDL: idle_cycles, bfm_id, req_if(bfm_id)Argument

Strany 29

set_transaction_sop()set_transaction_sop(bit sop)Prototype:Verilog HDL: sopVHDL: sop, bfm_id, req_if(bfm_id)Arguments:voidReturns:Sets the status of t

Strany 30

signal_response_donesignal_response_donePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that the response to a driven data beat is

Strany 31 - Avalon-MM Master BFM API

signal_src_transaction_completesignal_src_transaction_completePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that all pending tran

Strany 32

9Avalon-ST Sink BFMSubscribeSend FeedbackThe Avalon-ST Sink BFM implements the Avalon-ST interface protocol. The Avalon-ST protocol ispoint-to-point,

Strany 33

Figure 9-2: Avalon-ST Source and Sink TimingCLKreadyvaliddataD1 D2Ssnk_rdyaSsnk_rdydSsnk_rdydStrSsnk_rdyaTidleTidleTable 9-1: Key to AnnotationsThe fo

Strany 34

• Public Events—Signals the events described in the API.Figure 9-3: Block Diagram of the Avalon-ST Sink BFMTransaction DescriptorPublicEventsAvalon-ST

Strany 35

Verilog HDL with a few basic SystemVerilog constructs that are supported by ModelSim®-Altera Edition(AE).The Quartus II software version 13.0 and high

Strany 36

DescriptionLegalValuesDefaultValueParameterPort WidthsData symbol width in bits. The symbol width shouldbe 8 for byte-oriented interfaces.1–10248Symbo

Strany 37

event_sink_ready_assert()event_sink_ready_assert()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Signals that the ready signal was asser

Strany 38

get_transaction_idles()get_transaction_idles()Prototype:Verilog HDL: NoneVHDL: transaction_idles,bfm_id, req_if(bfm_id)Arguments:bit[31:0]Returns:Retu

Strany 39

get_transaction_error()get_transaction_error()Prototype:Verilog HDL: NoneVHDL: transaction_error, bfm_id, req_if(bfm_id)Arguments:STError_tReturns:Ret

Strany 40

get_version()get_version()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:stringReturns:Returns BFM version as a string of three integers separated by

Strany 41

set_ready()set_ready()Prototype:Verilog HDL: read_bitVHDL: read_bit, bfm_id, req_if(bfm_id)Arguments:voidReturns:Sets the value of the interface’s rea

Strany 42

signal_sink_ready_deassertsignal_sink_ready_deassertPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that sink_ready is deasserted,

Strany 43

10Avalon-ST MonitorSubscribeSend FeedbackThe Avalon-ST Monitor verifies Avalon-ST interfaces using SystemVerilog assertions. In addition, it providest

Strany 44

ParametersThe Avalon-ST monitor supports the full range of signals defined for the Avalon-ST source and sink interfaces.You can customize the Avalon-S

Strany 45

Avalon-ST Monitor Assertion Checking APIAssertion checking methods enable and disable protocol assertions to ensure protocol compliance. Forexample, t

Strany 46

• API communication interface—Bridges the VHDL API to the API handler logic.Figure 1-1: VHDL Component BFMAPIInteractionBFM InterfaceVHDL BFMCommunica

Strany 47

set_enable_a_no_data_outside_packet()set_enable_a_no_data_outside_packet()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an ass

Strany 48

set_enable_a_valid_legal()set_enable_a_valid_legal()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an assertion that ensures va

Strany 49 - Avalon-MM Slave BFM

set_enable_c_all_valid_beats()set_enable_c_all_valid_beats()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage point tha

Strany 50

set_enable_c_b2b_packet_different_channel()set_enable_c_b2b_packet_different_channel()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:En

Strany 51

set_enable_c_b2b_packet_within_single_cycle()set_enable_c_b2b_packet_within_single_cycle()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturn

Strany 52

set_enable_c_error()set_enable_c_error()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage point that ensures test cover

Strany 53

set_enable_c_multiple_packet_per_cycle()set_enable_c_multiple_packet_per_cycle()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables

Strany 54

set_enable_c_packet()set_enable_c_packet()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage point that ensures test cov

Strany 55 - Slave BFM

set_enable_c_packet_with_back_pressure()set_enable_c_packet_with_back_pressure()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables

Strany 56

set_enable_c_single_packet_per_cycle()set_enable_c_single_packet_per_cycle()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a co

Strany 57

Figure 1-2: Avalon Verification IP Suite Testbench for Avalon-MM and Avalon-ST InterfacesTestbenchTest ProgramTraditional Verilog ImplementationORAval

Strany 58 - Avalon-MM Slave BFM API

set_enable_c_valid_non_ready()set_enable_c_valid_non_ready()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage point tha

Strany 59

event_transaction_fifo_overflow()event_transaction_fifo_overflow()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbench

Strany 60

get_transaction_eop()get_transaction_eop()Prototype:Verilog HDL: NoneVHDL: transaction_eop, bfm_id, req_if(bfm_id)Arguments:bit.Returns:Returns the tr

Strany 61

get_transaction_idles()get_transaction_idles()Prototype:Verilog HDL: NoneVHDL: transaction_idles, bfm_id, req_if(bfm_id)Arguments:bit[31:0].Returns:Re

Strany 62

pop_transaction()void pop_transaction()Prototype:Verilog HDL: NoneVHDL: bfm_id, req_if(bfm_id)Arguments:voidReturns:Removes the transaction descriptor

Strany 63

signal_fatal_errorsignal_fatal_errorPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Notifies the testbench that a fatal error has occurred

Strany 64

11Conduit BFMSubscribeSend FeedbackYou can use Conduit BFMs to verify the following aspects of Avalon Conduit interfaces:• Port compatibility and pola

Strany 65

• A conduit port can also have a specific role named export. Ports with this role name are exported fromthe current system design module to the Condui

Strany 66

event_reset_assertedevent_reset_assertedPrototype:Verilog HDL: N.A.VHDL: NoneArguments:voidReturns:Notifies the testbench that reset has been asserted

Strany 67

set_<role name>()void set_<role name>()Prototype:Verilog HDL: new_valueVHDL: new_valueArguments:voidReturns:Rewrites the registers inside

Strany 68

2Clock Source BFMSubscribeSend FeedbackThe Avalon Verification IP Suite includes a Clock Source BFM that you can use to generate a clock signalfor you

Strany 69

12Tri-State Conduit BFMSubscribeSend FeedbackYou can use the Tri-State Conduit BFM to verify the following aspects of Avalon-TC interfaces:• Port comp

Strany 70

ParametersThe Tri-State Conduit BFM supports signals that interface to multiple external memory devices.Table 12-1: Tri-State Conduit BFM Parameter Se

Strany 71

event_interface_granted()event_interface_granted()Prototype:Verilog HDL: N.A.VHDL: NoneArguments:voidReturns:Notifies the testbench that the interface

Strany 72

event_min_transaction_queue_size()event_min_transaction_queue_size()Prototype:Verilog HDL: N.A.VHDL: NoneArguments:voidReturns:Notifies the testbench

Strany 73 - Avalon-MM Monitor

get_transaction_latency()int get_transaction_latency()Prototype:Verilog HDL: NoneVHDL: latencyArguments:intReturns:Returns the latency field value fro

Strany 74

push_transaction()void push_transaction()Prototype:Verilog HDL: NoneVHDL: NoneArguments:voidReturns:Registers an output transaction into the BFM. All

Strany 75

set_num_of_transactions()int set_num_of_transactions()Prototype:Verilog HDL: multiple_transaction_numVHDL: multiple_transaction_numArguments:voidRetur

Strany 76

set_valid_transaction_<role name>_out()void set_valid_transaction_<role name>_out()Prototype:Verilog HDL: index, new_valueVHDL: index, new

Strany 77

signal_grant_deasserted_while_request_remain_assertedsignal_grant_deasserted_while_request_remain_assertedPrototype:Verilog HDL: NoneVHDL: N.A.Argumen

Strany 78

signal_min_transaction_queue_sizesignal_min_transaction_queue_sizePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:None.Arguments:voidReturns:Triggers w

Strany 79

Clock_stop()clock_stop()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Turns off the clock.Description:Verilog HDLLanguage support:get_run

Strany 80

13External Memory BFMSubscribeSend FeedbackYou can use external memory BFMs to verify the following aspects of external memory interfaces:• Read and w

Strany 81

DescriptionComponentCarries the shared address bus and data.Tri-State Conduit Pin SharerTri-State Conduit Inverse Pin SharerControls the external memo

Strany 82

DescriptionLegal ValuesDefault ValueOptionWhen On, the interface includes achipselect pin. When present, the slaveport ignores all Avalon-MM signals u

Strany 83

DescriptionLegal ValuesDefault ValueOptionSpecifies the conduit interface role name thatmatches the role name on the externalmemory device.N/Acdt_addr

Strany 84

External Memory BFM APIfill()fill()Prototype:VHDL:logic[DATA_W-1:0] databit[DATA_W-1:0] incrementbit[CDT_ADDRESS_W-1:0] address lowbit[CDT_ADDRESS_W-1

Strany 85

signal_api_callsignal_api_callPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Triggers when a client make an API call.Description:Verilog H

Strany 86

14Nios II Custom Instruction Master BFMSubscribeSend FeedbackYou can use Nios II Custom Instruction Master BFM to verify the following aspects of the

Strany 87

The Nios II Custom Instruction Master BFM uses queues to manage instructions. You can use this BFM tomanage instructions in the following ways:• You c

Strany 88

DescriptionLegal ValuesDefaultValueOptionWhen On, the interface includes the readrb and b pins.On/OffOffUse Internal Register bWhen On, the interface

Strany 89

event_unexpected_result_received()event_unexpected_result_received()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Indicates that a resu

Strany 90

3Reset Source BFMSubscribeSend FeedbackThe Avalon Verification IP Suite includes a Reset Source BFM that you can use to generate a reset signal inyour

Strany 91

event_max_result_queue_size()event_max_result_queue_size()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Indicates that the received res

Strany 92

get_result_delay()int get_result_delay()Prototype:Verilog HDL: NoneVHDL: result_delay, bfm_id, req_if(bfm_id)Arguments:Width of the data (ci_data_t)th

Strany 93

get_version()string get_version()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:stringReturns:Returns the BFM version as a string of three integers se

Strany 94

pop_result()void pop_result()Prototype:Verilog HDL: NoneVHDL: bfm_id, req_if(bfm_id)Arguments:void.Returns:Removes the result instruction from the que

Strany 95

set_ci_clk_en()void set_ci_clk_en()Prototype:Verilog HDL: bit enableVHDL: bit enable, bfm_id, req_if(bfm_id)Arguments:voidReturns:Sets the ci_clk_en s

Strany 96

set_instruction_c()void set_instruction_c()Prototype:Verilog HDL: ci_addr_t addressVHDL: ci_addr_t address, bfm_id, req_if(bfm_id)Arguments:voidReturn

Strany 97

set_instruction_idle()void set_instruction_idle()Prototype:Verilog HDL: ci_data_t idleVHDL: ci_data_t idle, bfm_id, req_if(bfm_id)Arguments:voidReturn

Strany 98

set_instruction_timeout()void set_instruction_timeout()Prototype:Verilog HDL: int timeoutVHDL: int timeout, bfm_id, req_if(bfm_id)Arguments:voidReturn

Strany 99

set_min_instruction_queue_size()void set_min_instruction_queue_size(int size).Prototype:Verilog HDL: int sizeVHDL: int size, bfm_id, req_if(bfm_id)Arg

Strany 100

signal_fatal_errorsignal_fatal_errorPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Notifies the testbench that a fatal error has occured i

Strany 101

reset_deassertreset_deassertPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:void.Returns:Deasserts the reset signal.Description:Verilog HDLLanguage sup

Strany 102

signal_max_result_queue_sizesignal_max_result_queue_sizePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that the maximum pending re

Strany 103

15Nios II Custom Instruction Slave BFMSubscribeSend FeedbackYou can use Nios II Custom Instruction Slave BFM to verify the following aspects of the Ni

Strany 104

ParametersTable 15-1: Custom Instruction Slave BFM Parameter SettingsDescriptionLegal ValuesDefaultValueOptionGeneralSpecifies the number of operands

Strany 105

Nios II Custom Instruction Slave BFM APIevent_known_instruction_received()event_known_instruction_received()Prototype:Verilog HDL: N.A.VHDL: bfm_idArg

Strany 106

event_result_driven()event_result_driven()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Indicates that the result will be driven out fr

Strany 107

get_ci_clk_en()void get_ci_clk_en(bit enable)Prototype:Verilog HDL: NoneVHDL: clk_en, bfm_id, req_if(bfm_id)Arguments:bit enableReturns:Retrieves the

Strany 108

get_instruction_dataa()void get_instruction_dataa()Prototype:Verilog HDL: NoneVHDL: instruction_dataa, bfm_id, req_if(bfm_id)Arguments:ci_data_t dataR

Strany 109

get_instruction_readra()logic get_instruction_readra()Prototype:Verilog HDL: NoneVHDL: instruction_readra, bfm_id, req_if(bfm_id)Arguments:logicReturn

Strany 110

get_version()string get_version()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:stringReturns:Returns BFM version as a string of three integers separa

Strany 111

retrieve_instruction()void retrieve_instruction.Prototype:VHDL:output ci_data_t dataaVerilog HDL:output ci_data_t dataaArguments:output ci_data_t data

Strany 112

ContentsIntroduction to Avalon Verification IP Suite ...1-1Advantages of Using BFMs and Monitors ...

Strany 113 - Avalon-ST Source BFM

4Avalon Interrupt Source and Interrupt Sink BFMsSubscribeSend FeedbackThe Avalon Verification IP Suite includes Avalon Interrupt Source and Avalon Int

Strany 114 - DescriptionSymbol

set_instruction_a()void set_instruction_a()Prototype:Verilog HDL: ci_addr_t addressVHDL: ci_addr_t address, bfm_id, req_if(bfm_id)Arguments:voidReturn

Strany 115 - Parameter

set_result_delay()void set_result_delay()Prototype:Verilog HDL: ci_data_t delayVHDL: ci_data_t delay, bfm_id, req_if(bfm_id)Arguments:voidReturns:Sets

Strany 116 - Avalon-ST Source API

signal_instructions_inconsistentsignal_instructions_inconsistentPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that an instruction

Strany 117

signal_result_drivensignal_result_drivenPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that a result has been driven from the slav

Strany 118

16Avalon-ST Verilog HDL TestbenchSubscribeSend FeedbackThis testbench shows how to use Avalon-ST Source and Sink BFMs to verify an Avalon-ST component

Strany 119

• The test program controls the BFMs using the BFM API to drive and monitor transactions.Figure 16-1: Top-Level Testbench for Avalon-ST DUT ComponentQ

Strany 120

3. The parallel processes terminate when the Avalon-ST Source and Sink BFM transaction queues are emptyand all four transactions are complete.4. The t

Strany 121

Table 16-2: Avalon-ST Single Clock FIFO Exported Interface NamesExport NameDescriptionInterface NameclkClock InputclkresetReset Inputclk_resetst_inAva

Strany 122

DescriptionHierarchy Variables Coding ExampleSets the Qsys simulation path to thedirectory that includes the ModelSimscript. You must set this path wh

Strany 123

Observing the ResultsYou can view the simulation results in the following two ways:• In the ModelSim transcript console• In the waveforms windowThe tr

Strany 124

Interrupt Source and Sink APIclear_irq()int clear_irq()Prototype:Verilog HDL: interrupt_bitVHDL: interrupt_bit, bfm_id, req_if(bfm_id)Arguments:voidRe

Strany 125

Figure 16-2: Timing from ModelSim SimulationThis figure shows the simulation timing from the ModelSim wave window.clkreset_bfm.resetclk_bfm_clk_clkres

Strany 126

17Avalon-MM Verilog HDL and VHDL TestbenchesSubscribeSend FeedbackAltera provides the Avalon-MM example testbench for both Verilog HDL and VHDL.There

Strany 127 - Avalon-ST Sink BFM

The Slave Thread performs the following functions:• Randomly sets backpressure cycles to Avalon-MM Slave BFM• Waits for valid commands• Retrieves vali

Strany 128

The Qsys Generate window displays informational messages as it generates the testbench.d. Close the Generate window.4. Start the ModelSim®simulator.5.

Strany 129

Running the Verilog HDL Testbench for the Two Avalon-MM Masters and Slaves1. Unzip ug_avalon_verification.zip to a working directory.2. Open <worki

Strany 130 - Application Program Interface

Figure 17-3: Avalon-MM Master0 and Slave0 Writestb.clktb.resetm0_waitrequestm0_writem0_readm0_readdatavalidm0_address[12:0]m0_burstcount[3:0]m0_writed

Strany 131

Figure 17-4: Avalon-MM Master0 and Slave0 Reads..0F0C'b .116C4 3F FC.0.7.9.000000003.2FD 2FE 2FF 300 301 302 3C33C45 4 3 2 1 4 3.3. .2635FB4C.4.4

Strany 132

The Master Command Thread performs the following functions:• Generates random commands• Passes the commands to Avalon-MM Master BFM• Saves the command

Strany 133

The Qsys Generate window displays informational messages as it generates the testbench.d. Close the Generate window.4. Start the ModelSim®simulator.5.

Strany 134

Running the Testbench for Two Avalon-MM Masters Slaves1. Unzip ug_avalon_verification.zip to a working directory.2. Open <working_dir>/avlm_avls

Strany 135

set_irq()set_irq()set_irq()Prototype:Verilog HDL: int interrupt_bitVHDL: int interrupt_bit, bfm_id, req_if(bfm_id)Arguments:voidReturns:Asserts the in

Strany 136

Figure 17-8: Timing for a Write Burst with a Burst Count of Fourtb.clktb.resetmstr1_m0_waitrequestmstr1_m0_writemstr1_m0_readmstr1_m0_readdatavalidmst

Strany 137 - Avalon-ST Monitor

master BFM, include the package for this BFM in your test program. Packages are named: <BFM type orcomponent name>_vhdl_pkgThe VHDL BFM design a

Strany 138 - Parameters

18Document Revision HistorySubscribeSend FeedbackThe following table shows the revision history for this document.ChangesVersionDateMade the following

Strany 139

ChangesVersionDate• Updated SOPC Tutorial chapter.• Updated Qsys Tutorial chapter.3.1June 2012How to Contact AlteraAddressContact MethodContact (1)www

Strany 140

MeaningVisual CueIndicates signal, port, register, bit, block, and primitive names. Forexample, data1, tdi, and input. The suffix n denotes an active-

Strany 141 - Coverage Group

5Avalon-MM Master BFMSubscribeSend FeedbackThe Avalon-MM Master BFM implements the Avalon-MM interface protocol, including: read, write, burstread, an

Strany 142

TimingThe following timing diagram illustrates the sequence of events for an Avalon-MM Master BFM. The MasterBFM drives interleaved writes and reads w

Strany 143

Table 5-1: Key to the AnnotationsThe following table lists the annotations used in the figure.DescriptionSymbolThe initial command latency, which is t

Strany 144

Figure 5-3: Avalon-MM Master Driving Write and Read Transactions with No readdatavalid SignalThe timing in the following figure shows the sequence of

Strany 145

DescriptionSymbolSignals when write and read commands are presented on the interface. The event name issignal_command_issued.Sci_1–Sci_2Signals the fi

Strany 146

• Public Events—Provides status response that arrives together with the data. The public event signalsindicate the status of the Master’s request, suc

Strany 147

Table 5-3: Parameters for the Avalon-MM Master BFMDescriptionLegal ValuesDefaultValueParameterPort WidthsAddress width in bits.N/A32Address widthData

Strany 148

event_command_issued()...5-10event_max_comma

Strany 149

DescriptionLegal ValuesDefaultValueParameterWhen On, the interface includes a writeresponse pin.On/OffOffUse the write responsesignalsWhen On, the int

Strany 150 - Transaction Monitoring

DescriptionLegal ValuesDefaultValueParameterSpecifies whether to turn on the register stage.On/OffOffRegistered waitrequestSpecifies whether to regist

Strany 151

event_command_issued()event_command_issued()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbench a command was driven t

Strany 152

event_response_complete()event_response_complete()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbench that a read/writ

Strany 153

get_command_pending_queue_size()int get_command_pending_queue_size()Prototype:Verilog HDL: NoneVHDL: command_pending_queue_size, bfm_id, req_if(bfm_id

Strany 154

get_response_byte_enable()bit [AV_NUMSYMBOLS-1:0] get_response_byte_enable(int index)Prototype:Verilog HDL: indexVHDL: response_byte_enable, index, bf

Strany 155

get_response_latency()int get_response_latency(int index)Prototype:Verilog HDL: indexVHDL: response_data, index, bfm_id, req_if(bfm_id)Arguments:bitRe

Strany 156 - Conduit BFM

get_response_read_response()bit[2**(AV_BURSTCOUNT_W-1) - 1:0] [AV_READRESPONSE_W-1:0] get_response_read_response(int index)Prototype:Verilog HDL: int

Strany 157 - Conduit BFM API

get_response_write_id()bit [AV_TRANSACTIONID_W-1:0] get_response_write_id()Prototype:Verilog HDL: NoneVHDL: response_write_id, index, bfm_id, req_if(b

Strany 158

get_version()string get_version()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:StringReturns:Returns BFM version as a string of three integers separa

Strany 159

set_command_transaction_id() ...5-22set_command_write_r

Strany 160 - Tri-State Conduit BFM

push_command()void push_command()Prototype:Verilog HDL: NoneVHDL: bfm_id, req_if(bfm_id)Arguments:voidReturns:Inserts the fully populated transaction

Strany 161 - Tri-State Conduit BFM API

set_command_arbiterlock()void set_command_arbiterlock (bit state)Prototype:Verilog HDL: bit stateVHDL: bit state, bfm_id, req_if(bfm_id)Arguments:void

Strany 162

set_command_burst_size()void set_command_burst_size (bit[AV_BURSTCOUNT_W-1:0] burst_size)Prototype:Verilog HDL: burst_sizeVHDL: burst_size, bfm_id, re

Strany 163

set_command_idle()void set_command_idle(int idle, int index)Prototype:Verilog HDL: int idle, int indexVHDL: int idle, int index, bfm_id, req_if(bfm_id

Strany 164

set_command_request()void set_command_request(Request_t request)Prototype:Verilog HDL: Request_t requestVHDL: Request_t request, bfm_id, req_if(bfm_id

Strany 165

set_command_write_response_request()void set_command_write_response_request (logic request)Prototype:Verilog HDL: requestVHDL: request, bfm_id, req_if

Strany 166

set_response_timeout()void set_response_timeout(int cycles)Prototype:Verilog HDL: int cyclesVHDL: int cycles, bfm_id, req_if(bfm_id)Arguments:voidRetu

Strany 167

signal_fatal_errorsignal_fatal_errorPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Notifies the testbench that a fatal error has occured i

Strany 168

signal_read_response_completesignal_read_response_completePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that the read response ha

Strany 169

6Avalon-MM Slave BFMSubscribeSend FeedbackThe Avalon-MM Slave BFM implements the slave side of the Avalon-MM interface protocol. The Avalon-MMprotocol

Strany 170 - External Memory BFM

get_response_queue_size() ...6-16vget_slave_bfm

Strany 171 - Using the External Memory BFM

The BFMs allow illegal response transactions so that you can test the error-handling functionalityof your DUT. Consequently, the BFMs cannot be relied

Strany 172

Figure 6-2: Avalon-MM Slave Responding to Interleaved Write and Read TransactionsCLKreadtransaction1 transaction2trans3trans4writeScr_1waitrequestbyte

Strany 173

Table 6-1: Key to AnnotationsThe following table lists the annotations used in this figure.DescriptionSymbolThe response wait time, which is three cyc

Strany 174 - External Memory BFM API

Figure 6-3: Avalon-MM Slave Receiving Write and Read Commands with No readdatavalid SignalThe following timing diagram illustrates the sequence of eve

Strany 175

DescriptionSymbolSignals the end of the test. The event name is signal_all_transactions_completeSatcBlock DiagramThe following figure provides a block

Strany 176 - • Extended instructions

• Public Events—Provides status response that arrives together with the data. The public event signalsindicate the status of the Master’s request such

Strany 177

DescriptionLegalValuesDefaultValueParameterData symbol width in bits. Set AV_SYMBOL_W to 8 forbyte-oriented interfaces.N/A8Symbol widthRead status res

Strany 178

DescriptionLegalValuesDefaultValueParameterWhen On, read is asserted high.On/OffOnAssert read highWhen On, write is asserted high.On/OffOnAssert write

Strany 179

Avalon-MM Slave BFM APIevent_error_exceed_max_pending_reads()event_error_exceed_max_pending_reads()Prototype:Verilog HDL: N.A.VHDL: bfm_id, req_ifArgu

Strany 180

event_max_response_queue_size()event_max_response_queue_size()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbench that

Strany 181

set_enable_a_constant_during_burst() ...7-7set_enable_a_constant_d

Strany 182

get_command_arbiterlock()bit get_command_arbiterlock()Prototype:Verilog HDL: NoneVHDL: command_arbiterlock, bfm_id, req_if(bfm_id)Arguments:bitReturns

Strany 183

get_command_byte_enable()bit [AV_NUMSYMBOLS-1:0] get_command_byte_enable (int index)Prototype:Verilog HDL: indexVHDL: command_byte_enable, index, bfm_

Strany 184

get_command_queue_size()int get_command_queue_size()Prototype:Verilog HDL: NoneVHDL: command_queue_size, bfm_id, req_if(bfm_id)Arguments:intReturns:Qu

Strany 185

get_command_transaction_id()AvalonTransactionId_t get_command_transaction_id()Prototype:Verilog HDL: NoneVHDL: command_transaction, bfm_id, req_if(bfm

Strany 186

get_pending_write_latency_cycle()int get__cycle()Prototype:Verilog HDL: NoneVHDL: pending_write_latency, bfm_id, req_if(bfm_id)Arguments:intReturns:Qu

Strany 187

get_version()string get_version()Prototype:Verilog HDL: NoneVHDL: N.A.Arguments:StringReturns:Returns BFM version as a string of three integers separa

Strany 188

push_response()void push_response()Prototype:Verilog HDL: NoneVHDL: bfm_id, req_if(bfm_id)Arguments:voidReturns:Inserts the fully populated response t

Strany 189

vset_max_response_queue_size()void set_max_response_queue_size(int size)Prototype:Verilog HDL: int sizeVHDL: int size, bfm_id, req_if(bfm_id)Arguments

Strany 190

set_response_burst_size()void set_response_burst_size(bit [AV_BURSTCOUNT_W-1:0] burst_size).Prototype:Verilog HDL: burst_sizeVHDL: burst_size, bfm_id,

Strany 191 - Send Feedback

set_response_request()void set_response_request(Request_t request)Prototype:Verilog HDL: Request_t requestVHDL: Request_t request, bfm_id, req_if(bfm_

Strany 192

init() ...

Strany 193

set_write_response_status()void set_write_respose_status(AvalonWriteResponse_t status, intindex)Prototype:Verilog HDL: AvalonWriteResponse_t status, i

Strany 194

signal_max_response_queue_sizesignal_max_response_queue_sizePrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Signals that the maximum pendin

Strany 195

signal_response_issuedsignal_response_issuedPrototype:Verilog HDL: NoneVHDL: N.A.Arguments:voidReturns:Notifies the testbench that a response has been

Strany 196

7Avalon-MM MonitorSubscribeSend FeedbackThe Avalon-MM Monitor verifies Avalon-MM interfaces using SystemVerilog assertions. In addition, itprovides te

Strany 197

ParametersThe Avalon-MM Monitor supports the full range of signals defined for the Avalon-MM master and slaveinterfaces. You can customize the Avalon-

Strany 198

DescriptionLegalValuesDefaultValueParameterWhen On, the interface includes a writeresponsepin.On/OffOffUse the writeresponse signalWhen On, the interf

Strany 199

DescriptionLegalValuesDefaultValueParameterFor master interfaces that do not use the waitrequestsignal. The read wait time indicates the number ofcycl

Strany 200

set_enable_a_beginbursttransfer_exist()set_enable_a_beginbursttransfer_exist()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an

Strany 201

set_enable_a_begintransfer_exist()set_enable_a_begintransfer_exist()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an assertion

Strany 202

set_enable_a_burst_legal()set_enable_a_burst_legal()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an assertion that ensures th

Strany 203

init() ...

Strany 204 - Verifying Avalon-ST DUT

set_enable_a_constant_during_clk_disabled()set_enable_a_constant_during_clk_disabled()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:En

Strany 205

set_enable_a_half_cycle_reset_legal()set_enable_a_half_cycle_reset_legal()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an ass

Strany 206 - Setting up the Test

set_enable_a_no_readdatavalid_during_reset()set_enable_a_no_readdatavalid_during_reset()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:

Strany 207 - ValueParameters

set_enable_a_readid_sequence()set_enable_a_readid_sequence()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an assertion that ve

Strany 208 - Running the Simulation

set_enable_a_register_incoming_signals()set_enable_a_register_incoming_signals()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables

Strany 209 - Observing the Results

set_enable_a_write_burst_timeout()set_enable_a_write_burst_timeout()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables an assertion

Strany 210

set_enable_c_b2b_read_read()set_enable_c_b2b_read_read()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group to test

Strany 211

set_enable_c_b2b_write_write()set_enable_c_b2b_write_write()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group to

Strany 212 - ValueParameter

set_enable_c_continuous_waitrequest()set_enable_c_continuous_waitrequest()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a cove

Strany 213

set_enable_c_continuous_write()set_enable_c_continuous_write()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group t

Strany 214

get_input_transaction_queue_size()...12-4get_output_transactio

Strany 215

set_enable_c_idle_in_read_response()set_enable_c_idle_in_read_response()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a covera

Strany 216

set_enable_c_read()set_enable_c_read()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group to test read transfers. T

Strany 217

set_enable_c_read_byteenable()set_enable_c_read_byteenable()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group ens

Strany 218

set_enable_c_waitrequest_in_write_burst()set_enable_c_waitrequest_in_write_burst()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enable

Strany 219

set_enable_c_waitrequested_write()set_enable_c_waitrequested_write()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage g

Strany 220 - Using the VHDL BFMs

set_enable_c_write_after_reset()set_enable_c_write_after_reset()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group

Strany 221 - Related Information

set_enable_c_write_response()set_enable_c_write_response()Prototype:Verilog HDL: BooleanVHDL: N.A.Arguments:voidReturns:Enables a coverage group to te

Strany 222 - Document Revision History

event_command_received()event_command_received()Prototype:Verilog HDL: N.A.VHDL: bfm_idArguments:voidReturns:Notifies the testbench that a command was

Strany 223 - Typographic Conventions

get_clken()logic get_clken()Prototype:Verilog HDL: NoneVHDL: clken, bfm_id, req_if(bfm_id)Arguments:logicReturns:Returns the clock enable signal statu

Strany 224 - MeaningVisual Cue

get_command_burst_count()[AV_BURSTCOUNT_W-1:0] get_command_burst_count()Prototype:Verilog HDL: NoneVHDL: command_burst_count, bfm_id, req_if(bfm_id)Ar

Komentáře k této Příručce

Žádné komentáře