草庐IT

vivado时序约束与管脚约束

ICtoddler_LY 2023-07-15 原文

时序约束

需要做时序约束的情况:

  1. 时钟频率较高;
  2. 工程占用芯片逻辑资源较多;
  3. 实测功能不稳定是由于时序导致的(没问题的代码加了无关紧要的部分出错);

时序约束(Timing Constraints):设计人员对时序的要求,如时钟频率,输入输出延时等。

对时钟频率约束最简单的理解:告诉EDA工具设计中所使用的时钟频率是多少,工具才能按照所要求的时钟频率去优化布局布线,使设计能够在要求的时钟频率下正常工作。

为什么要做时序约束:代码写出来的时候,各功能块资源、寄存器资源、布线资源等资源是随机分布的,而布线不同路径导致延时时间不同,这样的话就会导致竞争冒险的出现。为了避免这种情况,必须对fpga资源布局布线进行时序约束以满足设计要求。

vivado时序约束步骤:

打开工程文件→generate bitstream→打开IMPLEMENTATION下的Open Implementation Design。会显示FPGA内部资源的结构图:

 下面窗口的Timing:

 

 此时还未添加时序约束,最下边一行黑字显示出来。

 左侧叹号也有警告。

 可点击Constrain Wizard约束向导,但是比较复杂一般不用。

 可直接点击Edit Timing Constraints。

 双击红框处创建时钟约束。1.

 1.先定义时钟名称;2.选择端口。

 1.选择端口类型;2.Find。

 右箭头。

 Set。

 设置时钟的周期及上升沿、下降沿出现的时刻。

 CTRL+S保存,OK。

close掉IMPLEMENTATION,点OK。重新Generate Bitstream。

 这时再看.xdc文件发现多了一行:create_clock -period 20.000 -name sys_clk -waveform {0.000 10.000} [get_ports sys_clk]。之后如果再做时序约束,可以直接在.xdc文件加一行代码即可,只需修改周期与时钟名称。

管脚约束

在核心板原理图中搜索PL_GCLK(晶振产生的系统时钟)

 连接到芯片的U18引脚。

 把sys_clk连接到U18即完成时钟的管脚约束。

 再看底板的原理图,找到复位按键。

找到PL_RESET与FPGA芯片的J15引脚连接。

 在官方的Excel表格也已给出,可以看到是一致的。

 

