|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
帖名并不贴切,因为我也不知道到底是怎么回事:已经用XILINX官方的PCI CORE编写好的程序,里面包括原CORE程序、用户应用和自己编写的其他一些模块,在自己原先的工控机上跑没问题,内存映射和数传等功能都能实现,但换了一台工控机就不行了,原先映射好的内存地址,IO BAR0中的数据现在读上来为全F,也就是都未配置的状态,但BAR2中原先模板程序(一个发数,再从原地址读回的Process)又没有问题,所以到底是上位机驱动和应用软件的问题,还是CORE没配置好的问题呢?(1)原以为是因为自己把BAR0 IO基地址寄存器的大小改为16K的原因(PCI CORE的用户指南中说,在X86系统中,IO BAR的寻址大小不能超过256 bytes,否则有些机器会不认卡),但卡的打开没有问题,而且从BAR2中也能发数读数。后来将IO BAR大小改为256,问题依旧,不知道是否还得改得更小些?(2)目前使用的时钟为:外部晶振引入100M CLk_IN,内部有DCM进行管理;外部串行数据时钟out_clk;PCI时钟33M;自己产生的串行数据和时钟输出为对33M始终的10次采样。现在问题来了,加了自己的一个模块后,PCICLK这个时钟线的时序报未达到时序要求,而且目前只要逻辑中添加超过四个BLOCK RAM的IP CORE,就会有一个BRAM只输出0,哪怕有初始化的值也是一样,到底是因为我没有对全局时钟进行时序约束呢(因为BRAM目前使用的时钟都是PCICLK 33M)?我觉得逻辑中IP CORE的引用应该不会有3个的限制吧?(3)双口BLOCK RAM IP CORE的使用中,发现有SSRA和SSRB这两个引脚,看DATA SHEET为output set/resest功能,高电平有效,但为什么我在板卡跑起来的过程中给逻辑中这两个引脚高电平为什么此BRAM中的值还是没有清零呢?到底这是说在SSRA/B为高电平的过程中BRAM的OUTPUT输出为零,还是说这两个引脚就是BRAM初始化的引脚呢?(4)既然主机的RST引脚能对整个PCI的核进行复位,那我能否也对某个自定义的引脚产生高电平,再与这个RST进行或操作,能否对我的用户逻辑进行全局复位呢(仅仅是用户逻辑,不影响CORE层)?目前我这样做没有成功过,不知道是哪里出了问题…… 问题有点多,大家请多关照一下。先谢谢了! |
|