基于xilinx的mig的virtual fifo解决方案

基于xilinx的mig的virtual fifo解决方案
基于xilinx的mig的virtual fifo解决方案

LogiCORE IP AXI Virtual FIFO Controller v1.1 Product Guide

PG038 July 25, 2012

Table of Contents

SECTION I:SUMMARY

IP Facts

Chapter1:Overview

AXI4-Stream Interface Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Per Channel S2MM/MM2S DRAM Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Memory Mapped Interface Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Per Channel Flag Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

MM2S Weighted Round Robin (WRR) Arbiter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Unsupported Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Licensing and Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Chapter2:Product Specification

Standards Compliance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Resource Utilization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

I/O Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Chapter3:Designing with the Core

General Design Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Clocking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Protocol Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 SECTION II:VIVADO DESIGN SUITE

Chapter4:Customizing and Generating the Core

GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Output Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Chapter5:Constraining the Core

Required Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Device, Package, and Speed Grade Selections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Clock Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Clock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Clock Placement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Banking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Transceiver Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

I/O Standard and Placement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Chapter6:Detailed Example Design

Directory and File Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 SECTION III:ISE DESIGN SUITE

Chapter7:Customizing and Generating the Core

GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Design Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Output Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Chapter8:Constraining the Core

Required Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Device, Package, and Speed Grade Selections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Clock Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Clock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Clock Placement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Banking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Transceiver Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

I/O Standard and Placement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Chapter9:Detailed Example Design

Directory and File Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 SECTION IV:APPENDICES

Appendix A:Verification, Compliance, and Interoperability

Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Hardware Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Appendix B:Additional Resources

Xilinx Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Revision History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Notice of Disclaimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

SECTION I: SUMMARY

IP Facts

Overview

Product Specification

Designing with the Core

Introduction

The Xilinx LogiCORE? IP AXI Virtual FIFO Controller core (VFIFO) is a high performance core that implements multiple AXI4-Stream FIFOs. The memory storage for data contained in the FIFOs comes from an attached AXI4 slave memory controller. The VFIFO core manages multiple sets of read and write address pointers to emulate the behavior of multiple independent FIFOs. An AXI4 slave memory controller with external memory can provide large depths of external SRAM or DDR memory. VFIFO is useful in applications using PCIe, video, or Ethernet that require FIFOs deeper than can be otherwise constructed from on chip block RAM memory.

Features

?Supports up to eight channels ?Supports single clock operations ?Supports active-Low reset

?Supports DRAM address management ?Configurable DRAM base address ?Supports AXI4-Stream and AXI4 Memory Mapped (MM) interfaces

?Supports 32-to-1024 AXI4-Stream data width

?AXI MM data width same as AXI4-Stream Data width

?Supports configurable 512-4096 bytes AXI MM bursts

?Generates Per-Channel FIFO Full signals ?Generates Per-Channel FIFO Empty signals ?Supports MM2S Weighted Round Robin (WRR) Arbitration

?Provides AXI MM response error interrupts

IP Facts

LogiCORE IP Facts Table

Core Specifics

Supported Device

Family(1)

Zynq?-7000(2), Kintex-7,

Virtex-7, Artix-7 Supported User

Interfaces AXI4 and AXI4-Stream Resources See Table2-1.

Provided with Core

Design Files Netlist Example Design VHDL Test Bench Not Provided Constraints File

Vivado: XDC

ISE: UCF Simulation Model Verilog and/or VHDL Structural Supported

S/W Driver N/A

Tested Design Flows(3)

Design Entry

Vivado? Design Suite v2012.2(4)

ISE? Design Suite v14.2 Simulation

Mentor Graphics ModelSim

Xilinx ISIM/XSIM Synthesis

Vivado Synthesis

ISE Design Suite

Support

Provided by Xilinx @ https://www.360docs.net/doc/886516959.html,/support Notes:

1.For a complete listing of supported devices, see the release

notes for this core.

2.Supported in ISE Design Suite implementations only.

3.For the supported versions of the tools, see the Xilinx Design

Tools: Release Notes Guide.

4.Supports only 7 series devices.

Chapter 1

Overview

AXI Virtual FIFO controller supports a true multi-channel architecture allowing

per-clock-cycle channel arbitration. The AXI4-Stream TDEST signal provided to the

AXI4-Stream slave interface is used as a channel identifier. TDEST can be kept unique for each packet allowing packet switching operations. Figure 1-1 shows the block diagram for AXI Virtual FIFO Controller (VFIFO) IP .

AXI Virtual FIFO operations can be broadly categorized into four modules: AXI4-Stream Interface Controller , Per Channel S2MM/MM2S DRAM Address , Memory Mapped Interface Controller and MM2S Weighted Round Robin (WRR) Arbiter . This chapter describes these modules.

Figure 1-1:AXI Virtual FIFO Controller Block Diagram

AXI4-Stream Interface Controller

AXI4-Stream Interface Controller

This module handles the AXI4-Stream interface and complies with the AXI4-Stream protocol specification. It provides a Slave Stream Interface to receive data beats or packets from the AXI4-Stream Interconnect IP block, and provides a Master Stream Interface to send data beats or packets to the AXI4-Stream Interconnect. VFIFO is usually used in conjunction with the AXI4-Stream Interconnect to multiplex and demultiplex AXI4-Stream channels to and from the VFIFO controller. AXI4-Stream Interconnect provides buffering, data steering, width conversion, clock conversion, and arbitration features to complement VFIFO when building a system.

?Supports parameterizable data width (32, 64, 128, 256, 512 and 1024)

?Supports up to eight channels

?Supports up to 16-bit optional TUSER signal (TUSER is valid only with first beat of packet)

?Supports TID Source Stream Identifier (TID is valid only with first beat of packet)?Supports TLAST as packet delimiter

?Supports TKEEP to identify packet remainder (TKEEP is valid only with TLAST)

Per Channel S2MM/MM2S DRAM Address

This module handles all requirements for converting AXI MM space into a FIFO. It manages the DRAM addresses and generates per-channel FIFO status signals.

?Supports up to 256MB DDR space

?User specifies DDR memory base address, and the DRAM's start and end addresses are automatically calculated by the core

?Tracks each channel's write and read address pointers to the DDR

?Generates per-channel FIFO full and FIFO empty signals

Memory Mapped Interface Controller

This module handles the AXI Memory Mapped (MM) interface and complies with AXI MM protocol specifications. It provides AXI MM write channels to perform writes to the DDR memory, and provides AXI MM read channels to read data from the DDR memory.

Per Channel Flag Generation

?AXI-MM data width is same as configured AXI4-Stream data width

?Maps to a single MM ID, tied to zero

?Supports programmable burst size of 512, 1024, 2048 and 4096 bytes

?Same burst size for read and write transfers

?Supports only incremental bursts

?Burst size is broken under the following conditions:

°When MM address crosses 4 K boundary.

°On determining channel change within the burst

°On detecting a timeout (TVALID deasserted for 256-clocks for the burst)

Per Channel Flag Generation

AXI Virtual FIFO controller generates per-channel Stream to Memory Mapped (S2MM) FIFO full indication. Full indication is used to apply back pressure on AXI4-Stream Masters. To avoid blocking other channels accessing the VFIFO Controller, ensure the following conditions are met:

?When the VFIFO Controller is full for an active channel (channel which is being used), the external arbiter completes the current packet up to 32 KB or completes the current TDM/burst cycle. The burst cycle for the stream switch should be less than or equal to the programmed burst configured for VFIFO Controller.

?When the VFIFO Controller is full for a new channel, the external arbiter should not select the channel indicating full.

