alterPCI核学习总结.docx

上传人:b****8 文档编号:9958339 上传时间:2023-05-22 格式:DOCX 页数:14 大小:1.05MB
下载 相关 举报
alterPCI核学习总结.docx_第1页
第1页 / 共14页
alterPCI核学习总结.docx_第2页
第2页 / 共14页
alterPCI核学习总结.docx_第3页
第3页 / 共14页
alterPCI核学习总结.docx_第4页
第4页 / 共14页
alterPCI核学习总结.docx_第5页
第5页 / 共14页
alterPCI核学习总结.docx_第6页
第6页 / 共14页
alterPCI核学习总结.docx_第7页
第7页 / 共14页
alterPCI核学习总结.docx_第8页
第8页 / 共14页
alterPCI核学习总结.docx_第9页
第9页 / 共14页
alterPCI核学习总结.docx_第10页
第10页 / 共14页
alterPCI核学习总结.docx_第11页
第11页 / 共14页
alterPCI核学习总结.docx_第12页
第12页 / 共14页
alterPCI核学习总结.docx_第13页
第13页 / 共14页
alterPCI核学习总结.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

alterPCI核学习总结.docx

《alterPCI核学习总结.docx》由会员分享,可在线阅读,更多相关《alterPCI核学习总结.docx(14页珍藏版)》请在冰点文库上搜索。

alterPCI核学习总结.docx

alterPCI核学习总结

AlteraPCI核学习总结

1.PCI核工作模式

PCI核在生成时可选择两种工作模式:

master/target模式和target模式;其中master/target模式下,PCI核可申请控制总线,作为master给其他PCI设备通信;也可以作为slave设备与masterPCI设备通信;而在target模式,只能作为slave设备被其他PCI设备访问。

