5.1.1 PLB介绍
由于PLB接口总线协议非常复杂,为了让用户更方便地开发,xilinx为用户专门设计了一套可以用工具生成的接口协议,称作plbv46_slave_single。它在用户IP核和PLB v4.6总线标准之间提供了一个双向的接口。plbv46_slave_single已经被优化成在4.6版本的PLB Bus上用于 slave运转的版本。plbv46_slave_single不支持DMA和IP Master 服务。
特点
- 与Xilinx PLB v4.6 的32位,64位和128位PLB兼容。
- 支持由32位,64位,128位Masters的存取。
- 支持32位slave配置。
- 支持单拍读写8位,16位,32位数据传输。
- 支持低延时PLB点到点拓扑结构。
功能描述
plbv46_slave_single被设计用于让用户便捷的在IBM PLB Bus和用户IP核之间执行轻量的交互。这个slave服务使得用户能在不同地址范围内提供地址译码,从而配置多个用户IP的接口接到PLB Bus上。plbv46_slave_single也可以被优化成节省FPGA资源,减小延时的点到点连接的设计。图5.1.1显示了plbv46_slave_single的结构图。
该设计的基础元素是Slave Attachment。这个结构提供了slave运行的基础功能。它在PLB总线和IPIC之间执行协议和时序的转换。

图 5.1.1 PLBV46_SLAVE_SINGLE 结构图
5.1.2 IPIF简介
Xilinx用户IP的文件结构:

Simmodels目录下是仿真模型,hdl是HDL源文件,Data目录下是相关的描述文件,netlist存放的是相关的网表。其中data目录包含以下几个文件:
- MPD文件
MPD文件(Microprocessor Peripheral Definition)定义了嵌入式系统外围设备的接口,它具有如下特性:
- 列出各个端口和总线接口的初始连接;
- 列出各参数和初始值;
- 任何一个MPD文件的参数都可以在MHS文件中,使用相应的文本命令行修改并且覆盖。
MPD 文件句法
1. 定义:
MPD文件的参数或者信号必须是符合HDL(VHDL或者 Verilog)语法要求的。VHDL 和 Verilog 都有其特定的命名规则。
MPD文件提供了外围设备的各种信息,您可以此文件中为VHDL或者Verilog配置各项参数。
例如:
您可以在MPD文件中插入注释,注释的方法为:
(1)以井号 (#)开头;
(2)加入注释直到行末尾;
(3)在一行中,注释可以被加在任何位置。
2. 格式:
使用下述格式作为元件定义:
(1)BEGIN 加“元件名”,关键字BEGIN标志着一个新的外设的开始;
(2)参数名 = 数值;
(3)END;
- PAO文件
PAO文件 (Peripheral Analyze Order) 包含了为综合而准备的一系列HDL文件,并且定义了编译使用的分析指令。
此处主要说明如下几部分内容:
PAO文件格式
用户使用如下格式:
- 以.lib为后缀的文件是用于综合和仿真的;以.simlib 为后缀的文件专用于仿真;以.synlib为后缀的文件专用综合;Vlgincdir定义了 Verilog的相关信息。
- 库名定义了包含此文件的库。IP 的所有相关文件都必须使用该IP名作为其库名。如果无版本信息,则默认使用最新库;如果要求使用特定的版本,则库名会给出附加的版本。例如,名字是第一种情况时,对版本 1.00.a库名是libraryname_v1_00_a 。
- 文件名指定了文件的名称。文件名有一个可选的文件扩展名。如果文件扩展名被忽略,那么对VHDL来说,.vhd扩展名将被添加;对Verilog来说,.v扩展名将被添加。如果MPD文件指定OPTION HDL=BOTH,那么扩展名可能不会被指定。
- 文件名可以指定关键字来代替文件名称。这导致所有来自被给出库的文件涵盖在内。如果你在参考PAO所属的同一个库时请不要用关键字。名字是第一种情况时任何一个用关键字的可参考的sub-library都必须与一个有效的PAO文件连接。
- Hdllang指定了文件名的语言。适用的值是verilog和vhdl。当OPTION HDL=MIXED被使用时,Hdllang要指明。如果语言没有被指定,OPTION HDL 值确定Hdllang的值。Hdllang不能被指定为OPTION HDL=BOTH。 如果所有的关键字都被用了,Hdllang就被忽略。此时由于这种特殊情况,sub-library的PAO文件将决定包含在库中的每个文件的语言。
- BBD文件
BBD文件(Black Box Definition) 主要用于管理您外围设计中不可见部分(black-box sections)的硬件优化网表文件位置。
BBD 例子:
- File Selection Without Options
下面是个file selection without options的例子。NGC网表被复制到执行目录下而不用管设置在核中的指定选项。
FILES
blackbox.ngc
- Multiple File Selections Without Options
下面是个multiple file selections without options的例子。这批NGC网表被复制到执行目录下而不用管设置在核中的指定选项。
FILES
blackbox1.ngc, blackbox2.ngc, blackbox3.edn
- File Selection With Options
下面是个file selection with options的例子。指定的EDIF网表根据在核中设置的C_FAMILY and C_BUS_CONFIG参数被复制到执行目录下。
C_FAMILY C_BUS_CONFIG FILES
Virtex 1 Virtex/ip1.edf
Virtex 2 Virtex/ip2.edf
spartan2 1 Virtex/ip1.edf
spartan2 2 Virtex/ip2.edf
Virtexe 1 Virtex/ip1.edf
Virtexe 2 Virtex/ip2.edf
spartan2e 1 Virtex/ip1.edf
spartan2e 2 Virtex/ip2.edf
Virtex2 1 Virtex2/ip1.edf
Virtex2 2 Virtex2/ip2.edf
Virtex2p 1 Virtex2/ip1.edf
Virtex2p 2 Virtex2/ip2.edf
- File Selection With Common Repository Library
下面是个file selection with a common repository library的例子。下面的例子举例说明了从ddr_v1_00_b 库中传递过来的ddr_v1_00_b_Virtex2_async_fifo.edn网表。
C_FAMILY FILES
Virtex2 ddr_v1_00_b:ddr_v1_00_b_Virtex2_async_fifo.edn
Virtex2p ddr_v1_00_b:ddr_v1_00_b_Virtex2_async_fifo.edn
<<上一节 下一节>>