MM2S Weighted Round Robin (WRR) Arbiter

The VFIFO Controller implements an internal Weighted Round Robin (WRR) Arbiter to transfer data from DDR memory to the per-channel FIFOs in the stream interconnect switch. The Arbiter ensures data is read only when the MM2S Stream FIFO has enough space to accept the data

The MM2S Arbiter initiates the data transfer (AXI AR transactions) from DDR memory to the channel-specific FIFOs in the AXI4-Stream interconnect. AR transactions are initiated only for the channels indicating a programmable amount of space available in the FIFO.

To avoid blocking other channels from accessing the VFIFO Controller, AR weight programming in the VFIFO should always amount to the data transfer less than or equal to the available space in Stream FIFOs, that is, available space with programmable full

Applications

deasserted should be always greater than "AR Weight x Burst Size" in the VFIFO Controller. After initiating AR Transactions, the VFIFO Controller checks for FIFO status only after transferring the configured amount of data to the stream interconnect FIFOs.

The latencies from the VFIFO to the FIFO in the MM2S switch can result in one additional burst transfer (AR Weight x Burst Size) to the stream FIFOs. This space needs to be additionally accounted for in AXI4-Stream interconnect FIFOs.

For more details refer to Per Channel AR Channel Weight Allocation in Chapter7. Applications

Figure1-2 shows an outline of the VFIFO use case in which 1 to 8 endpoint IPs send and receive streams of variable-length packets to a VFIFO Controller. The VFIFO Controller is an interface to a DRAM that implements a FIFO access scheme instead of a random access scheme to the memory device. The controller partitions the memory into 1-8 regions (one partition per "virtual" FIFO) and keeps track of the start and end address pointers into the memory when data is read or written from one of the VFIFO partitions. When an endpoint IP writes a packet to the controller, the controller writes that packet data into one of the VFIFO partitions in the DRAM. Similarly, when the controller detects that there is data in one of the Virtual FIFOs, it reads that data and pushes it out to a particular endpoint IP. Each endpoint can write into any one partition and read from one (different) partition.

Figure 1-2:Application Block Diagram

Unsupported Features

Unsupported Features

This core does not support asynchronous clock (independent clock) mode.

Licensing and Ordering

This Xilinx LogiCORE IP module is provided at no additional cost with the Xilinx Vivado Design Suite and ISE Design Suite software under the terms of the Xilinx End User License. The core may be accessed through the Vivado Design Suite and ISE CORE Generator IP catalog.

Information about this and other Xilinx LogiCORE IP modules is available at the Xilinx Intellectual Property page. For information about pricing and availability of other Xilinx LogiCORE modules and software, please contact your local Xilinx sales representative.

Chapter2

Product Specification

This chapter includes details on performance and interfaces.

Standards Compliance

This core complies with the following industry specifications:

?AMBA? AXI4-Stream Protocol Specification

?AMBA AXI4 Protocol Specification

Performance

This section details the performance information for various core configurations.

Maximum Frequencies

AXI Virtual FIFO Controller operates up to 200 MHz on a Kintex?-7 device at -2 and higher speed grades.

Latency

The VFIFO Controller takes about eight clock cycles to initiate an AW transaction on AXI MM side after receiving a data beat on AXI4-Stream side.

On the MM2S path, the VFIFO Controller takes about 12 clock cycles to initiate the AR

transaction on the AXI MM side if a given channel has the data in DDR and

VFIFO_MM2S_CHANNEL_FULL[active_channel] is low. In addition, the VFIFO takes about 7 clock cycles to present the received RDATA on AXI4-Stream side.

Resource Utilization

Throughput

The VFIFO Controller was configured for four channels and was independently tested for a data width of 512 bits and 64 bits. The data width of 512 bits with a 4096 burst size was benchmarked for 80 Gb/s thoughput across four channels.

Resource Utilization

Because the AXI Virtual FIFO Controller core will be used with other design pieces in an FPGA, the utilization and timing numbers reported in this section are estimates. As the VFIFO core is combined with other pieces of the FPGA design, the utilization of FPGA

resources and timing of the VFIFO core design will vary from the results reported here. The core benchmark is shown in Table 2-1 for a Virtex-7 FPGA. These values were generated using the Xilinx? CORE Generator? tools, v14.2. They are derived from post-synthesis reports, and might change during MAP and PAR.

Configuration used to obtain the below resource utilization is as follows:?Data Width = 1024?Burst Size = 4096?Number of Channel = 4?

TUSER width = 16

I/O Signals

Signals for the VFIFO Controller are listed in Table 2-2.

Table 2-1:

Resource Utilization for Virtex-7 FPGAs

Device Resource

F MAX (MHz)

Block RAMs

DSP48

Slices

Slice Flip-Flops

LUTs

F MAX

16

18

10827

9929

1702

216

Table 2-2:

VFIFO Controller Pin Table Signal Name

Direction Width Default Description

Global Signals

ACLK

IN 1

‘0'

Global Interface Clock: All signals on the interface must be synchronous to ACLK.

Signal Name Direction Width Default Description

ARESETN IN 1‘0'Global reset: This signal is

active-Low. ARESETN must be

asserted at for least for one clock

cycle.

AXI4-Stream Input Signals From Switch to AXI Virtual FIFO Controller

S_AXIS_TVALID IN 1‘0'TVALID: Indicates that the master is

driving a valid transfer. A transfer

takes place when both TVALID and

TREADY are asserted.

The VFIFO Controller determines

FIFO underrun cased on:

?Data Transfer is initiated for a

Channel (TDEST, by asserting

S_AXIS_TVALID)

?Without any Channel ID change,

S_AXIS_TVALID is de-asserted for

eight clock cycles

The above condition will result in a

transaction on AXI Memory Mapped

interface.

S_AXIS_TREADY OUT 1‘0'TREADY: Indicates that the slave can

accept a transfer in the current cycle. S_AXIS_TDATA IN DATA_WIDTH 0TDATA: The primary payload that is

used to provide the data that is

passing across the interface. The

width of the data payload is an

integer number of bytes.

Supported TDATA widths include: 32,

64, 128, 256, 512 and 1024 bits.

S_AXIS_TSTRB IN DATA_WIDTH/8 0TSTRB: Byte qualifier that indicates

whether the content of the

associated byte of TDATA is

processed as a data byte or a

position byte. For a 64-bit DATA, bit

0 corresponds to the least significant

byte on DATA, and bit 7 corresponds

to the most significant byte.

Note:S_AXIS_TSTRB input is not

used in Virtual FIFO Controller.

S_AXIS_TKEEP IN DATA_WIDTH/8 0TKEEP: The byte qualifier that

indicates whether the content of the

associated byte of TDATA is

processed as part of the data stream.

TKEEP is active-High and should be

contiguous and LSB aligned. For a

64-bit DATA, bit 0 corresponds to the

least significant byte on DATA, and

bit 7 corresponds to the most

significant byte.

TKEEP will be ignored when TLAST =

0.

TKEEP will only be valid in a data

beat where TLAST = 1.

Deasserted TKEEP bits are

contiguous and MSB aligned in the

data beat where TLAST = 1.

S_AXIS_TLAST IN 1‘0'TLAST: Indicates the boundary of a

packet.

S_AXIS_TID IN LOG2(NUM_OF

_Channels) 0TID: The data stream identifier that indicates different streams of data.

TID is a Source AXI4-Stream identifier

and can be optional. TID is considered

valid with only first beat of a packet.

S_AXIS_TDEST IN LOG2(NUM_OF

_Channels) 0TDEST: Channel Identifier that

