完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我试图用spartan-3AN板命令一个独立的存储器,因为我在Hirose扩展端口上发送数据,信号和地址。 我用ISIM模拟设计,一切都工作得很好,因为我无法模拟内存本身(我有一个模拟模型,但ISIM不能处理1Mb信号)。 我也测试了它,用逻辑分析仪我可以看到信号,地址和写入数据是正确的,时间也很好,但读数不对。 我的猜测是它与双向数据总线有关,我知道内部三态在spartan-3上不再可用,但我无论如何也看不到它的使用而且我不确定是否会重新启动 它可以完成这项工作。 这是三态代码 // tristate.v // ------------------------------------------------ ---- // input =>到FPGA // output =>到MRAM // ------------------------------------------------ ---- 模块三态( mram_dq_i, mram_dq_o, mram_dq_io, mram_W_o ); 输入[7:0] mram_dq_o; 输出[7:0] mram_dq_i; 输入mram_W_o; inout [7:0] mram_dq_io; wire [7:0] mram_dq_i; wire mram_W_o; wire [7:0] mram_dq_io; wire [7:0] mram_dq_o; reg [7:0] mram_input_s; reg [7:0] mram_output_s; wire mram_W_inv_s; assign mram_dq_i = mram_input_s; assign mram_W_inv_s = ~mram_W_o; 分配mram_dq_io =(mram_W_inv_s)? mram_output_s:{8 {1'bz}}; 总是@(*) 开始 mram_input_s 假设存储器正在运行(我试过2确定)并且假设正确的信号和地址是在正确的时间发送的,它只是离开数据总线(dq)和这个内部三态警告。 有没有办法没有三态没有bidir? 谢谢 以上来自于谷歌翻译 以下为原文 Hi, I am trying to command a stand alone memory with a spartan-3AN board, for that I send the data, signals and addresses on the Hirose expansion port. I simulate the design with ISIM and everything is working fine as far as i can see for i cannot simulate the memory itself (I have a simulation model but ISIM cannot deal with 1Mb signal). I tested it too, with a logic analyser i can see that the signals, addresses and writing data are right and that the timing is good too but the reading is not right. My guess is that it has something to do with the bidirection data bus, I understood that internal tristate are no longer available on spartan-3, but i cannot see anyway not to use it and i am not sure the pull-up which are remplacing it can do the job. Here is the tristate code // tristate.v// ----------------------------------------------------//input => to the FPGA//output => to the MRAM// ----------------------------------------------------module tristate(mram_dq_i,mram_dq_o,mram_dq_io,mram_W_o);input[7:0] mram_dq_o;output[7:0] mram_dq_i;input mram_W_o;inout [7:0] mram_dq_io; wire [7:0] mram_dq_i;wire mram_W_o;wire [7:0] mram_dq_io;wire [7:0] mram_dq_o;reg [7:0] mram_input_s;reg [7:0] mram_output_s;wire mram_W_inv_s;assign mram_dq_i = mram_input_s;assign mram_W_inv_s = ~mram_W_o;assign mram_dq_io = (mram_W_inv_s) ? mram_output_s : {8{1'bz}};always@(*)begin mram_input_s <= mram_dq_io; mram_output_s <= mram_dq_o;endendmodule Assuming the memory is functionning (i tried 2 to be sure) and given that the right signals and address is sent at the right timing, it just left the data bus (dq) and this internal tristate warning. Is there a way not to have bidir without tristate ? Thanks |
|
相关推荐
4个回答
|
|
谢谢你的回答。
你的意思是如果Spartan 3AN不可能有内部三态(BUFT),那么输出三态(OBUFT)是否可能? 因为正如你所说的那样,如果没有三态,就没有办法实现双向,所以必须有一种方法让fpga处理它。 将三态verilog代码直接放在顶部将使xst成为OBUFT而不是BUFT? 以上来自于谷歌翻译 以下为原文 Thanks for your answers. Are you meaning that if it is impossible for Spartan 3AN to have internal tristate (BUFT), it would be possible to have output tristate (OBUFT)? Because as you said there are no way to have bidirectionnal without tristate, so there must be a way for the fpga to deal with it. Putting the tristate verilog code directly in the top will have xst make OBUFT instead of BUFT ? |
|
|
|
您还没有提到您正在使用的工具版本,但我建议您阅读用于HDL的Spartan 3库指南(UG607)。
可以在此处找到13.3版本(我已安装的工具版本)。 这里解释了IOBUF原语,以及如何实例化它(Verilog示例可用),尽管我认为它很容易推断。 OBUFT原语仍然存在,但如果你想要双向I / O,而不仅仅是三态输出,我会使用IOBUF。 问候, 霍华德 ----------“我们必须学会做的事情,我们从实践中学习。” - 亚里士多德 以上来自于谷歌翻译 以下为原文 You haven't mentioned what version of the tools you are using but I recommend reading the Spartan 3 Libraries Guide for HDL (UG607). The 13.3 version (tools version I have installed) can be found here. Here the IOBUF primitive is explained, as well as how to instantiate it (Verilog example available), although I imagine that it is simple to infer. The OBUFT primitive is still there but if you want bidirectional I/O, rather than just a tristateable output, I would use the IOBUF. Regards, Howard ---------- "That which we must learn to do, we learn by doing." - Aristotle |
|
|
|
这可能实际上解决了我的问题,我会试试。
谢谢 ! 以上来自于谷歌翻译 以下为原文 That might actually solve my problem, i'll try that. Thanks ! |
|
|
|
sarno写道:
谢谢你的回答。 你的意思是如果Spartan 3AN不可能有内部三态(BUFT),那么输出三态(OBUFT)是否可能? 绝对可以在任何Xilinx FPGA上使用双向FPGA引脚。 并且双向引脚必须是三态的。 我认为原语是IOBUFT,但我只是编写描述行为的VHDL,而工具做正确的事情。 而且,FPGA中没有三态/双向网络。 ----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 sarno wrote:It is definitely possible to have bidirectional FPGA pins on any of the Xilinx FPGAs. And necessarily a bidirectional pin must be tristate-able. I think the primitive is IOBUFT, but I just write VHDL that describes the behavior and the tools do the right thing. And, again, there are NO tristate/bidirectional nets within the FPGA. ----------------------------Yes, I do this for a living. |
|
|
|
只有小组成员才能发言,加入小组>>
2380 浏览 7 评论
2797 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2262 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2428 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
755浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
543浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
365浏览 1评论
1960浏览 0评论
681浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:52 , Processed in 1.450254 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号