在以上两种工作模式下,根据读写数据位宽(32bit和64bit,把PCI核分为4种:

PCI_mt64、PCI_t64、PCI_mt32、PCI_t32;

在本设计中使用PCI_t32模式,即target工作模式,读写数据位宽32bit;故以下的介绍中主要针对PCI_t32模式的使用说明;

2.在quartus中例化PCI核

注意界面右边的IPCatalog部分,在这里选择你想要IP核,如果界面上没有这个选择部分,则通过点击Tools-->IPCatalog调出来;

在Library->interfaceprotocols中点击PCI

点开PCI后可以看到PCICompilerv14.1,双击;

填写PCI核的命名(pci_core,选择生成IP核的相关代码是VHDL或Verilog,按自己需求选;点击OK;

跳转出此界面,有6个选项,

(1aboutthiscore:

里面介绍了此IP核的一些基本信息,例如版本、发布时间和能支持的FPGA器件型号;

(2documentation:

PCI核使用的指导文档

(3quartusIIconstraints:

关于PCI核的约束文件

(4step1:

parameter:

用来设置PCI核基本参数

compactPCI为紧凑型PCI接口,在接口协议上没有区别,只是在硬件接口连接上有区别;故按照硬件设计选在PCI或CompactPCI。

Master/Target或TargetOnly,两者区别为:

如:

目前有3个CPU在PCI总线上,分别标号CPU1,CPU2,CPU3,其中CPU1为HOST,CPU2/3为Target,CPU1HOST为PCI总线分配PCI空间等资源并赋予Target一定的读写权限;资源分配完毕,3个CPU可以相互访问,当CPU1访问(读写CPU2/3时,CPU1是Master,当CPU2访问CPU1/3时,CPU2就是Master;被访问的对象就是Slaver;也就是CPUx要访问PCI总线上的设备时先要向PCIHOSTS(CPU1上的总线控制器申请对总线的操作,占有了这总线的操作的CPU就是Master;

在这个步骤下选择PCI和master/target,然后点击Next;

填写参数值;

填写Baseaddressregister值,点击Next;

点击Finish;

(5step2:

setupsimulation:

生成仿真模型,点击OK

(6step3:

generate

最后完成IP核生成;3.PCI核引脚信号说明

以上信号列表中,PCIsignal是主设备端控制的信号;凡是local-side信号都是本地端控制的信号;在本设计中使用时,主设备端指CPU,本地端就是FPGA,所以在代码设计中,只要控制local_side信号就可以了。

本地端的信号在PCI_mt64、PCI_t64、PCI_mt32、PCI_t32四种模式下,使用情况不同,有的信号用不到。

4.PCI_t32数据读写方式

PCI_t32的读写方式由以下四种:

(132-bitsingle-cyclememoryread/write

(232-bitburstmemoryread/write

(3I/Oread/write

(4Configurationread/write

在本设计中使用single-cyclememoryread/write方式,即单周期内存读写方式;5.目标读事务

单个内存读目标事务时序波形图

6.目标写事务

单个内存写目标事务时序波形图

定义的地址范围内;使framen无效;并使irdyn信号有效,表示有数据需要传输;4在此时钟周期内完成以下事件:

1)PCI核使能It_framen,通知本地端设备,将要开始写事务;修改It_tsr[5:

0]中某个bit为1,It_tsr[5:

0]对应BAR地址范围;例如时序图中It_tsr[0]为高电平表示当前的ad地址值对应BAR0;2)PCI核把命令字输出到I_cmdo[3:

0],把地址值输出到I_adro[31:

0];3)PCI核打开devseln、ack64n、trdyn和stopn驱动能力,从时序图中可以看出原来是三态的,并且在第5个时钟周期中使能devseln和ack64n信号(ack64n在PCI_t32模式下不用);4)lt_tsr[8]高电平表示PCI核的主设备一端正在忙;PCI核使能devseln表示写操作开始;本地端拉低lt_rdyn,表示本地端已经做好接收数据的准备;PCI核拉低trdyn通知主设备端,已经做好接收数据的准备;因为irdyn已经有效,则在此时钟周期内完成数据字传输;锁存ad总线上的数据,并传输到l_dato总线上;锁存cben总线上的字节使能并传输到l_beno总线上;同时PCI核拉低lt_ackn信号,表示在l_dato总线和l_beno总线上的数据有效;由于lt_rdyn在第6个时钟周期有效和lt_ackn信号在第7个时钟有效,数据字传输在第7个时钟完成,故lt_dxfrn拉低有效表示一次数据字传输完成;PCI端已经完成写数据事务,PCI核重置lt_tsr[11..0]信号;PCI核使得lt_framen信号无效,通知本地端设备没有其他数据要传输;567897.配置寄存器介绍在PCI核中定义了64字节的配置空间,用来定义设备属性、控制PCI功能和提供PCI的状态信息;

(1)vendorID只读,标识设备生产厂商,默认值由altera厂商设定的0x1172,也可例化IP核时修改;

(2)DeviceID只读,标识设备类型,默认值0x0004,也可在例化IP核修改;

(3)commandregister读/写,用来设置PCI的基本功能(4)statusregisterPCI总线相关的事件状态信息,可以从寄存器中读取状态信息,但是不能写入寄存器数据,只能进行清除,即向某个bit位写1时,就会把相应的bit位清零;如果写0,则不变;

(5)RevisionID只读,标识器件的版本编号,由生产厂商设定,也可在例化IP时修改;(6)Classcode只读,默认值为0XFF0000;(7)Headertype8bit只读;bit[6:

0]的值为0表示普通PCI设备,值为1表示PCI桥,值为2表示cardbus;bit[7]是否为单功能设备;bit7为0值,表示为单功能设备;(8)Baseaddressregister基地址寄存器共有6个,都是相同的属性;使用时必须按序使用,必须从bar0开始使用;每个BAR的bit0支持只读,用来指明当前的地址空间是内存或IO;0时指内存地址,1时只IO地址;可在例化IP核时修改;通过对代码学习,理解BAR地址就如同地址总线,每个地址对应一个设备(如某个寄存器)或对应一个设备中的某个地址(如Flash的某个地址);在使用时,通过译码地址,确定数据的去向;

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2