provides routing information for the

data stream.

TDEST is a Destination AXI4-Stream

identifier and should be kept valid or

same for the entire packet duration.

S_AXIS_TUSER IN USER_WIDTH 0TUSER: The user-defined sideband

information that can be transmitted

alongside the data stream.

TUSER is considered valid only in a

first data beat of the Packet and can

carry packet control information. AXI Virtual FIFO Controller Output Signals To AXI4-Stream Switch

M_AXIS_TVALID OUT 1‘0'TVALID: Indicates that the master is

driving a valid transfer.

A transfer takes place when both

TVALID and TREADY are asserted. M_AXIS_TREADY IN 1‘0'TREADY: Indicates that the slave can

accept a transfer in the current cycle.

Signal Name Direction Width Default Description

M_AXIS_TDATA OUT DATA_WIDTH 0TDATA: The primary payload that is

used to provide the data that is

passing across the interface. The

width of the data payload is an

integer number of bytes.

Supported TDATA widths include: 32,

64, 128, 256, 512 and 1024 bits

M_AXIS_TSTRB OUT DATA_WIDTH/8 1TSTRB: The byte qualifier that

indicates whether the content of the

associated byte of TDATA is

processed as a data byte or a

position byte. For a 64-bit DATA, bit

0 corresponds to the least significant

byte on DATA, and bit 7 corresponds

to the most significant byte.

Note:M_AXIS_TSTRB output is

tied to all 1’s and should not be

used for any logical operations of

interconnecting IPs.

M_AXIS_TKEEP OUT DATA_WIDTH/8 0TKEEP: The byte qualifier that

indicates whether the content of the

associated byte of TDATA is

processed as part of the data stream.

TKEEP is active-High and should be

contiguous and LSB aligned. For a

64-bit DATA, bit 0 corresponds to the

least significant byte on DATA, and

bit 7 corresponds to the most

significant byte.

TKEEP will only be valid in a data

beat where TLAST = 1.

Deasserted TKEEP bits are

contiguous and MSB aligned in the

data beat where TLAST = 1.

M_AXIS_TLAST OUT 1‘0'TLAST: Indicates the boundary of a

packet.

M_AXIS_TID OUT LOG2(NUM_

CHANNEL) 0TID: The data stream identifier that indicates different streams of data.

TID is a Source AXI4-Stream

Identifier and can be optional, TID is

Valid with only first Beat of Packet

and carries TID as provided by

Source AXI4-Stream.

Signal Name Direction Width Default Description

M_AXIS_TDEST OUT LOG2(NUM_

CHANNEL) 0TDEST: Channel Identifier and

Provides routing information for the

data stream.

TDEST is a Destination AXI4-Stream

Identifier and will be kept Valid or

same for the entire Packet duration.

M_AXIS_TUSER OUT USER_WIDTH 0TUSER: The user-defined sideband

information that can be

transmitted alongside the data

stream

TUSER will be valid only in a first

data beat of the Packet and can

carries Packet Control Information as

provided by Source AXI4-Stream Write Address Channel Signals

M_AXI_AWID OUT LOG2(NUM_

CHANNEL) 0Write Address ID: Identification tag for the write address group of

signals.

AWID is always set to zero, all

configured channels access to a

single address MAP in Memory

mapped interconnect.

M_AXI_AWADDR OUT ADDR_WIDTH 0Write Address: The write address bus

gives the address of the first transfer

in a write burst transaction. The

associated control signals are used

to determine the addresses of the

remaining transfers in the burst

M_AXI_AWLEN OUT 80Burst Length: The burst length gives

the exact number of transfers in a

burst. This information determines

the number of data transfers

associated with the address.

M_AXI_AWSIZE OUT 30Burst Size: Indicates the size of each

transfer in the burst. Byte lane

strobes indicate exactly which byte

lanes to update.

Burst Size is always set based on

configured data width of the

interface.

M_AXI_AWBURST OUT 20Burst Type: The burst type, coupled

with the size information, details

how the address for each transfer

within the burst is calculated. Burst

Type is always set to incremental

transfers.

Signal Name Direction Width Default Description

Signal Name Direction Width Default Description

M_AXI_AWLOCK OUT 10Lock Type: This signal provides

additional information about the

atomic characteristics of the transfer.

AWLOCK is always set to zero.

M_AXI_AWCACHE OUT 40Cache Type: Indicates the bufferable,

cacheable, writethrough, write-back,

and allocate attributes of the

transaction. AWCACHE is always set

to zero.

M_AXI_AWPROT OUT 30Protection Type: Indicates the

normal, privileged, or secure

protection level of the transaction

and whether the transaction is a data

access or an instruction access.

AWPROT is always set to zero.

M_AXI_AWQOS OUT 40Quality of Service (QoS): Sent on the

write address channel for each write

transaction. AWQOS is always set to

zero.

M_AXI_AWREGION OUT 40Region Identifier: Sent on the write

address channel for each write

transaction. AWREGION is always set

to zero.

M_AXI_AWUSER OUT USER_WIDTH 0Write Address Channel User:

AWUSER is always set to zero

M_AXI_AWVALID OUT 1‘0'Write Address Valid: Indicates that

valid write address and control

information are available:

?1 = Address and control

information available.

?0 = Address and control

information not available.

The address and control information

remain stable until the address

acknowledge signal, AWREADY, goes

high.

M_AXI_AWREADY IN 1‘0'Write Address Ready: Indicates that

the slave is ready to accept an

address and associated control

signals:

?1=Slave ready

?0=Slave not ready.

Write Data Channel Signals

M_AXI_WDATA OUT DATA_WIDTH0Write Data: The write data bus can be

8, 16, 32, 64, 128, 256, 512 or 1024

bits wide.

M_AXI_WSTRB OUT DATA_WIDTH / 8 0Write Strobes: Indicates which byte

lanes to update in memory. There is

one write strobe for each eight bits

of the write data bus.

Therefore, WSTRB[n] corresponds to

WDATA[(8 × n) + 7:(8 ×n)]. For a

64-bit DATA, bit 0 corresponds to the

least significant byte on DATA, and

bit 7 corresponds to the most

significant byte. For example:

?STROBE[0] = 1b, DATA[7:0] is valid

?STROBE[7] = 0b, DATA[63:56] is

not valid

M_AXI_WLAST OUT 1‘0'Write Last: Indicates the last transfer

in a write burst.

M_AXI_WUSER OUT USER_WIDTH 0Write Data Channel User: WUSER is

always set to zero

M_AXI_WVALID OUT 1‘0'Write Valid: Indicates that valid write

data and strobes are

available:

?1 = Write data and strobes

available.

?0 = Write data and strobes not

available

M_AXI_WREADY IN 1‘0'Write Ready: Indicates that the slave

can accept the write data:

?1=Slave ready.

?0=Slave not ready.

Write Response Channel Signals

M_AXI_BID IN LOG2(NUM_OF

_Channels) 0Response ID: The identification tag of the write response. The

BID value must match the AWID

value of the write transaction

to which the slave is responding

M_AXI_BRESP IN 20Write Response: Indicates the status

of the write transaction. The

allowable responses are OKAY,

EXOKAY, SLVERR, and

DECERR.

M_AXI_BUSER IN USER_WIDTH 0Write Response Channel User:

BUSER is not used in Virtual FIFO

controller.

Signal Name Direction Width Default Description

M_AXI_BVALID IN 1‘0'Write Response Valid: Indicates that

a valid write response is

available:

? 1 = Write response available.

