发 帖  
原厂入驻New
[问答]

使用相同的.mcs文件编程完成FPGA时单热状态机出现不可能的状态的原因?

68 xilinx FPGA
分享
大家好:
我们使用的是v7 690t。
当我们使用相同的.mcs文件编程完成FPGA时,某些板在单热状态机中出现不可能的状态,例如,单热状态为0。
编程五板,一板都有错误。
如果我们再次编程错误板,则可能不会出现此错误。
有些身体经历这样的问题吗?
0
2020-7-26 09:01:52   评论 分享淘帖 邀请回答

相关问题

8个回答
这些问题通常是由状态机的异步输入引起的,这些输入没有与状态机的时钟域正确同步。
另一个可能的原因是用作时钟的逻辑信号,没有适当的低偏移缓冲和分配。
换句话说,您的问题可能是由于糟糕的设计实践造成的。
没有看到你的代码,这只不过是我的一个疯狂的猜测。
- 鲍勃埃尔金德
签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。
阅读手册或用户指南。
你读过手册了吗?
你能找到手册吗?2。
搜索论坛(并搜索网页)以寻找类似的主题。
不要在多个论坛上发布相同的问题。
不要在别人的主题上发布新主题或问题,开始新的主题!5。
学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。
提供有用的详细信息(请与网页,数据表链接).7。
您的代码中的评论不需要支付额外费用。
我没有支付论坛帖子的费用。
如果我写一篇好文章,那么我一无所获。
2020-7-26 09:13:09 评论

举报

HiBob: 
生成Sys_clk和Sys_rstn代码如下,Sys_clk = user_clk,Sys_rstn = ~user_reset; 
FDCP#(。INIT(1'b1))user_reset_i(.Q(user_reset),. D(user_reset_c |(~user_lnk_up)),. C(user_clk),. CLR(1'b0),. PRE(1'b0
)); 
单热FSM状态是
assign port_st_shift = pkt_st [0]&
((port_st [0]& ~P0_rx_valid)|(port_st [1]& ~P1_rx_valid))|
(pkt_st [1]&((port_st [0]& P0_rx_eop& P0_rx_ready)|(port_st [1]& P1_rx_eop& P1_rx_ready)));
始终@(posedge Sys_clk或negedge Sys_rstn)开始if(Sys_rstn == 1'b0)begin port_st [1:0] end else start port_st [1:0]
2020-7-26 09:21:06 评论

举报

我必须承认,当我看到源代码与设计师的风格大相径庭时,我深感怀疑。
我怀疑你没有编写代码,也许你不应该理解代码。
奇怪的是,您的代码片段包括一个实例化为基元(FDCP)的寄存器,以及一个用更传统的Verilog构造实例化的寄存器。
我提出的问题涉及时钟缓冲和分配,以及异步输入到同步状态机的可能性。
您发布的代码无法回答其中任何一个问题。
没有描述时钟sys_clk如何被缓冲和分配(例如,是否使用了BUFG?)。
没有描述port_st寄存器的逻辑输入的性质(这些逻辑信号是使用sys_clk时钟注册的吗?)。
鉴于代码实例化了2位port_st寄存器,我很惊讶综合工具没有将这个2位寄存器优化为单个1位寄存器,因为看起来很明显port_st [1]始终是port_st的否定[
0]。
也许这种优化确实发生了?FDCP寄存器与port_st寄存器没有明显的联系。
是否缺少连接,或者在您的帖子中包含FDCP的其他原因?
- 鲍勃埃尔金德
签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。
阅读手册或用户指南。
你读过手册了吗?
你能找到手册吗?2。
搜索论坛(并搜索网页)以寻找类似的主题。
不要在多个论坛上发布相同的问题。
不要在别人的主题上发布新主题或问题,开始新的主题!5。
学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。
提供有用的详细信息(请与网页,数据表链接).7。
您的代码中的评论不需要支付额外费用。
我没有支付论坛帖子的费用。
如果我写一篇好文章,那么我一无所获。
2020-7-26 09:37:25 评论

举报

嗨鲍勃: 
我只写了这段代码的第二部分。我不明白使用FDCP时出了什么问题。 
我们使用xilinx pcie ipcore,Sys_clk是pcie ipcore的输出。
所有的信号都在Sys_clk注册。 
我认为综合工具没有将这个2位寄存器优化为单个1位寄存器,因为其他电路板中的相同.mcs文件运行良好。 
为什么有些电路板不能正常工作?
2020-7-26 09:56:43 评论

举报

根据您目前发布的内容,我对您没有任何帮助。
如果问题与边际时序或异步信号处理不当有关,那么逻辑模拟对问题原因的排序几乎没有帮助。
建议你开始一个新线程,它应该引起你的问题的新关注,并提供尽可能多的细节。
- 鲍勃埃尔金德
签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。
阅读手册或用户指南。
你读过手册了吗?
你能找到手册吗?2。
搜索论坛(并搜索网页)以寻找类似的主题。
不要在多个论坛上发布相同的问题。
不要在别人的主题上发布新主题或问题,开始新的主题!5。
学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。
提供有用的详细信息(请与网页,数据表链接).7。
您的代码中的评论不需要支付额外费用。
我没有支付论坛帖子的费用。
如果我写一篇好文章,那么我一无所获。
2020-7-26 10:09:32 评论

举报

>总是@(posedge Sys_clk或negedge Sys_rstn)
应该很少使用异步复位,并且我永远不会将它们与同步FSM一起使用,因为在断言和解除断言之间总会存在时序偏差,这可能会导致失败。
尝试从您的设计中删除它。
------您是否尝试在Google中输入问题?
如果没有,你应该在发布之前。太多结果?
尝试添加网站:www.xilinx.com
2020-7-26 10:22:47 评论

举报

应该很少使用异步复位,并且我永远不会将它们与同步FSM一起使用,因为在断言和解除断言之间总会存在时序偏差,这可能会导致失败。
同意,应该没有任何异步信号应用于同步FSM。
这包括用作复位的信号和用作逻辑项的信号。
- 鲍勃埃尔金德
签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。
阅读手册或用户指南。
你读过手册了吗?
你能找到手册吗?2。
搜索论坛(并搜索网页)以寻找类似的主题。
不要在多个论坛上发布相同的问题。
不要在别人的主题上发布新主题或问题,开始新的主题!5。
学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。
提供有用的详细信息(请与网页,数据表链接).7。
您的代码中的评论不需要支付额外费用。
我没有支付论坛帖子的费用。
如果我写一篇好文章,那么我一无所获。
2020-7-26 10:41:51 评论

举报

应该很少使用异步复位,并且我永远不会将它们与同步FSM一起使用,因为在断言和解除断言之间总会存在时序偏差,这可能会导致失败。
尝试从您的设计中删除它
我喜欢异步重置,因为一个人不需要时钟来使它们工作。
我也同样关心他们;
幸运的是,有一种方法可以吃蛋糕,也可以吃。
可以实现一个异步复位同步电路,它可以让复位的断言异步发生但是同步断言,这同时允许两个特征。
由于解除断言是同步的,因此定时器可以验证时钟到RN移除路径(类似于clk到D输入设置路径)。
- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。
2020-7-26 10:50:37 评论

举报

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

114个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

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