PCIE详细设计.docx

上传人:b****8 文档编号:10045143 上传时间:2023-02-08 格式:DOCX 页数:15 大小:450.88KB
下载 相关 举报
PCIE详细设计.docx_第1页
第1页 / 共15页
PCIE详细设计.docx_第2页
第2页 / 共15页
PCIE详细设计.docx_第3页
第3页 / 共15页
PCIE详细设计.docx_第4页
第4页 / 共15页
PCIE详细设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

PCIE详细设计.docx

《PCIE详细设计.docx》由会员分享,可在线阅读,更多相关《PCIE详细设计.docx(15页珍藏版)》请在冰豆网上搜索。

PCIE详细设计.docx

PCIE详细设计

PCIExpress

详细设计

1PCIEXPRESS^1

2PCIEXPRESS数与接口1

3实现框图与接口时序错误!

未定义书签。

4PCIEXPRESS3模块(功能)的原理与实现2

4.1应用层模块2

4.1.1模块介绍2

4.1.2结构、算法(或原理)和实现3

4.1.3参数和接口7

4.2配置信号采样模块7

4.2.1模块介绍7

4.2.2结构、算法(或原理)和实现错误!

未定义书签。

4.2.3参数和接口8

4.3PCIE硬核模块8

4.3.1模块介绍8

4.3.2结构、算法(或原理)和实现错误!

未定义书签。

4.3.3参数和接口9

4.4LMI配置模块9

4.4.1模块介绍9

4.4.2结构、算法(或原理)和实现10

4.4.3参数和接口10

4.5重新配置时钟模块10

4.5.1模块介绍10

4.5.2结构、算法(或原理)和实现错误!

未定义书签。

4.5.3参数和接口10

4.6兼容性测试模块10

4.6.1模块介绍10

PCIExpress详细设计

1PCIExpress^绍

PCIE设备按照一定的拓扑连接构成总线结构,设备与设备通过协议规定的事务包(TLP进行通信。

PCIE垂直方向可分为应用层、事务层、数据链路层和物理层,协议规定每层实现的功能,每层功能配合实现设备的PCIE数据传输功能

PCIE硬核的结构图如下图1.1所示:

CBBTest1

altpcierdcompliancetest.v

Driver

J

应用层模块(altpcierd_example_app_chaining):

主要实现PCIE应用层的功能配置信号采样模块(altpcierd_tl_cfg_sample):

将PCIEIP核配置空间的特定寄存器内容读出来供应用层逻辑使用

PCIE硬核模块(top_plus):

主要实现PCIE协议中物理层、数据链路层和事务层的功能

LMI配置模块(altpcierd_cplerr_lmi):

PCIE设备检测到TLP传输错误时,向PC端报告错误,同时更新寄存器

重新配置时钟模块(altpcierd_reconfig_clk_pll):

实现IP核和其他模块时钟的配置

兼容性测试模块(altpcierd_compliance_test):

用于测试系统或设备的互操作性和一致性(通过按键完成CBE)

2PCIExpress参数与接口

表4-1PCIE模块接口

InterfaceName

Direction

Description

free_100MHz

in

本地时钟信号

local_rstn_ext

in

本地复位信号

pcie_rstn

in

PCIE复位信号

refclk

in

参考时钟

req_compliance_push_button_n

in

兼容性测试按键

rx_in0

in

数据输入信号

rx_in1

in

数据输入信号

rx_in2

in

数据输入信号

rx_in3

in

数据输入信号

alive_led

out

PCIE工作正常led显示

gen2_led

out

识别gen1或gen2使用led显示

lane_active_led[3:

0]

out

显示4条lane的状态

tx_outO

out

数据输出信号

tx_out1

out

数据输出信号

tx_out2

out

数据输出信号

tx_out3

out

数据输出信号

3PCIExpress^模块(功能)的原理与实现

3.1应用层模块

3.1.1模块介绍

该模块主要包括收发端口转换、收发缓存、链式DMA和RC_slave数据传输

功能、MSI中断。

本模块实现端点设备的存储空间,通过该空间和系统主存储器交换数据从而实现数据传输。

3.1.2结构、算法(或原理)和实现

a)收发端口转换模块

Avalon-ST接口时序是数据流传输,将TLP的头标和数据均作为数据传输,本模块将接收信号转换成时序相对简单的data/descriptor接口,发送是其逆过程。

b)收发缓冲模块

本模块主要监控数据缓冲区可用空间大小,防止IP核发送数据过多,接收

缓冲区溢出丢失数据。

当接收缓冲区空间较小时,应用层暂不发送读请求信号,避免接收缓冲区溢出。

为实现其功能,本模块主要例化一个10bit*32的双口RAM。

当应用层发送一个存储器读请求TLP时,提取TLP中Tag字段作为地址,将TLP中Length字段作为数据存入双口RAM中。