? 0 = Write response not available. M_AXI_BREADY OUT 1‘1'Response Ready: Indicates that the

master can accept the response

information.

?1=Master ready.

?0=Master not ready.

Read Address Channel Signals

M_AXI_ARID OUT LOG2(NUM_

CHANNEL) 0Read Address ID: This signal is the identification tag for the read

address group of signals.

ARID is always set to zero. All

configured channels access to a

single address MAP region in

Memory Map interconnect.

M_AXI_ARADDR OUT ADDR_WIDTH 0Read Address: The read address bus

gives the initial address of a read

burst transaction.

Only the start address of the burst is

provided. The control signals that

are issued alongside the address

detail how the address is calculated

for the remaining transfers in the

burst.

M_AXI_ARLEN OUT 80Burst Length: The burst length gives

the exact number of transfers in a

burst. This information determines

the number of data transfers

associated with the address.

M_AXI_ARSIZE OUT 30Burst Size: This signal indicates the

size of each transfer in the burst.

Burst Size is always set based on

configured data width of the

interface.

M_AXI_ARBURST OUT 20Burst Type: The burst type, coupled

with the size information, details

how the address for each transfer

within the burst is calculated.

Burst Type is always set to

incremental.

Signal Name Direction Width Default Description

xilinx FPGA SelectIO模块资料

5.1.6 SelectIO模块 Virtex-6每个I/O片(I/O Tile)包含两个IOB、两个ILOGIC、两个OLOGIC 和两个IODELAY,如图5-24 所示。 图5-24 I/O 片结构图 本小节就以下几个方面介绍Virtex-6 的SelectIO 资源。 (1) SelectIO 的电气特性。 (2) SelectIO 的逻辑资源——ILOGIC 资源和OLOGIC 资源。 (3) SelectIO 的高级逻辑资源——ISERDES 资源、OSERDES 资源和Bitslip。 一、SelectIO IO 的电气特性 所有的Virtex-6 FPGA 有高性能的可配置SelectIO 驱动器与接收器,支持非常广泛的接口标准。强大的功能SelectIO 包括输出强度和斜率的可编程控制以及使用数控阻抗(DCI)的片上终端。

IOB 包含输入、输出和三态SelectIO 驱动器。支持单端I/O 标准(LVCMOS、 HSTL、SSTL)和差分I/O 标准(LVDS、HT、LVPECL、BLVDS、差分HSTL 和SSTL)。 注意:差分输入和VREF 相关输入由VCCAUX 供电。 IOB、引脚及内部逻辑的连接如图5-25 所示。 图5-25 IOB、引脚及内部逻辑连接图 IOB 直接连接ILOGIC/OLOGIC 对,该逻辑对包含输入和输出逻辑资源,可实现数据和三态控制。ILOGIC和OLOGIC可分别配置为ISERDES和OSERDES。Xilinx软件库提供了大量与I/O相关的原语,在例化这些原语时,可以指定I/O 标准。与单端I/O相关的原语包括IBUF(输入缓冲器)、IBUFG(时钟输入缓冲器)、OBUF(输出缓冲器)、OBUFT(三态输出缓冲器)和IOBUF(输入/输出缓冲器)。与差分I/O相关的原语包括IBUFDS(输入缓冲器)、IBUFGDS (时钟输入缓冲器)、OBUFDS(输出缓冲器)、OBUFTDS(三态输出缓冲器)、IOBUFDS(输入/输出缓冲器)、IBUFDS_DIFF_OUT(输入缓冲器)和IOBUFDS_DIFF_OUT(输入/输出缓冲器)。 二、SelectIO的逻辑资源 SelectIO的逻辑资源主要是指ILOGIC和OLOGIC资源,它们完成了FPGA引脚到内部逻辑的连接功能,包括组合输入/输出、三态输出控制、寄存器输入/输出、寄存器三态输出控制、DDR输入/输出、DDR输出三态控制、IODELAYE1高分辨率可调整延迟单元及其控制模块。 下面简要介绍ILOGIC和OLOGIC功能。

Xilinx-XADC的使用中文介绍doc资料

Zynq器件XADC的使用(原创) 1.前言 赛灵思的7系列FPGA和Zynq器件创造性地在片上集成了模数转换器和相关的片上传感器(内置温度传感器和功耗传感器),这是相比赛灵思前一代产品来新增加的特性,可在系统设计中免去外置的ADC器件,有力地提高了系统的集成度。本文就这一新模块的使用进行简单介绍,希望对大家有所帮助,当然如有不当之处还请高手指正,以免误导大家,欢迎大家补充。 2.XADC模块介绍 2.1 XADC模块概述 Zynq器件XADC模块包括2个12比特1 MIPS的模数转换器和相关的片上传感器,模数转换器能为系统应用提供通用目的的高精度的模拟接口,下图是XADC模块的框图: XADC模块支持不同的操作模式,如外步触发同步采样模式;可接受不同类型的模拟输入信号,如单端或差分信号;最多能接受17路外部的模拟输入信号。XADC模块也包括一定数量的片上传感器用来测量片上的供电电压和芯片温度,这些测量转换数据存储在一个叫状态寄存器(status registers)的专用寄存器内,可由FPGA内部叫动态配置端口(Dynamic

Reconfiguration Port (DRP))的16位的同步读写端口访问。ADC转换数据也可以由JTAG TAP访问,这种情况下并不需要去直接例化XADC模块,因为这是一个已经存在于FPGA JTAG结构的专用接口,此时因为没有在设计中直接例化XADC模块,XADC模块就工作在一种预先定义好的模式叫缺省模式,缺省模式下XADC模块专用于监视芯片上的供电电压和芯片温度。XADC模块的操作模式是由用户通过DRP或JTAG接口写控制寄存器来选择的,控制寄存器的初始值有可能在设计中例化XADC模块时的块属性(block attributes)指定。 2.2 XADC模块管脚需求 所有的XADC模块专用管脚都位于bank0, 所以都加有_0的后缀。下图表示了XADC的基本输入输出需求: 这有两种推荐配置:图中左边XADC由Vccaux(1.8V)供电,并且用一个外部的1.25V参考源。用外部参考源在精度和热飘移方面可以获得更好的性能,一个磁珠用隔离模拟地和数字地,这可避免较常用的模拟和数字电路共地而把噪声带入模拟电路的缺点;图中右边XADC是用片内的参考源,这时VREFP脚必须按图中所示连接到地。

Altera FPGA和 Xilinx-FPGA-引脚功能详解

XilinxFPGA引脚功能详细介绍 注:技术交流用,希望对大家有所帮助。 IO_LXXY_# 用户IO引脚 XX代表某个Bank内唯一的一对引脚,Y=[P|N]代表对上升沿还是下降沿敏感,#代表bank号 2.IO_LXXY_ZZZ_# 多功能引脚 ZZZ代表在用户IO的基本上添加一个或多个以下功能。 Dn:I/O(在readback期间),在selectMAP或者BPI模式下,D[15:0]配置为数据口。在从SelectMAP读反馈期间,如果RDWR_B=1,则这些引脚变成输出口。配置完成后,这些引脚又作为普通用户引脚。 D0_DIN_MISO_MISO1:I,在并口模式(SelectMAP/BPI)下,D0是数据的最低位,在Bit-serial模式下,DIN是信号数据的输入;在SPI模式下,MISO是主输入或者从输出;在SPI*2或者SPI*4模式下,MISO1是SPI总线的第二位。 D1_MISO2,D2_MISO3:I,在并口模式下,D1和D2是数据总线的低位;在SPI*4模式下,MISO2和MISO3是SPI总线的MSBs。 An:O,A[25:0]为BPI模式的地址位。配置完成后,变为用户I/O 口。 AWAKE:O,电源保存挂起模式的状态输出引脚。SUSPEND是一个专用引脚,AWAKE是一个多功能引脚。除非SUSPEND模式被使能,AWAKE 被用作用户I/O。 MOSI_CSI_B_MISO0:I/O,在SPI模式下,主输出或者从输入;在

