管脚无法绑定-----diamond3.7

  遇到各种各样的客户,就会遇到各种各样的问题----这是FAE这个岗位性质决定的。

  客户用diamond3.7,一直给我抱怨说你们的lattice的东西怎么那么烂,连管脚都没法绑定。具体问题描述如下图1,他的时钟脚一直处于unconnected状态(ERROR - Port ‘i_clk‘ is unconnected.),时钟都进不来那还玩什么?

  接着把简化的代码在altera的平台上也试了一下,报的也是一个非常严重的警告,如图2所示。在Xilinx平台上测试也是一样的效果。所以说不是我们lattice平台的问题,只是说我们lattice为了防止后续的设计出现问题,在综合阶段就告知客户这是一个错误(其他几家平台报的是警告),好让客户早点修改。

  但是我们还没有找到问题的根源,所以我拿到出问题的代码查看了底层,看综合的结果,如图3所示。综合的结果很显然了,输出的值为固定值1,那么尽然是固定的值,我时钟还有啥意思,所以自然就无法绑定了。

  接下来我们分析下这段出问题的代码(部分代码)

module test(
input wire i_clk,

output wire lvds_sig,
output wire testout
);

assign lvds_sig = r_lvds_sig ;

[email protected](posedge i_clk)
cnt <= cnt + 1;

[email protected](posedge i_clk)

if(cnt == 18‘h1ff)
r_lvds_sig <= 1;

[email protected](posedge i_clk )
if(cnt == 18‘h1f0)
add_num <= 1;

assign testout =  |cnt ||add_num  ;

  对于按规则办事的工程师来说,一看,怎么都没有复位呢?实际上问题就出在没有复位。因为没有复位,综合工具就默认为add_num初始值是1,

[email protected](posedge i_clk )
if(cnt == 18‘h1f0)
add_num <= 1;

等价于

[email protected](posedge i_clk )
if(cnt == 18‘h1f0)
add_num <= 1;

else

add_num <= add_num;

也就是说add_num 固定为1,那么输出testout 也固定为1,类似的也可以推到出lvds_sig 也固定为1,既然所以输出的值都固定为1,那么还有我的时钟有何意义,所以三家FPGA厂商自然就报个错误或者警告提醒你一下。所以在设计的时候,一定要加上复位,不管你是同步还是异步复位。加了复位输出的值就会产生变化,就不会出现这样的错误了。

以上解释应该很清楚了,如有疑问请联系扣扣:825972925

图1                                                                                                          图2

图3

时间: 2024-10-12 18:08:41

管脚无法绑定-----diamond3.7的相关文章

diamond版本区别之管脚定义----lattice开发平台

对于多位宽的数据线,在diamond xxx之前,管脚绑定格式是(假如数据是input wire[1:0] din) LOCATE COMP "din_0" SITE "P16" ;LOCATE COMP "din_1" SITE "P15" ;/*******这种格式是不是很变态,和altera.xilinx都不一样,对于刚接触lattice开发平台的人来说绝对是一个坑*******/ diamond3.7,管脚绑定格式是

Java 脚本化编程指南

译文出处: coyee   原文出处:docs.oracle Java脚本化API为谁准备? 脚本语言的一些有用的特性是: 方便:大多数脚本语言都是动态类型的.您通常可以创建新的变量,而不声明变量类型,并且您可以重用变量来存储不同类型的对象.此外,脚本语言往往会自动执行许多类型的转换,例如, 必要时 将数字10转换为"10". 开发快速原型:您可以避免编辑编译运行周期,只使用"编辑运行"! 应用扩展/定制:你可以"具体化"的部分应用程序,例如一些

《ASP.NET》——数据的绑定之Repeater

前面学习了HTML静态的网页编程,了解了其中的一些语法,但是自己感觉对Web编程掌握的还不够过瘾,于是跟着计划,开始了ASP.NET之旅.在写这篇ASP.NET博客之前之前,我想先将先比较一下ASP.NET与HTML的区别与联系. 一.联系与区别:HTML是在客户端编程,通常生成的是静态网页:ASP.NET是在服务器端编程,通常能生成动态网页.ASP.NET中的控件是HTML中的控件重新设计.封装起来的,也就是说ASP.NET中的控件是以HTML中的控件为基础.ASP.NET控件具有回送功能,够

注册绑定页面及微信二维码登陆页面开发项目总结

乐帝来到新的实习单位,也许是之前面试或者在爱奇艺实习的履历,很快被项目组"委以重任".而不是老套路刚入职,先在架构师那培训两周,专心钻研框架,不问具体业务.乐帝只有几天看框架的时间,当被分配给框架页面时,还是不能得心应手,正如同事所说,学习还得按部就班,写写例子,看代码是不行的.    目前这家公司类似<走出软件作坊>作者阿朱所在行业,是面向中大型企业,提供人才管理解决方案的软件公司,时髦的词叫SAAS.这类公司层次要比外包公司高,却还有很多外包公司的特点,不像互联网公司有

关于GridView自定义绑定过程的行状态e.Row.RowState一点解析

GridView相信这个控件大家已经家喻户晓,而且用的也非常多了,本文针对GridView的行状态进行一点浅析,高手请留步,就此打住! 现在我们看个例子,现在要使用gridview输出一张订单表,订单有个状态字段取值为:0(未完成交易)1(已完成交易),现在重点是,我们绑定数据到gridview,显然绑定输出时候只能输出0和1,那么怎么实现将0输出为未完成交易,而1输出为已完成交易呢.这里我们就需要用到gridview为我们准备的数据行绑定事件了,如下图所示,我们订阅该事件,在gridview属

(qsf文件 、 tcl文件 和 csv(txt)文件的区别) FPGA管脚分配文件保存、导入导出方法

来源: http://blog.sina.com.cn/s/blog_3ef1296d0101aob6.html 三.FPGA管脚分配文件保存方法 使用别人的工程时,有时找不到他的管脚文件,但可以把他已经绑定好的管脚保存下来,输出到文件里. 方法一: 查看引脚绑定情况,quartus -> assignment -> Pins,打开FPGA引脚界面,在这个界面的菜单中可以保存引脚文件为csv格式(表格形式)和tcl格式. 步骤:File -> Export… -> 选择保存名字和保

FPGA管脚分配文件保存方法

使用别人的工程时,有时找不到他的管脚文件,但可以把他已经绑定好的管脚保存下来,输出到文件里. 方法一: 查看引脚绑定情况,quartus -> assignment -> Pins,打开FPGA引脚界面,在这个界面的菜单中可以保存引脚文件为csv格式(表格形式)和tcl格式. 步骤:File -> Export- -> 选择保存名字和保存格式. 方法二: 直接输出管脚配置,assignmengt -> Export assignmengt,可以保存配置为qsf格式,该格式可以

XGrid绑定(转)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Views.BandedGrid; using DevExpress.XtraEditors

关于Repeater嵌套绑定的问题

前台代码: <div id="firstpane" class="menu_list">                <asp:Repeater ID="rep1" runat="server" onitemdatabound="rep1_ItemDataBound">                    <ItemTemplate>