xilinxeth时序约束
① Xilinx ISE 编译时,place & route 很慢.
个人看法,有两种可能:
1. 你的工程占用资源较多,随着资源的消耗,如果工程很大,ISE需要反复将之前布线好的部分进行优化,以腾出空间给后面的逻辑,所以越到后来布通所花费的时间就越长;
2. 你的约束中有较为苛刻或是不合理的时序约束,ISE需要花大量的优化计算去满足你的约束。
欢迎讨论。
② xilinx FPGA 综合 布局布线都是干了什么事情啊
1.post-快速的意思,这个问题我不太确定
2.translate:转换的意思,就是将vhdl或者verilog转换为器件元语,选择不同的器件,则转换结果是不一样的
map:布局,将转换出来的原件按一定规则摆放在fpga内部,原则是尽量分散,这个可以用区域约束来控制
route:布线,根据map的结果,计算fpga内部的最优连线,努力程度设置的不一样,结果一般是不一样的
behavioural 就是我们一般说的行为仿真或者功能仿真,也叫前仿,其他3种都叫后仿,这个仿真只是对功能进行测试,不包含任何门电路及线路的延迟信息,也就是说,功能仿真通过只代表功能正确性,但如果代码书写有不合理的地方,就有可能有因为布线导致的时序问题
顺便说一下,行为仿真只需要对代码进行synthesize通过就可以了,不需要其他步骤
post-translate指的是对代码综合和translate后,再进行仿真,这个仿真主要是加入了门电路的延迟信息,并没有计算布线的延迟
post-translate仿真需要执行translate后才能执行
post-map,同上,对工程执行综合、translate和map后,再进行仿真,这个仿真会将门电路的延迟和路径延迟计算进去,但需要注意,由于没有route,因此这里的路径延迟是理论计算出来的,一般实际布线的延迟会更大
post-route,也就是对工程进行综合、translate、map和route后,将所有真实的延迟信息计算进去,然后再进行仿真
3.behave是前仿,也叫功仿,其他几个都是后仿
4.时序约束主要是用来控制工程综合结果的,你不加时序约束,ise也会自动添加一个作为执行的依据。也许不加综合的结果能通过,但是想要可靠的话,还是加上比较好,这样report是比较可信的
③ FPGA的PLL时序约束应该怎么写
有人推荐更改pin的电气类型“把出现错误的引脚属性改为passive即可。” 你怎么确定你的错误是CLK1~CLK3这三个引脚悬空造成的呢? 把晶振接到pll,
④ xilinx的fpga哪些资源可以占满
频率不高的话都可以占满,不论资源占用多少只要能满足时序约束就行
⑤ 哪位好心的大侠教我如何编写fpga中具体项目的时序约束文件SDC吗
quartus的SDC约束就跟xilinx的ucf约束文件一样,如果SDC资料较少的话,可以看看UCF。
主要用途一般是:
一从输入端口到寄存器:
二寄存器到寄存器 通过设定时钟频率方式进行约束
三寄存器到输出
四创建时钟约束命令
五时钟延迟约束
六时钟抖动约束
七输入和输出延迟约束
八不关心数据传递路径和多拍路径
⑥ xilinx FPGA 前仿真后仿真不同
第一个问题:1,优化大量的组合逻辑,用时序逻辑代替。2,在关键路径上,多插入流水。3,时序约束加上去,找出时序违例的地方,优化之。4,ise工具的综合,布局布线的设置中,设置为速度优先
第二个问题:在综合的时候,工具会修改用户的信号名,仅在修改综合工具的设置情况下,有两种信号不会修改:1,端口信号,2,寄存器信号。你这种情况最好把“保持层次结构”也设置上
⑦ Xilinx ISE 里的程序 怎么移植到 Quartus II 下
一个是时序约束,另一个就是逻辑锁定。时序约束是按照你的时序要求去布局布线。而逻辑锁定则是指设计者将某个模块或者某个网络指定在器件的某个位置。尽管有时序约束,但综合器也不能保证每次都能达到要求;而只有当逻辑锁定后,它能保证被锁定的模块在下一次综合不被改变。
事出有因,之前加进来的一个SPI模块,一开始是正常的,后来陆续在设计中加了一些模块,综合后,居然发现SPI模块工作不正常,奇怪的是,在我备份的几个版本中,有几个正常,有几个又不正常,而在这个过程中SPI模块从未被修改过。我想一定是综合器在捣鬼,后来我在SPI正常的版本上查看chip
planner中spi的布局信息,然后将其逻辑锁定,再添加新的模块进来,结果发现,SPI果然没有受到影响。
⑧ 对xilinx FPGA的约束文件的一点疑问:{NET|INST|PIN} "signal_name" Attribute;,这几个到底怎么理解
首先INST是例化的意思,NET是网络名的意思,PIN是管脚的意思。
INST "I_ADC1_PB<0>" TNM = ADC1_PB;
------------------------------------------------------------
这是将I_ADC1_PB<0>这个信号约束到名为ADC1_PB的组里,然后可以对整个组的信号进行时序约束
------------------------------------------------------------
NET gpio_char_lcd<3> LOC = AF12;
------------------------------------------------------------
这是将网络名为gpio_char_lcd<3>的信号连接到实际管脚名为AF12的管脚上去
⑨ 求问,xilinx的门控时钟怎么做时序约束
时序约束是根据你的代码综合出来的实际寄存器做的。 因为你的代码里面后面的寄存器没有真正的使用,所以XST给你修剪掉了。 时序约束所以没有这些寄存器,于是找不到。 当然找不到的就是没有用的,你也不必约束。
⑩ 关于quartus时序约束方法
占空比约束没问题 不写也可以 缺省就是50%
虽然都是用于pin的约束 tsu/th和offset不是一回事(offset是io的数据和时钟的延迟 tsu/th是芯片里的dff的数据和时钟的延迟关系 不考虑clock skew的话 应该满足offset+tsu+delay <= T) 如果是registered-in/registered-out的设计 没必要加tsu/th约束了
原则上讲hold time不需要设的 这就是工艺的一个参数 选择了器件以及环境条件以后 工具自然获取了该参数
不管哪个厂家的fpga 肯定hold violation都少于setup violation的
如果出现这种情况 一般都是时钟有问题 查一下clk是否使用了全局时钟资源 再查一下TimeQuest选项Common Clock Path Pessimism Removal是否使能