SelectMAP模式下,CSI_B是一个低电平有效的片选信号;在SPI*2或者SPI*4的模式下,MISO0是SPI总线的第一位数据。 FCS_B:O,BPI flash 的片选信号。 FOE_B:O,BPI flash的输出使能信号 FWE_B:O,BPI flash 的写使用信号 LDC:O,BPI模式配置期间为低电平 HDC:O,BPI模式配置期间为高电平 CSO_B:O,在并口模式下,工具链片选信号。在SPI模式下,为SPI flsah片选信号。 IRDY1/2,TRDY1/2:O,在PCI设计中,以LogiCORE IP方式使用。 DOUT_BUSY:O,在SelectMAP模式下,BUSY表示设备状态;在位串口模式下,DOUT提供配置数据流。 RDWR_B_VREF:I,在SelectMAP模式下,这是一个低电平有效的写使能信号;配置完成后,如果需要,RDWR_B可以在BANK2中做为Vref。 HSWAPEN:I,在配置之后和配置过程中,低电平使用上拉。 INIT_B:双向,开漏,低电平表示配置内存已经被清理;保持低电平,配置被延迟;在配置过程中,低电平表示配置数据错误已经发生;配置完成后,可以用来指示POST_CRC状态。 SCPn:I,挂起控制引脚SCP[7:0],用于挂起多引脚唤醒特性。 CMPMOSI,CMPMISO,CMPCLK:N/A,保留。 M0,M1:I,配置模式选择。M0=并口(0)或者串口(1),M1=主

Xilinx spartan3e FPGA掉电配置及应用程序引导

Xilinx spartan3e FPGA掉电配置及应用程序引导 Xilinx公司的spartan3e开发板上面有丰富的外围器件,就存储器来说有一个16M并行flash,一个4Mbits串行flash,还又一个64M的DDR,在嵌入式开发中,一般我们可能会在FPGA中嵌入cpu软核,让C语言程序在里面运行。这就涉及到FPGA配置文件的引导,如果C语言程序太大,需要在DDR里面运行的话也涉及到应用程序的引导的问题。我刚接触到xinlinx的spartan3e开发板时,只会将FPGA配置文件(.bit)直接通过JTAG口下载到芯片里。后来编写的程序大了,如果将程序直接放到内部的RAM里面就装不下了,这时就只有将程序放到DDR里面运行,如果仅仅是调试应用程序不需要重启开发板后程序也可以运行,那么可以直接用EDK里面的XDM工具通过dow命令直接下载到DDR里面,然后就可以执行了。但是但我们的应用程序和硬件配置调试通过,达到了我们的要求以后我们就想到可不可以将让程序在板子上电时就可以自动运行呢。因为FPGA是掉电要丢失的,重新上电就必须重新配置。我们通过查找相关资料,找到了解决烧写问题的解决办法。首先是配置文件的烧写。spartan3e提供了3个掉电不丢失的外部存储器,就是上面提到的并行flash,串行flash和Flash PROM。配置文件都可以烧写到其中任何一个储存器里面。但是,在我看来,一般的配置问件都是烧写到Flash PROM里面。烧写方法有很多,可以用Xilinx公司的专门的烧写.mcs文件的工程烧写,也可以用iMPACT烧写。一般用iMPACT工具烧写,烧写过程如下: 打开iMPACT,弹出新建工程时选择Cancle,然后双击窗口左边的

第4节 Xilinx公司原语的使用方法1

第4节Xilinx公司原语的使用方法1 Xilinx 原语 3.4 Xilinx公司原语的使用方法 原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的“cout”等关键字,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM 等,相当于软件中的机器语言。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,其和HDL语言的关系,类似于汇编语言和C语言的关系。 Xilinx公司提供的原语,涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog中使用原语非常简单,将其作为模块名直接例化即可。本节以Virtex-4平台介绍各类原语,因为该系列的原语类型是最全面的。其它系列芯片原语的使用方法是类似的。 Xilinx公司的原语按照功能分为10类,包括:计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、Slice/CLB 组件以及G比特收发器组件。下面分别对其进行详细介绍。 3.4.1 计算组件 计算组件值得就是DSP48核,也有人将其称为硬件乘法器,功能描述如表3-6所示。 表3-6 计算组件清单 DSP48 其结构为一个18*18比特的有符号乘法器,且在后面还级联了一个带有可配置流水线的3输入加法器 DSP48核由一个18比特的乘法后面级联一个48比特的加法器,乘法器和加法器的应用位宽分别可以在18、48比特内任意调整。其在乘加模块中有广泛应用,特别是各类滤波器系统中,不仅可以提高系统稳定性,还能够节省逻辑资源且工作在高速模式下。 其在Verilog中的例化模版为: module fpga_v4_dsp48( BCOUT, P, PCOUT, A, B, BCIN, C, CARRYIN,CARRYINSEL, CEA, CEB, CEC, CECARRYIN, CECINSUB, CECTRL, CEM, CEP, CLK, OPMODE, PCIN, RSTA, RSTB, RSTC, RSTCARRYIN, RSTM, RSTP, SUBTRACT); output [17:0]BCOUT; output [47:0] P, PCOUT; //

FPGA的基本工作原理 Xilinx和Altera对比

FPGA的基本工作原理Xilinx和Altera对比 FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA 采用Flash或者熔丝与反熔丝工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。 根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。 查找表的原理与结构查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后, PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。 下面给出一个四输入与非门电路的例子来说明LUT实现逻辑功能的原理。 表给出一个使用LUT实现四输入与门电路的真值表。 从中可以看到,LUT具有和逻辑电路相同的功能。实际上,LUT具有更快的执行速度和更大的规模。 3.1.2查找表结构的FPGA逻辑实现原理

Xilinx_FPGA中文教程

Spartan-3E Starter Kit Board User Guide

Chapter 1: Introduction and Overview Chapter 2: Switches, Buttons, and Knob Chapter 3: Clock Sources Chapter 4: FPGA Configuration Options Chapter 5: Character LCD Screen Chapter 6: VGA Display Port Chapter 7: RS-232 Serial Ports Chapter 8: PS/2 Mouse/Keyboard Port Chapter 9: Digital to Analog Converter (DAC) Chapter 10: Analog Capture Circuit Chapter 11: Intel StrataFlash Parallel NOR Flash PROM Chapter 12: SPI Serial Flash Chapter 13: DDR SDRAM Chapter 14: 10/100 Ethernet Physical Layer Interface Chapter 15: Expansion Connectors Chapter 16: XC2C64A CoolRunner-II CPLD Chapter 17: DS2432 1-Wire SHA-1 EEPROM