当接收到对应Tag带数据的TLP时,读取双口RAM中Tag值计算TLP所需缓冲空间大小,根据剩余缓冲区大小输出通知应用层,让其决定是否发送请求信号接收数据传输。

发送过程处理类似,不再赘述。

c)MSI中断缓冲模块

由于发送和接收数据时会对数据进行接口转换和缓冲,具有一定延时,在数据未完成传输就通知IP核产生中断会造成CPU误认为数据传输已经完成,且IP核处理数据也需要一定时间,所以要对中断信号缓冲处理。

d)数据传输模块

PTIF[P

Nil斤仁^iiiLll__I亠JLMHJU」

爭务层■呦宀r

哉州壮路k

W\l:

MAC门£

奈逋收联戲

4拘即心卩HY门/

二匚KIE耀路

PCIEj>kix备

PCIE的数据传输主要通过Rc_slave或者DMA模块两种方式。

1)Rc_slave模块

本模块主要完成普通数据的传输,可在CPU的控制下直接访问BAR存储空间。

由于DMA模块不能访问存储控制状态信息的BAR空间,所以每次DMA传输之前CPU必须通过本模块对DMA寄存器进行设置和启动。

本模块主要有两个子模块完成,rxtx_mem」ntf主要负责构建data/descriptor接口,若访问的是BAR0/1存储空间,则完成存储器读写请求;若访问的是BAR23存储空间,则交给另一模块reg_acess处理,由这个模块读写BAR23存储空间的信息,BAR23中主要是DMA控制状态寄存器中的内容,通过这个模块译码开始启动DMA。

控制状态寄存器中信息如下表所示:

Addr

(2)

RegisterHame

3124

2316

150

0x20

GKAWrStatusHi

Forfield(fefinttlOKrsftrtoT

0x24

L'XAH匸StatusLfl

TargetMamAddran

VMh

WriteDMAPerfcrmanceCourier.(ClozkcyclesfromtimfDMAheaderprogrammeduntillastdescrutorcampledincludingtimehletchdBGcriptorsJ

■■WRdStatusHi

Forfielddeflationsreferioi^ble15-9

0x2C

L'kAkdstains_.o

li/jxNo.uf

DMAPertormanctCwmfirfhenumberotclockstramtl-&timetheDMA^derispragrammedurtJlthBIsstdescriptorcoini)iet&s.includingthelimeioretchdc^cripm

0x30

ErrorStatus

Reservad

EnofCounter.NumberalbadECRCsdelecledbytheappicatkmlayer.ValidwlywtianECRCfiDrwanflngtoenabled.

NMiiolSbl»15-7;

(1]TMtisttwendpoitIDyte侣沢QttselfromBAR2wBAR3.

2)DMA模块

本模块实现DMA传输功能,DMA可在没有CPU干预下一次执行多个DMA操作,提高传输效率。

DMA通过描述符表完成,主机系统在住存储器中开辟一块区域存储DMA的描述符表,通过Rc_slave模块控制DMA从主存储器中读取DMA描述符表并开始DMA操作,完成后通过MSI中断通知主机数据传输完成。

描述符表的内容如下表所示:

ByteAddressOffsettoBanSource

DescriptorType

Descriptiun

0x0

DescriptorHeader

Reserved

0x4

Reserved

0x8

Reserved

OxC

EPLAST-v/hBiienabledbythe!

lPlasi_ehabitinthecontrolregisterordescriptorthislocationrecordsthenumbernfthplastdpsnri卩completedbythechainingDMAmodule.

0x10

Descriptor0

Controlfields,DMAlength

0x14

Endpointiddress

0x18

RCaddressupperdxvord

