在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8559|回复: 34

PCI设计

[复制链接]
发表于 2003-7-9 10:04:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
    目前设计的initiator功能较为简单,按照目前我们的系统设计需求,我的初步想法是这样:
    PCI用FPGA实现,master write时序是设计重点。fpga外挂一个大容量的fifo,内部嵌入一个小的fifo,用以将外部fifo数据导入内部去,匹配PCI时序。
    由于PCI交易过程中,fifo可能被多读,我想在内部设计中当遇到桥芯片提前终止交易时,用内部触发器锁住多余的数据,而不用将fifo“backup”。
   目前遇到的困惑:
    1、master write开始时,交易地址如何控制?因为这个交易地址是物理内存的地址空间,难道要在Fpga内部设计一个寄存器,保存物理地址空间?
    2、由于我的数据量较大,不可能在物理内存开辟足够空间。譬如物理内存开辟10M空间,我每次master write128个数据到内存空间,我用什么好的方法通知软件?软件是否要把内存空间的数据读走以腾出内存空间?
    3、当写入到内存空间的数据足够多时,可能到达内存底部空间,此时再一次交易是否由从内存起始的地址空间开始?
    4、你所设计的PCI卡实测的吞吐量有多少?针对第二个问题,由于(可能)软件从内存地址空间读数据,突发长度为多少较好?你认为长度定死好还是动态较好?
    上面是我个人的想法,你可以给出你的建议!
    希望得到你的指导!
   
发表于 2003-7-9 16:14:30 | 显示全部楼层

PCI设计

不知道你是否使用pci core ? 如果使用的话在设计指导上会有详细的initiator的设计描述,特别是pci fifo的使用问题,其实并不复杂。
我们用fpga设计pci时从来没有用过外部fifo,我们用的是512x32的内部RAM做的,通过测试发现用1024x32的fifo与512x32性能没有什么差别,因此我建议你只使用
内部fifo,这样更简单。我们所做的pci的速率最高为30Mbyte/S,但是如果LT配置的很低时(比如32)则数据会发生断链。我们的数据也很大(应该说是无限大,只要程序运行就会一直传送数据),我们采用了pinpang结构,即在fpga内设有两个交易地址,同时在pc机内也开有两块存储区,fpga内设有交易地址计数器,每传完一个数据块(所开内存区)就会产生中断通知pc机,当然软件要及时读走缓冲区内的数据以便下一次pci数据填充。突发长度设定并不重要,长度越长中断产生的频率就越低,我认为可取4k以上就可以了。
 楼主| 发表于 2003-7-9 19:38:28 | 显示全部楼层

PCI设计

    我没有使用PCI core,准备自己设计。
    目前我最感到疑惑的是交易地址,能否就着一方面给予详细的指导?
    我猜想你的设计是基于xilinx,我用的是Altera器件,关于pci initiator设计描述(可以公开)的文档能否发一份给我?
    非常感谢!
 楼主| 发表于 2003-7-10 10:46:08 | 显示全部楼层

PCI设计

    jack,initiator 中配置寄存器的Min_Gnt有何用途?我理解为可以保持总线的时间,例如设置为0x10,则可以保持250ns*16=4000ns,不知对否?我是否可以不用它,硬连线到0?
    Max_Lat是不是一般不用实现?
发表于 2003-7-10 11:27:03 | 显示全部楼层

PCI设计

Min_GNT 可以用来告诉系统软件或bios这块卡要求一次传输的数据数(pci clk),在设计时用硬连线最好连为ff,不能被软件改写。系统启动时,会读取该寄存器,然后综合分析后bios会决定这块卡的Lat_timer是多少,然后写入卡内,这样pci卡就会按lat的数值来决定一次传输的数据。有时bios不会满足你的lat要求,这时你可以用自己的驱动去写lat_timer(可以写为最大255),这样会提升这块卡的传输效率的
Max_Lat与此无关。
 楼主| 发表于 2003-7-10 21:34:10 | 显示全部楼层

PCI设计

你们用何软件作驱动程序?
发表于 2003-7-11 17:49:49 | 显示全部楼层

PCI设计

jack兄,牛。
发表于 2003-7-11 19:20:12 | 显示全部楼层

PCI设计

我们一般用DDK和windriver,不过我自己只用windriver,毕竟我是做硬件的,没有太多的尽力去编软件.
发表于 2003-7-11 19:21:34 | 显示全部楼层

PCI设计

谢谢jerry,欢迎你加入
发表于 2003-7-11 19:35:18 | 显示全部楼层

PCI设计

dragonyoo:关于pci initiator设计描述我有一份是xilinx的,不过是基于xilinx pci core以下的设计描述,不知对你是否有用?如果有用我可以发给你.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-22 19:33 , Processed in 0.031877 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表