Chapter 1:Introduction and Overview Spartan-3E 入门实验板使设计人员能够即时利用Spartan-3E 系列的完整平台性能。 设备支持设备支持::Spartan-3E 、CoolRunner-II 关键特性关键特性::Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C), CoolRunner?-II (XC2C64A-5VQ44C)与Platform Flash (XCF04S-VO20C) 时钟时钟::50 MHz 晶体时钟振荡器 存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR SDRAM 连接器与接口: 以太网10/100 Phy, JTAG USB 下载,两个9管脚RS-232串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开关,八个单独的LED 输出, 四个瞬时接触按钮, 100管脚hirose 扩展连接端口与三个6管脚扩展连接器 显示器: VGA 显示端口,16 字符- 2 线式 LCD 电源电源::Linear Technologies 电源供电,TPS75003三路电源管理IC 市场: 消费类, 电信/数据通信, 服务器, 存储器 应用: 可支持32位的RISC 处理器,可以采用Xilinx 的MicroBlaze 以及PicoBlaze 嵌入式开发系统;支持DDR 接口的应用;支持基于Ethernet 网络的应用;支持大容量I/O 扩展的应用。 Choose the Starter Kit Board for Your Needs Spartan-3E FPGA Features and Embedded Processing Functions Spartan3-E FPGA 入门实验板具有Spartan3-E FPGA 系列突出独特的特点和为嵌入式处理发展与应用提供了很大的方便。该板的特点如下: Spartan3-E 特有的特征:并行NOR Flash 配置;通过并行NOR Flash PROM 实现FPGA 的多种配置方式 嵌入式系统:MicroBlaze? 32-bit 嵌入RISC 处理器;PicoBlaze? 8-bit 嵌入控制器;DDR 存储器接口 Learning Xilinx FPGA, CPLD, and ISE Development Software Basics Spartan3-E FPGA 入门实验板比其他的入门实验板先进、复杂。它是学习FPGA 或CPLD 设计和怎样运用ISE 软件的基础。 Advanced Spartan-3 Generation Development Boards 入门实验板示范了MicroBlaze? 32-bit 嵌入式处理器和EDK 的基本运用。其更先进的地方

FPGA与DSP对比(精)