Oj(1C

RGaddresslowerdword

0x20

Descriptor1

Controlfields.DMAlength

0x24

Endpointaddress

0x28

RCaddressupperdword

0x2C

RCaddresslowerdv/ord

・-■

Ox』

Descriptor

Controlfields,DMAlength

Dx“4

Endpointaddress

OX„8

RCaddressupperdword

Oxt.C

RCaddresslowerdword

若传输的数据在一个双口RAM中存储,根据功能的不同需求,可将状态控制寄存器、DMA读数据存储和DMA写数据存储都用双口RAM实现,提高效率具体的改动也在应用模块中完成。

3.1.3参数和接口

3itpciefd&xampleappch3lrting:

app

a,pp_int_a-ck

3ppmsiacJi

r»tn

rjt_5tream_validO

jpp_in|_5t5

jpp_(nti_r#q

U_streMri_rii話

cpl_p#rding

b(_EtrB4m_rei[lyO

FJt_EtrEarn_mjslLOn_5tr£irTT_resdyC

U_strtam_validC

rJL_i*rMm_dat>0.0]

.[>]

肚i_num

app_m54_tc(2..-W]

rx_?

treat[31..C]

3pp_msi_num[4網

Ui_itrejn_cr»dJ5..

cp-l_#rr[6罔

cfg_bu^dev[12..fl1]ufpdev£5-r[3t..4Jpmtcsrpi..fi]

tfg_linkcir[3:

„[}]号一砖i*,r【IS,.粧

kD^6pi_5pfl_iraQ[1缶..0]

一些端口的说明参看IPCompilerforPCIExpressUserGuid中AppendixB。

3.2配置信号采样模块

3.2.1模块介绍

本模块通过与IP核的配置信号线相连,将IP核配置空间的特定寄存器内容读出传送至应用层模块使用。

IP核的配置空间为4KB,为了方便应用层设计,将IP核中常用的寄存器组成一个特定的配置空间,通过tl_cfg_sts信号引出至应用层。

该信号的内容如下如所示:

tl_cfq_s-s

53

Q

Cdnflgurationstarusbilts.Thisin4Drmationupdaiesever/fl:

o:

ec_keyetei.TTiegroufconsistsul(trumMSHLdLSB\

:

嵩M9】lcrj_2i\csrerrordetectionsignalastQll^s:

[■orrrctih'rf*rrorrnfortinj,emblf*,nor-f.it-ilerrorrnporfirgfenablfirtaldlfqc£«paiLingUMuppaEt.«d£«qu»st

Export;lug

-_su:

<91=d-^sIolc^l;2^lDatiimklayerstatechangedtL_^Er_5ts'47]-cf--_aLotc5;^20]Commandcompeted

Li_c£g>t*[

3i]=efg^iLike订贮:

d]Linkstatusbits

tlcfgjts[30)=cfin<2zr[1E]CurrentdB-Brnpri3£islevel.

cfgriin^2cir|':

illjiarer?

nervedperThePCleSpecificatioriandarenoravailableonLl_cfg_stsbus

tl=£.sts;29i_S]=L

5L[3t:

2'j5primarycommandstalesenorbits

r_丰sts>4j-rfrpr-r-r[j6rhprimarycommandstatusEirnrhit

tlrfgatai:

6J«:

tgr3aTcsrl25:

9.PMEbits

lj=c£^_3ecc3rUl:

27]5BICOfMbryoomniandstatuserrorbitsnat3]C']=]酋协secondarycQmm^rrd$tniuserrorbir

322参数和接口

aItpderdt1cfsLSampIecfqbus

pld_clk

rs-in

-■——.

tl_d9_CU_wr

Cfg_ttevWrll1..[j

tl_Eig_5te_-wr

q_linkitsrpr…D]

—-

tl_Hg_add|3...D]

erfg^prmcsrfU.-D]

t|_rf3-0<(3-1.^

cfg^msicsr[15rCJ

L

3.3PCIE硬核模块

3.3.1模块介绍

本模块实现PCIE数据传输的基本功能,实现了事务层、数据链路层和物理层的功能,以硬核的形式存在。

本模块按照PCIE协议实现事务层、数据链路层和物理层的功能,具体实现过程不再赘述。

与应用层的信息都是以TLP的形式进行交流,TLP的一种头标格式如下图所示:

+1

+2

7

65

43210

7

£54

3

2

1

0

7

6

54

3

2

1fl

7654

32

10

ByteO

Q

00

D00C0

0

TC

0

0

0

0

ID

£P

Attr

0

0

Urg^Tti

Byte4

RifquieStOr10

5

UstEE

FiistBE

B/te8

Address[31:

2J

00

B/te12

R&served

332参数和接口

IPCnmrhli*rto*PCIfn|wmaHjMip[rtrfifu

一些端口的说明参看IPCompilerforPCIExpressUserGuid中Table5—。

3.4LMI配置模块

3.4.1模块介绍

当PCIE设备检测到一个TLP传送错误时,如果该错误寄存器未屏蔽,PCIEIP核会向跟复合体报告错误,同时将包头更新为错误的TLP头标,本模块由一个状态机实现。

342结构、算法(或原理)和实现

内容2的结构、算法(或原理)和实现,参考现有的文档,把内容讲清楚。

3.4.3参数和接口

altpderdcplenlmi'lmLjlk

Z

clk^In

liiiii_rd:

en(GfJD|i

Imi9ck

|miwr

rstn

ImLdMTM』]

-

err_d»K{t27'..O]

-

-

cpl_erF_in[氐期

I.

3.5重新配置时钟模块

3.5.1模块介绍

本模块主要通过锁相环实现改变时钟频率的功能,长生不同的时钟供IP核

和应用层使用。

3.5.2参数和接口

lo&alrstri

pc-ierstn

re-folk;teatin22hip

reacompliancenubuttonintestiri5hipcompli占nt巻softclrl

"t.Eomulisnccnode

3.6兼容性测试模块

3.6.1模块介绍

当检测到兼容性测试按键按下时,开始执行兼容性模式,检查是否符合基板

(ComplianeeBaseBoard

3.6.2参数和接口

altpcierd_corripliance_test:

p□e_compliancejesLenaDle

-s■

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1