发 帖  
原厂入驻New
发烧友10周年庆典,全网超值优惠来袭!千元现金券,下单抽奖赶紧参与》》
[问答] 三态缓冲区未按预期工作
305 xilinx 缓冲区 FPGA
分享
嗨,
我写了一个非常简单的代码,其中FGPA从/向处理器读/写。
我使用以下代码推断数据总线的三态缓冲区(16位宽)。
- 推断IOBUF io_datah s_data_read
注意:“s_re_l_2q”是输出使能(in_oe_l)的注册版本。
我试图用FPGA读取FPGA(FPGA正在写入微处理器)。
并且,我用chipcope捕获了以下内容。
根据微处理器数据表,在输出使能的上升沿(当芯片选择为低电平时),微处理器应读取数据。
我相信所有时间都是正确的,并且有足够的余量,微处理器不会错过数据。
然而,奇怪的是,我不知道为什么当我从微处理器读取数据时,我得到数据0xC630,而我期待0xC430。
看起来微处理器正在写入FPGA而不是从FPGA读取。
但情况应该不是这样,而应该恰恰相反!
在推断三态缓冲区时,我是否设置了错误?
当我在planAhead中打开设计时,我可以看到“io_data”被认为是In / Out,这似乎是正确的。
想法,我做错了什么?
全局约束(offset-in / offset-out)是否可能导致此类行为?
任何帮助都很赞赏。
谢谢,
--Rudy

以上来自于谷歌翻译


以下为原文

Hi,
I have wrote a very simple code, where FGPA read/writes from/to a processor.

I was using the following code to infer a tri-state buffer for the data bus (16-bit wide).

   -- Infering IOBUF
   io_datah    <=  s_data_write when (s_re_l_2q = '0') else "ZZZZZZZZZZZZZZZZ";
   s_data_read <= io_datah;

Note: "s_re_l_2q" is the registered version of the Output Enable (in_oe_l).

I made an attempt to read from FPGA with the microprocessor (FPGA is writing to microprocessor).

And, I captured the following with the chipscope.




Per microprocessor datasheet, at rising edge of the Output Enable (when chip-select is low), microprocessor should read the data.
I believe all the timing is correct, and there is enough margin that the microprocessor will not miss the data.
However, what is strange is that I don't know why when I read from microprocessor, I get the data 0xC630, whereas I was expecting 0xC430.
It seems like that microprocessor is writing to FPGA instead of reading from FPGA.
But that should not be the case, and it should be the exact opposite !!

Am I setting up something wrong, when infering the tri-state buffer ?
When I opened up the design in the planAhead, I can see that "io_data" is infered as In/Out, which seems correct.

And idea, what am I doing wrong? Could global constraint (offset-in/offset-out) be responsible for such behavior?

Any help is apprecited.

Thanks,
--Rudy
0
2019-3-8 14:01:02   评论 分享淘帖 邀请回答

相关问题

2个回答
您的电路板可能有问题。
- 鲍勃埃尔金德
签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。
阅读手册或用户指南。
你读过手册了吗?
你能找到手册吗?2。
搜索论坛(并搜索网页)以寻找类似的主题。
不要在多个论坛上发布相同的问题。
不要在别人的主题上发布新主题或问题,开始新的主题!5。
学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。
提供有用的详细信息(请与网页,数据表链接).7。
您的代码中的评论不需要支付额外费用。
我没有支付论坛帖子的费用。
如果我写一篇好文章,那么我一无所获。

以上来自于谷歌翻译


以下为原文

You might have a problem on your circuit board.
 
-- Bob Elkind
SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide.  Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts.  If I write a good post, then I have been good for nothing.
2019-3-8 14:14:18 评论

举报

嗨,
如果您怀疑三态缓冲区,我建议您使用OBUFT实例化,其定义可以在相应的库指南中找到。
例如,您可以查看7系列库指南-http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/7series_hdl.pdf
但是,我猜你已经为你的设计完成了模拟。
如果你没有这样做,那么我建议你这样做。
如果模拟确实有效,但它在硬件中不起作用,那么正如已经指出的那样,你的电路板或电路可能存在一些问题。
谢谢,
谢谢,AnirudhPS:请将此标记作为答案,以防它有助于解决您的问题。如果帖子引导您找到解决方案,请给予赞誉。

以上来自于谷歌翻译


以下为原文

Hi,
 
If you doubt the tristate buffer, i suggest you use the OBUFT instantiation whose definition can be found in the respective Library guide. For example you can check the 7 series library guide - http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/7series_hdl.pdf
 
However, i guess you have already done the simulation for your design. In case you have not done that, then i suggest you to do it.
 
If simulation does work but it does not work in hardware then as already pointed out there can be some problem in your board or circuit.
 
Thanks,
 
 
 
 
Thanks,
Anirudh

PS: Please MARK this as an answer in case it helped resolve your query.Give kudos in case the post guided you to a solution.
2019-3-8 14:25:39 评论

举报

只有小组成员才能发言,加入小组>>

40个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

快速回复 返回顶部 返回列表