有关vivado时序约束与管脚约束的更多相关文章

  1. 软约束、硬约束、Minimum Snap的轨迹优化方法 - 2

    文章目录前言约束硬约束的轨迹优化Corridor-BasedTrajectoryOptimizationBezierCurveOptimizationOtherOptions软约束的轨迹优化Distance-BasedTrajectoryOptimization优化方法前言可以看看我的这几篇Blog1,Blog2,Blog3。上次基于MinimumSnap的轨迹生成,有许多优点,比如:轨迹让机器人可以在某个时间点抵达某个航点。任何一个时刻,都能数学上求出期望的机器人的位置、速度、加速度、导数。MinimumSnap可以把问题转换为凸优化问题。缺点:MnimumSnap可以控制轨迹一定经过中间的

  2. ruby-on-rails - 子域约束并排除某些子域 - 2

    在我的routes.rb文件中,我想使用rails3中的子域约束功能,但是我想从catchall路由中排除某些域。我不想在特定的子域中有特定的Controller。这样做的最佳做法是什么。#thissubdomainidontwantallofthecatchallroutesconstraints:subdomain=>"signup"doresources:usersend#hereIwanttocatchallbutexcludethe"signup"subdomainconstraints:subdomain=>/.+/doresources:carsresources:sta

  3. ruby-on-rails - 在rails中创建一个表并添加外键约束 - 2

    我有一个表students,字段为ward_id,我必须创建一个名为guardian_users的表,字段为id,ward_id,email,guardian_id,hashed_pa​​ssword等现在我必须添加约束外键。学生中的任何更新/删除/编辑/插入应该对guardian_users具有相同的效果。我如何在Rails2.3.5中做到这一点?students表存在,但其他表还不存在。 最佳答案 您要么需要foreign_key_migrations插件或#execute方法。假设您使用插件:classCreateGuardi

  4. ruby - Rails 中的 FactoryGirl - 具有唯一约束的关联 - 2

    这个问题是对这里提出的问题的扩展:Usingfactory_girlinRailswithassociationsthathaveuniqueconstraints.Gettingduplicateerrors所提供的答案对我来说非常有效。这是它的样子:#Createsaclassvariableforfactoriesthatshouldbeonlycreatedonce.moduleFactoryGirlclassSingleton@@singletons={}defself.execute(factory_key)begin@@singletons[factory_key]=Fa

  5. ruby-on-rails - 使用 rspec 测试具有子域约束的​​路由 - 2

    我在使用子域约束进行rspec路由测试时遇到问题。特别是我有一条路线constraints:subdomain=>"api"doresources:sign_ups,:only=>[:create]end和(除其他外)测试it"doesallowcreationofsignups"do{:post=>"/sign_ups"}.shouldroute_to(:controller=>"sign_ups",:action=>"create",)end如果我删除子域约束,则此测试通过,但它会失败。我必须告诉rspec使用子域,但我不知道如何使用TIA安迪 最佳答案

  6. ruby-on-rails - 使用基于已安装引擎的 url_for 获取基于约束的 url - 2

    有什么方法可以让url_for在Action调度路由期间根据request.host返回url吗?mountCollaborate::Engine=>'/apps/collaborate',:constraints=>{:host=>'example.com'}mountCollaborate::Engine=>'/apps/worktogether'示例:当用户在example.com主机上时collaborate_path=>/apps/collaborate当用户在任何其他主机上时collaborate_path=>/apps/worktogether经过大量研究,我意识到Rou

  7. Vitis HLS 构建项目并生成IP核(Vivado HLS) - 2

    前言VitisHLS,可以通过它,用C和C++建立和封装一个IP核,从Vivado2021的版本开始内置,用于替代VivadoHLS,由于它太新了,网上有关教程很少(2020的版本还是VivadoHLS),所以这个系列的文章,用于记录如何使用VitisHLS。使用VitisHLS开发时,最好不要再使用C语言,而是C++,同时,使用一些旧教程中提到的"ap_cint.h"头文件会报错,这点请看后文提到的“错误1”。所以本文所有代码将使用C++。新建工程建立工程打开软件后,新建一个工程。设置好工程目录和工程名。一路next,它要我们添加两个文件,我们这里略过。到了选择器件一栏。我这里使用的是xc7

  8. ruby-on-rails - 在具有唯一约束的关联中使用 Rails 中的 factory_girl。得到重复的错误 - 2

    我正在使用一个Rails2.2项目来更新它。我正在用工厂(使用factory_girl)替换现有的固定装置,但遇到了一些问题。问题在于表示具有查找数据的表的模型。当我使用两个具有相同产品类型的产品创建购物车时,每个创建的产品都会重新创建相同的产品类型。此错误来自对ProductType模型的唯一验证。问题演示这是我创建购物车并将其分成几部分的单元测试的结果。我必须这样做才能解决这个问题。不过,这仍然说明了问题。我会解释。cart=Factory(:cart)cart.cart_items=[Factory(:cart_item,:cart=>cart,:product=>Factory

  9. FPGA面试题目笔记(二)——同步异步D触发器、静动态时序分析、分频设计、Retiming - 2

    文章目录1、行为级与RTL级的区别1.1RTL级(可综合成门级电路)1.2行为级2、关于LUT2.1LUT是什么2.2N维查找表2.3FPGA中的LUT3、`include和条件编译4、写异步D触发器(扬智电子笔试)4.1八位同步D触发器4.2具有异步清零,同步复位信号功能的D触发器5、静态、动态时序分析的优缺点(威盛VIA2003.11.06上海笔试试题)6、采用二选一多路器mux2和inv非门实现异或操作(飞利浦-大唐笔试)7、寄存器和锁存器的区别,为什么多用寄存器,行为级描述中锁存器如何产生8、D触发器实现2分频的Verilog描述(汉王笔试)9、D触发器实现带同步高置数和异步高复位端的

  10. javascript - javascript和css时序是否同步? - 2

    javascript(timeout,interval)和css(animations,delay)时序是否同步?例如:#anim1{animation:anim110slinear;display:none;}anim1.style.display="block";setTimeout(function(){anim2.style.webkitAnimation='anim210slinear';},10000);anim2是否会在anim1结束时准确地触发?是否因浏览器而异?在这种情况下,我对webkit焦点更感兴趣。请注意,anim1是通过javascript触发的,以避免加载时

随机推荐