FPGA : 时序控制能力强。 (时序能力强,没有指令周期,速度快 控制能力较强(由于没有指令集,不如 ARM 和单片机。 数字信号处理及算法弱(这里讲的弱是指内部不集成 DSP 的前提下 DSP : 时序控制能力较弱。 (没办法。有了指令集,就有指令周期。而且受到时钟约束 控制能力较强(有指令集。但是不是专业搞控制的 数字信号处理及算法强(专业特长嘛 DSP 和 FPGA 开发的概述: DSP ,专用电路(内部结构已经固定通过对 RAM 内部的指令和数据工作(这个是CPU 和 ARM 等等的工作方式所以开发遵循嵌入式软件的设计原则。调试应更注重于算法的实现。 FPGA , ASIC 一种 , 经典 FPGA 的内部结构是寄存器 +组合逻辑(查找表。最后是按照逻辑电路进行设计。所以是属于硬件设计原则。调试除了需要关心功能以外, 还需要关心电路方面的特性。比如说延迟,整体功率等等。 开发工具: DSP 仿真器,开发板。仿真器比较多,网上查吧, DSP 仿真器,网上大堆的,嫌不够正规, TI 网站自己找教程和 datasheet 。 FPGA :开发工具比较多,他分成综合工具,仿真工具和开发板,综合工具 altera 的Quartus 和 xilinx 的 ISE 以及 synplicity 的 synplify 用的比较多。仿真么, modelsim ,时序仿真利器。也是网上去找吧。多滴很 ~~

技术支持你不用担心 ~TI和 Xilinx 和 Altera 的支持非常非常地道。就一个问题。英文要好。至少你能静下心来看。上了他们的网站。你就知道什么叫专业。fpga 还好, 因为就几家大公司才有能力出。 dsp 么,具体问题具体分析咯。 选择策略方面。这个是经验谈啊:不能绝对的说。 DSP 么,专业性比较强。而且的确能做别的 IC 做不了的事情(人家里面乘法器资源没话说稳定性和效率在数字信号处理这块基本无人能出其右 FPGA 呢相对来说可以运用的面比较广泛 (不过也是近期的事情。其实 FPGA 很早就有。只是当初设计领域都是通信方面的。现在有集成 CPU 和 DSP 以及公司提供的软核的强力支持,设计面越来越广

使用Xilinx CORE Generator

使用Xilinx CORE Generator心得 初步使用Xilinx CORE Generator: 参考书籍:《Xilinx ISE 5.x 使用详解》EDA先锋工作室 P63-P72:IP核生成工具——CORE Generator 1. 对于如何在工程中加入IP核,是很简单的,我在未看书之前,就可根据提示挑选适当的核,对核进行参数设置,将核加入工程。 2. 接下来是如何使用,在这里,由于我主要使用VHDL语言,仿真工具用ModelSim6.0,综合工具主要使用Synplify7.7,我就只说在这样的环境下如何对该IP核进行元件例化,进行项目配置,并进行仿真与综合。 2.1 元件例化 可使用ISE的Laguage Template,也就是Xilinx 6.2 ISE中工具栏右上角的小灯泡,在COREGEN目录下,你会发现,你所用到的IP核的例化语句已经出现在模板里,拷过去就可以直接用了(当然你可能也要视情况进行必要的改动)。 3. 仿真 这里,最主要的问题是库,由于使用了IP核,所以要把XilinxCroeLib加入ModelSim库中。我的经验是:先在当前工程的目录下创建一个xilinxcorelib库,然后把该库文件剪切到modelsim根目录下,最后在modelsim下,选中该库,点击右键选择Edit,将路径高到modelsim下。然后将xilinx\vhdl\src\xilinxcorelib编译到该库中。此时要注意,由于库文件的关联性,第一次不可能全部编译通过,连续三次后,大多数核就在库中,只有少数几个不能通过编译。 4. 综合 由于综合过程中,提示如下(下面是我在comp.arch.fpga上所发的问题): In my project,there's a xilinx IP core. I want to use the synplify7.7 to synthesize it, but there's a warning when synthesize . The warning is : @W: CD280 :"G:\project\itu656_dec\itu656_Decoder.vhd":29:10:29:19|Unbound component counter_11 mapped to black box @W: CD280 :"G:\project\itu656_dec\itu656_Decoder.vhd":37:10:37:18|Unbound component counter_4 mapped to black box my project nane is itu656_dec : a decoder for itu 656 video The following code has been used in my project: component counter_11 port ( Q: OUT std_logic_VECTOR(10 downto 0); CLK: IN std_logic; CE: IN std_logic; ACLR: IN std_logic); end component; component counter_4

三大FPGA芯片公司的主要产品系列和特点

Altera、Xilinx、Actel Altera作为世界老牌可编程逻辑器件的厂家,是可编程逻辑器件的发明者,开发软件 MAX+PLUSII和QuartusII。Altera 的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone,CycloneII;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Startix,StratixII等,用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。 * Cyclone(飓风):Altera中等规模FPGA,2003年推出,0.13um工艺,1.5v内核供电,与Stratix结构类似,是一种低成本FPGA系列,是目前主流产品,其配置芯片也改 用全新的产品。 简评:Altera最成功的器件之一,性价比不错,是一种适合中低端应用的通用FPGA,推荐使用。 * CycloneII:Cyclone的下一代产品,2005年开始推出,90nm工艺,1.2v内核供电,属于低成本FPGA,性能和Cyclone相当,提供了硬件乘法器单元 简评:刚刚推出的新一代低成本FPGA,目前市场零售还不容易买到,估计从2005年年底开始,将逐步取代Cyclone器件,成为Altera在中低FPGA市场中的主力产品。 * Stratix :altera大规模高端FPGA,2002年中期推出,0.13um工艺,1.5v内核供电。集成硬件乘加器,芯片内部结构比Altera以前的产品有很大变化。 简评:Startix芯片在2002年的推出,改变了Altera在FPGA市场上的被动局面。该 芯片适合高端应用。随着2005年新一代StratixII器件的推出,将被StratixII逐渐取代。 * StratixII: Stratix的下一代产品,2004年中期推出,90nm工艺,1.2v内核供电,大 容量高性能FPGA。 简评:性能超越Stratix,是未来几年中,Altera在高端FPGA市场中的主力产品。 *StrtratixV为altera目前的高端产品,采用28-nm工艺,提供了28G的收发器件,适合高端的FPGA产品开发 Xilinx是FPGA的发明者,拥有世界一半以上的市场,提供90%的高端65nmFPGA产品,开发软件为ISE。Xilinx的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Spartan系列;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Virtex系列,用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。 * Spartan-3/3L: 新一代FPGA产品,结构与VirtexII类似,全球第一款90nm工艺FPGA,1.2v内核,于2003年开始陆续推出。 简评:成本低廉,总体性能指标不是很优秀,适合低成本应用场合,是Xilinx未来几年在低端FPGA市场上的主要产品,目前市场上中低容量型号很容易购买到,大容量相对少 一些。 * Spartan-3E:基于Spartan-3/3L,对性能和成本进一步优化 * Spartan-6:xilinx最新推出的低成本FPGA

Xilinx原语的使用方法1

Xilinx原语的使用方法1 3.4 Xilinx公司原语的使用方法 原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的“cout”等关键字,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等,相当于软件中的机器语言。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,其和HDL语言的关系,类似于汇编语言和C语言的关系。 Xilinx公司提供的原语,涵盖了FPGA开发的常用领域,但只有相应配置的硬件才能执行相应的原语,并不是所有的原语都可以在任何一款芯片上运行。在Verilog中使用原语非常简单,将其作为模块名直接例化即可。本节以Virtex-4平台介绍各类原语,因为该系列的原语类型是最全面的。其它系列芯片原语的使用方法是类似的。 Xilinx公司的原语按照功能分为10类,包括:计算组件、I/O端口组件、寄存器和锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM 组件、Slice/CLB组件以及G比特收发器组件。下面分别对其进行详细介绍。 3.4.1 计算组件 计算组件指的就是DSP48核,也有人将其称为硬件乘法器,功能描述如表3-6所示。 表3-6 计算组件清单 DSP48 其结构为一个18*18比特的有符号乘法器,且在后面还级联了一个带有可配置流水线的3输入加法器 DSP48核由一个18比特的乘法后面级联一个48比特的加法器,乘法器和加法器的应用位宽分别可以在18、48比特内任意调整。其在乘加模块中有广泛应用,特别是各类滤波器系统中,不仅可以提高系统稳定性,还能够节省逻辑资源且工作在高速模式下。其在Verilog中的例化模版为: module fpga_v4_dsp48( BCOUT, P, PCOUT, A, B, BCIN, C, CARRYIN,CARRYINSEL, CEA, CEB, CEC, CECARRYIN, CECINSUB, CECTRL, CEM, CEP, CLK, OPMODE, PCIN, RSTA, RSTB, RSTC, RSTCARRYIN, RSTM, RSTP,

xilinx和 ALTERA系列芯片

芯片了解: 一、Xilinx 的主流FPGA 分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Spartan 系列;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Virtex 系列,用户可以根据自己实际应用要求进行选择。 在性能可以满足的情况下,优先选择低成本器件。 1.spartan —3 Spartan-3系列FPGA 【15】 是为那些需要大容量、低价格电子应用的用户而设计的。该系统的8种FPGA 密度从5万到500万门。Spartan-3系列是在Spartan-IIE 成功的基础上通过增加逻辑资源、增加内部RAM 容量、增加I/O 引脚数量、增加时钟管理功能以及增加总体性能来实现的,很多增强的功能都来自于Virtex-II 技术。这些结合了先进处理技术的改进,使得Spartan-3的性价比超出以前所能达到的水平。也为可编程逻辑器件提供了新的标准。由于异常的低价,Spartan-3可广泛地应用于各种电子设计,包括军工航天、宽带接入、家庭网络、投影电视、数字电视。Spartan-3还是替代ASIC 的更佳选择。不同于通常的ASIC ,FPGA 减少了初期成本并缩短了开发周期。同时,FPGA 的可编程性也使得它能在不需要考虑硬件更改的情况下进行设计升级,这是ASIC 不能做到的。 Spartan-3系列FPGA 产品的主要技术参数指标如表2.1所示。 表2.1 Spartan-3系列FPGA 技术参数 Spartan-3系列FPGA 结构包括5个基本的可编程功能单元:(1)可配置逻辑块(CLB )。该模块包括基于RAM 的查找表(LUT)。除了作为存储器外,CLB 还能通过编程实现很多的逻辑功能。 (2)输入/输出模块(IOB )。该模块控制I/O 引脚和内部逻辑单元之间的数据流动,每一个IOB 支持双向三态的数据流动,支持23种差分信号标准(其中有6种高性能差分标准)。输入/输出模块还包括了双数据速率寄存器(Double Data-Rate,DDR ),数控电阻(Digitally controlled Impedance, DCI )提供自动的片内终端,大大简化了电路板的设计。 (3)Block RAM 模块。该模块提供了18Kbit 的双口数据存储。 (4)乘法器模块。该模块提供了18位的二进制数据乘法。 (5)数字时钟管理模块(Digital Clock Manager,DCM)。该模块提供了自校准、全数字的解决方案,可以提供分布式的、延时的、合成频率的、分频的以及移相的时钟信号。 下为Spartan-3系列结构图 。 器件名称 逻辑单元 系统门密度 CLB 阵列 CLB 总 数 最大用户I/O 最大差分I/O 分布式RAM 容量/bit BlockR AM 容 量/bit XC3S50 1728 50K 16×12 192 124 56 12K 72K XC3S200 4320 50K 24×20 480 173 76 30K 216K XC3S400 8064 50K 32×28 896 264 116 56K 288K XC3S1000 17280 1M 48×40 1920 391 175 120K 432K XC3S1500 29952 1.5M 64×52 3328 487 221 208K 567K XC3S2000 46080 2M 80×64 5120 565 270 320K 720K XC3S4000 62208 4M 96×72 6912 712 312 432K 1728K XC3S5000 74880 5M 104×80 8320 784 344 520K 1872K

Xilinx ISE软件使用过程新(含PROM下载)

Xilinx ISE 13.4软件使用方法 本章将以实现一个如图所示的4为加法器为例,来介绍Xilinx ISE13.4开发流程,并且最终下载到实验板BASYS2中运行。 1 A 1 1.建立工程 运行Xilinx ISE Design Suite 13.4,初始界面如图F2所示 F1软件初始状态表 选择File->New Project ,该对话框显示用向导新建工程所需的步骤。 在Name 栏中输入工程名称(注意:以下所有不能含有中文字符或空格),如“test”。在Location 栏中选择想要存放的工程位置,如“E:\code\Xilinx\test”。顶层语言选项栏中选择“HDL”语言。设置向导最终设置效果如图F2所示 F2路径信息设置表

点击“Next”,进入芯片型号选择界面。在本界面中,根据BASYS2实验板上的芯片型号进行相关设置,设置效果如图F3所示。 F3芯片信息选择表 点击“Next”,出现如图F4所示工程信息汇总表格。 F4工程信息汇总表 点击“Finish”完成设置。

2新建Verilog文件 在F5所示界面中,如图所示的区域内右击鼠标,选择“New Source”,出现F6对话框。 F5 在File name栏中键入verilog文件的名称,如“test”。 F6 点击“Next”,在本界面中将设置加法器的输入输出引脚数量,如图F1所示的加法器共有A、B、C0、S和C1,5组引脚,其中A、B和S为4位总线形式,因此设置结果如图F7所示。

F7 点击“Next”,出现Verilog 新建信息汇总表。 F8 点击“Finish”,完成Verilog 新建工作。 3逻辑设计 输入代码

Altera FPGA的选型及开发

FPGA系统设计与应用
https://www.360docs.net/doc/886516959.html, https://www.360docs.net/doc/886516959.html,

华清远见
内容大纲
Altera的FPGA体系结构简介 Altera的FPGA选型策略 嵌入式逻辑分析工具SignalTAPII的使用 基于CPLD的FPGA配置方法
v v v v

华清远见
FPGA技术的发展历史和动向
电子器件:存储器、处理器和逻辑器件 v 存储器器件保存随机信息(电子数据表或数据库的 内容); v 处理器执行软件指令,以便完成各种任务(运行数 据处理程序或视频游戏); v 逻辑器件可以提供特殊功能(器件之间的通信和系 统必须执行的其它所有功能)。降低了成本、提高 了可靠性、缩小了物理尺寸

华清远见
逻辑器件分类
逻辑器件分成两类: v 固定的或定制的
固定的或定制的逻辑器件通常称为专用芯片 (ASIC)。ASIC是为了满足特定的用途而设计的芯 片,例如MP3解码芯片等。其优点是通过固化的逻 辑功能和大规模的工业化生产,降低了芯片的成 本,同时提高了产品的可靠性。
v 可编程的或可变的

华清远见
FPGA技术概念
v CPLD (Complex Programmable Logic Device) v FPGA (Field Programmable Gate Array) v 硬核:ARM、MIPS、POWERPC v 软核:Nios/NiosII v SOC: 片上系统 v SOPC:可编程片上系统 v IP核:知识产权

xilinx的prom配置经验

复位和上电复位 1 在上电时,这器件要求VCCINT在精确的上升时间内,单调的上升到标准工作电压值。 2 如果电压没满足要求,这器件就不能执行合适的上电复位。 3 上电运行的顺序:先PROM的OE/RESET保持低电平,在配置开始以前要求电源能达到它们各自的POR(上 电复位电压)门限,OE/RESET被定时释放后对稳定电源的应用有更多的余地。 4 在系统利用慢上升电源时,另外增加一个电源监控电路能被用做延时配置直到系统电源达到最小的操作 电源在OE/RESET一直为低电平。 5 当OE/RESET被释放,INIT就被上拉为高电平,允许FPGA有次序的配置。 6 如果电压低于POR门限时,PROM复位,OE/RESET再为低,直到达到POR 门限。 7 对于PROM电压正常时,只要OE/RESET=0或CE=1,复位就开始,当地址计数器复位时,CEO输出高电平,其 它的数据输出脚为高阻态。 8 XCFXXS PROM 只要求OE/RESET被释放以前,VCCINT上升到POR门限就行了。 9 XFCXXP PROM 在OE/RESET被释放以前,不但要求VCCINT上升到POR 门限,而且还要求VCCO达到被推荐的 正常工作电压。 配置 1 当JTAG配置指令在PROM里被更新时,PROM暂时给CF一个低电平,接着就给CF一个高电平。结合CF脚在外 部加了上拉电阻,此时在CF脚输出一个‘高-低-高’的脉冲个FPGA的PROGRAM 脚。此次FPGA就依次的开始 配置。 2 在CF脚外部必须加个上拉电阻,防止CF脚产生一个浮动到低电平的值而引起复位。 3 当XCFXXP的PROM存有多重设计文件时,CF脚必须连接到FPGA的PROGRAM_B脚去保证重新安放那些被选中 的设计文件(配置有效)。 4 对于XCFXXS的PROM,CF脚只是个输出,如果没有由于的功能的话,可以

Xilinx FPGA DCI的应用

Xilinx系列FPGA的DCI技术 1、DCI技术概述 随着FPGA芯片越大而且系统时钟越高,PCB板设计以及结构设计变得越难,随着速率的提高,板间的信号完整性变的非常关键,PCB板上若有关键信号,那么需要进行阻抗匹配,从而避免信号的反射和震荡。Xilinx公司提供DCI (Digitally Controlled Impedance)可以在芯片内部进行阻抗匹配,匹配电阻更加接进芯片,可以减少元器件,节省PDB板面积,并且也更方便走线。 传统的阻抗匹配是在PCB板上端接一个电阻。理想情况下,源端输出阻抗认为是很小的,而接受端的输入阻抗认为是很大,在实际电路中都可以不去考虑,只考虑PCB上的走线,从接收端看过去PCB特征阻抗应该等于源端接电阻,这样电流从源端流向接收端才不会导致反射。 2、阻抗匹配原理 阻抗匹配是指负载阻抗与激励源内部阻抗互相适配,得到最大功率输出的一种工作状态。对于不同特性的电路,匹配条件是不一样的。在纯电阻电路中,当负载电阻等于激励源内阻时,则输出功率为最大,这种工作状态称为匹配,否则称为失配。当激励源内阻抗和负载阻抗含有电抗成份时,为使负载得到最大功率,负载阻抗与内阻必须满足共扼关系,即电阻成份相等,电抗成份只数值相等而符号相反。这种匹配条件称为共扼匹配。 在高速的设计中,阻抗的匹配与否关系到信号的质量优劣。阻抗匹配的技术可以说是丰富多样,但是在具体的系统中怎样才能比较合理的应用,需要衡量多个方面的因素。例如我们在系统中设计中,很多采用的都是源段的串连匹配。对于什么情况下需要匹配,采用什么方式的匹配,为什么采用这种方式。例如:差分的匹配多数采用并联终端匹配;时钟采用串联源端匹配。

CPLD与FPGA区别

CPLD和FPGA区别 可编程逻辑器件主要包括FPGA和CPLD,FPGA是Field Programmable Gate Array缩写,CPLD是Complex Promrammable Logic Device的缩写。 从可编程逻辑器件的发展历史上来讲,CPLD一般是指采用乘积相结构的基于EEPROM的器件,所以具 有非挥发的,不需要外部配置ROM,具有保密性和有限次编程次数(根据不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外围的译码逻辑),IO扩展,IO电平转换,FPGA 芯片配置等应用场合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的XC9500和CoolRunner/II 系列芯片,Lattice的ispMACH4000/Z系列芯片都是CPLD器件,容量从32宏单元到512宏单元不等。 FPGA主要是指采用四输入查找表(LUT4)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据, 所以FPGA需要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采用标准的CMOS制造工艺,可以随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个基本指标是逻辑单元(Logic cell或者Logic element),由一个可编程得LUT4和一个可编程的DFF组成,LUT4完成组合逻辑功能, 而DFF用来实现时序功能。FPGA的容量从几千的逻辑单元到几十万的逻辑单元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN和Virtex4/5系列芯片都是FPGA器件。 随着芯片技术的发展,CPLD和FPGA的概念已经模糊在一起,如Altera和Lattice公司把小容量(小于2K 左右逻辑单元)非挥发的可编程器件归到CPLD里,如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的储存单元做到一个芯片里面,以及跟传统的CPLD不一样了; 总之,我们可以简单的区分FPGA和CPLD,CPLD:小容量(<2K左右LE)的非挥发的可编程器件;其它 的可编程器件都可归到FPGA。 系统的比较: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结 构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结 构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能 来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并 且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

相关文档
最新文档