精华内容
下载资源
问答
  • 什么是TOPO

    2017-09-10 20:56:00
    不少门萨题,来自拓扑学,其典例,2005年10月8日刊发在《晚会·游戏》版上的那篇《四种颜色与地图》.此例在拓扑学中大名鼎鼎,叫做“四色问题”.拓扑理论用途广泛,涉及空间规划、网络设计、通讯邮递乃至心理分析等诸多...

    拓扑,一个跟门萨同样古怪的“科技Word”.其定义,对绝大多数读者而言,不一定需要理解,但无妨知道———拓扑学,数学的一门分科,研究几何图形在一对一的双方连续变换下不变的性质.不少门萨题,来自拓扑学,其典例,是2005年10月8日刊发在《晚会·游戏》版上的那篇《四种颜色与地图》.此例在拓扑学中大名鼎鼎,叫做“四色问题”.
    拓扑理论用途广泛,涉及空间规划、网络设计、通讯邮递乃至心理分析等诸多领域,人们不大了解罢了.说来趣怪,致使这门学科得以诞生的契机却是一款很是独特的消闲.
    话说俄罗斯有座哥尼斯堡市,两条河于此间汇合,汇合处有个小岛,小岛跟其相对的3处河岸架设了7座桥.市民经常沿着河岸和小岛散步,于是很自然地就提出了一个实际问题:有无可能找到一条路线,能够沿它行走,经过全部7座桥却又不会重踏其中任何一座?
    时为18世纪中叶,著名数学家、瑞士人欧拉旅游至该市,他对这个消闲点子作了一番琢磨,确定了这条路线.当其时,欧拉的指划,只不过是逢场作戏,被称为“七桥问题”.
    迨至19世纪上半叶,有心人对欧拉的思路作了认真研究,在“七桥问题”基础之上,居然建立起一门崭新学科!显然极具文史素养的某位数学专家给这门学科起了个跟欧拉的原初研究无比贴切的学名———Topology!Topology是英文,其实质性部分Topo是一个同音同义的古希腊词的英文形变,意思是“地方、方位”.logy这个后缀也来自古希腊文,原意是“词语的聚集”,明治维新期间日本人大量翻译西方典籍,把它通译为“学科”之“学”.因之,若然对Topology作汉语直接对译,当为“方位学”.按,欧拉破解“七桥问题”之际,把3处河岸和1座小岛绘画成4个点,把7座桥绘画成7条线,点线相连,构成一个封闭的几何图形.想想看,以Topology概括欧拉的整个思路,是不是浑然天成?
    有位中国人把Topo译为“拓扑”!江泽涵先生是也!
    江泽涵(1902-1994年),安徽旌德人,1926年毕业于南开大学,1930年获哈佛大学博士学位,1931年任北京大学数学系教授,1955年当选为中国科学院数理学部委员.他是把拓扑学引入中国的第一人,他出版的《拓扑学引论》是中国人编写的第一部拓扑学教材.
    译Topo为拓扑,音义兼顾,形神俱备———“拓”者,对土地之开发也,“扑”者,全面覆盖也.
    上世纪前半叶,学界中人大抵通今博古,学贯中西,对于国外学术及科技用语的汉译,令人拍案叫绝之作迭出,如霓虹(neon)、引擎(engine)、绷带(bandage)、图腾(totem),等等.反观近世,知识爆炸,外间新事物有如潮水般涌入,但在水中央的国人东张西望,却瞩目皆是IT、IE、ADSL、modem、WindowsXP、CT、CD、VCD、DVCD、DVD、mp3、G4……Oh,myGod,果真是一代新人胜旧人?
    拓扑学是数学中一个重要的、基础性的分支.它最初是几何学的一个分支,主要研究几何图形在连续变形下保持不变的性质,现在已成为研究连续性现象的重要的数学分支.
    拓扑学起初叫形势分析学,是莱布尼茨1679年提出的名词.十九世纪中期,黎曼在复函数的研究中强调研究函数和积分就必须研究形势分析学.从此开始了现代拓扑学的系统研究.
    连续性和离散性是自然界与社会现象中普遍存在的.拓扑学对连续性数学是带有根本意义的,对于离散性数学也起着巨大的推动作用.拓扑学的基本内容已经成为现代数学的常识.拓扑学的概念和方法在物理学、生物学、化学等学科中都有直接、广泛的应用.

    转载于:https://www.cnblogs.com/xiaocai0923/p/7502248.html

    展开全文
  • Topo是什么 Topo是一款项目管理工具,集成任务、缺陷、文档、代码,集成企业树形组织架构、企业域账号、提供高效易用的本地部署企业级项目管理解决方案。我们试用Topo做代码检视,有很好的经验,分享一下。 2. ...

    Topo是什么

    Topo是一款项目管理工具,集成任务、缺陷、文档、代码,集成企业树形组织架构、企业域账号、提供高效易用的本地部署企业级项目管理解决方案。我们试用Topo做代码检视,有很好的经验,分享一下。

    2. 安装

    安装比较简单,一路Next就好,安装好之后,双击startup.bat,启动成功之后,访问浏览器,很快就看到下面的登录界面,缺省用admin/admin登录即可:

     


    Topo安装界面

    3.配置代码库

    Topo中有个代码库的概念,用来集成Subversion,在使用前需要配置一下:

     

    一般来说配置好的库,就可以手工同步commit历史了,但是为了更方便,可以安装SVN的钩子(一个小的脚本),安装后,所有的代码提交自动都会进入Topo了。

    如果Topo的系统账号和SVN账号不一致,可以在这里配置一个账号绑定,如果一致,就可以忽略了。

    4. 创建项目库

    有了代码库,可以创建项目库了,先要建一个项目:

     

     

    项目建完,就可以通过页面顶端切换项目来进入了,进入项目之后,为项目配置一下代码库目录:

     

    这里可以配置到代码库的任意一个目录,也就是项目的代码库可以只是一个目录,这样的话,很多项目就可以公用一个代码库了,到这里配置工作就全部完成了,可以浏览代码,进行按行检视了:

     

     

    所有的意见都会进入被检视者的待办事项,浏览器也会实时弹出提醒,还是很方便的。

    展开全文
  • GeoJSON 文件和 TopoJSON 文件都描述地理信息的文件,它们有什么区别和联系呢?

    本人的个人博客为:www.ourd3js.com 

    csdn博客为:blog.csdn.net/lzhlzz

    转载请注明出处,谢谢。


    前些天有朋友留言询问 GeoJSON 文件和 TopoJSON 文件的关系,正好我其实也不是十分明了,查询了一番后整理如下,还望大家指证。

    这两种文件都是基于 JSON 语法的,首先来说一下 JSON 语法和文件是怎样的。

    1. JSON 格式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。尽管 JSON 是 Javascript 的一个子集,但 JSON 是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。

    JSON 的格式[1]如下:

    • 物件( object ):一个物件的数据写在一组大括号内 { ... }
    • 名称/值( collection ): 每一个物件都由一系列的名称/值( collection )组成,名称/值之间用逗号( , )分隔。一个名称可以是一个字符串;一个值可以是字符串,数值,布尔值,有序列表,或 null 值。
    name:value

    由于 name 必定是字符串,所以要写在双引号之内。

    • 值的有序列表( Array ):列表写在 [ ... ] 之间
    [collection, collection, collection, ...]

    2. GeoJSON 格式

    GeoJSON 是一种对地理数据结构进行编码的格式。它只是一个采用上述 JSON 格式的用于描述地理信息的格式。它的语法和 JSON 是一样的,只是对各名称做了规范,形如[2]:

    { "type": "FeatureCollection",
        "features": [
          { "type": "Feature",
            "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
            "properties": {"prop0": "value0"}
            },
          { "type": "Feature",
            "geometry": {
              "type": "LineString",
              "coordinates": [
                [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
                ]
              },
            "properties": {
              "prop0": "value0",
              "prop1": 0.0
              }
            },
          { "type": "Feature",
             "geometry": {
               "type": "Polygon",
               "coordinates": [
                 [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
                   [100.0, 1.0], [100.0, 0.0] ]
                 ]
             },
             "properties": {
               "prop0": "value0",
               "prop1": {"this": "that"}
               }
             }
           ]
         }

    具体的可以参加 http://geojson.org/

    3. TopoJSON 格式

    TopoJSON 是 GeoJSON 简化后的版本,可以说是 GeoJSON 的小孩。D3.js 的作者认为 GeoJSON 不太好,比较推崇 TopoJSON 格式。

    TopoJSON 与 GeoJSON 相比,文件大小缩小了 80% ,因为:

    • 边界线只记录一次(例如广西和广东省的交界线只记录一次)
    • 不使用浮点数,只使用整数

    不过 TopoJSON 似乎只在 D3.js 中比较广泛的使用,还不是世界范围内认可的格式。

     

    要注意,无论 GeoJSON 还是 TopoJSON ,它们本质上有是 JSON 格式的文件,都遵循 JSON 的语法,只不过对变量的名称做了不同的规范。

    在 http://mapshaper.org/ 可以试着转换 GeoJSON 和 TopoJSON 的数据,我们会看到对于同一个地理数据文件,TopoJSON 的文件大小大概相当于 GeoJSON 的 20% ,这对于解决因文件量过大而造成的读取速度过慢是相当简单有效的。


    [1] http://zh.wikipedia.org/wiki/JSON

    [2] http://geojson.org/

    展开全文
  • 什么是物理综合 physical synthesis 物理综合就是将RTL综合为coarse-placement的网表;这需要让DC工作在TOPO mode' 并使用compile_ultra 命令; 需要一个布局文件,一般ICC生成的;(icc ii design planning); DC ...

    什么是物理综合 physical synthesis

    物理综合就是将RTL综合为coarse-placement的网表;这需要让DC工作在TOPO mode' 并使用compile_ultra 命令;

    需要一个布局文件,一般是ICC生成的;(icc ii design planning);

    DC NTX topological mode 是支持物理综合的

    DC NTX in topological  mode 使用virtual routing 去估计net的长度; virtual routing 使用 Manhattan distance估计两个pin之间的线网的长度;

    RC参数的计算也是基于net的长度而不是fanout;

     

    Day1: objectives

    1. 加载RTL设计和逻辑库

    2. 加载物理库和technology data 包括: physical 或 layout library (NDMdirectories) technology routing layer definition file (tf file) RC modeling files (TLUplus & map files)

    3. 加载布局的信息; TCL的物理约束或者来自ICCII的DEF文件

    所以整个NTX topo mode flow的输入包括: RTL design .v文件,design constraints 设计约束文件,db库文件,物理库文件 ,floorplan的DEF文件

    指定technology的逻辑库

    DCNTX flow 需要指定technology的逻辑库,才能完成综合;

    1. 标准单元库

    2. 宏单元和IP库

    每个逻辑库对应单一的PVT属性或者工作条件;

    标准单元的功能和属性信息

    通过.lib中对标准单元的表述我们可以获得以下信息:

    cell的name ,面积,引脚信息,design rule constraints(每个引脚的 function max_capacitance mian_capacitance)

    附加的需求: DC NTX generic logic library(DC的通用逻辑库)

    这个generic logic library 是由DCNTX提供的,在仅进行功能的综合时,可以用他来描述RTL结构.

    通用的逻辑库用来在读入RTL文件加载入DCNTXshell转换成未布局的gtech ddc 格式

    target library:用来选择指定工艺的单元

    用来生成,technology-specific的门级网表;

    DC NTX 会选择指定工艺库中最小的满足DRC timing和逻辑功能的单元.

    在综合之前,需要指定实际的由芯片的供应商或者库组提供的标准单元库文件

    set_app_var target_library libs/20nm_wc.db

    使用以下命令可以查看那些从默认设置中修改的所有application variable:

    get_app_var -list -only_changed_vars *

    link_library:用来解析实例化的reference

    用来link设计,解析RTL设计中或者门级网表中实例化的参考;

    在link设计之前指定标准单元和IP 逻辑库的名字

    reference(参考),是那些门,逻辑块,子设计,在设计中的实例化

    search path:用来指定搜索路径

    search_path = “. <install_dir>/libraries/syn

    <install_dir>/dw/sim_var

    "

    默认的search_path包括需要的通用库的路径;

    增加search_path到默认路径,而不是over_write(覆盖)

    set_app_var search_path "$search_path\

    mapped

    libs

    cons"

    application variables是全局的变量而非私有的

    在相同的工具环境下会应用到所有的设计中;

    设置也不会跟随设计而保存;当工具的会话结束时(tool session ends) 这些application variable会恢复到默认状态;

    所以application variables需要在工具启动时重新设置;

    处理analyze命令产生的中间文件(intermediate files)

    会产生 .syn .pvl .mr文件

    这些文件被保存在由 application variable"WORK”指定的路径中,默认是CWD,这会使CWD文件夹很杂乱,使用以下命令可以获得更整洁的CWD;

    CWD : current design directory

    define_design_lib WORK -path ./work

    analyze -f verilog TOP.v

    你可以指定独立的libraries name 在analyze的时候;

    define_design_lib MID -path ./mid

    define_design_lib BOT -path ./bot

    analyze -f  sverilog -library BOT bot.sv

    analyze -f  sverilog -library MID mid.sv

     

    物理综合的需求

         物理综合会将输入的RTL模型生成一个门级网表附带标准单元的粗布局

    topo mode 会在综合时生成粗布局布线估计;但这需要物理单元库使用NDM(new data model)格式拥有technology data;并且需要布局的信息;

    NDMcell library 或者叫做 CLIBs 包含frame和timing view frame view包含物理拓扑信息,timing view 包含所有的来自原始db库的信息,包含逻辑定义,时序,功耗和其他属性信息;

    物理综合所需要的物理信息

    来自ASIC代工厂或者library group的 物理单元库,(NDM format),包括标准单元的frame view 和 IP核和宏单元的frame view;工艺信息(technology data)包括工艺文件(technology file) TLUPlus文件(RC寄生参数的信息)  layer mapping files()

    一个"design library”设计库用来存储工艺文件内容和指向物理单元库;

    什么是物理单元库

    一个标准单元是用指定工艺的基础逻辑门提前设计好版图的

    每个标准单元通常都有相同标准的高度

    一个物理单元库包含用frame view描述的标准单元的集合,并且在NDM格式下是可用的;

    DC NTX和ICCII使用相同的NDMformat,但是ICC使用的物理单元库的格式叫milkways

    technology file (.tf文件)

    工艺文件,对于每一个technology来说是唯一的

    定义了所有的工艺参数;这个文件主要定义的一些 layer的信息,金属,mos管的一些参数,DRCs等等;

    布线的方向 routing direction

    tech file 并不会定义金属层的优先布局方向;这需要全局的基于布线的拥塞分析;

    指定routing direction

    set_preferred_routing_direction -layers {M1 M3 M5 M7} -direction horizontal   set_preferred_routing_direction -layers {M2 M4 M5 M8 MRDL} -direction vertical

    必须在读入了RTL代码或者DDC网表之后 才能设置 routing_direction 否则会报错;当前设计没有定义,无法找到object M1

    TLUplus file

    包含RC的查找表

    layer mapping file

    是匹配technology file和TLUPlus file的信息;

    物理综合需要一个Design library;

    更像一个容器,包含设计所需要的工艺文件信息,并指向物理单元库;

    第一次综合,创建加载设计库 design library

    //create the design library and set tluplus files set ndm_reference_library .../CLIB/saed32_lvt.ndm   set ndm_design_library  ./MY_design.dlib   if{! [file isdirectory $ndm_design_library]} {   create_lib -reference_library $ndm_reference_library  \     -technology ./tech/saed32_1p9m.tf $ndm_design_library  check_library     //检查逻辑库和物理库的一致性 consistency   }else{    open_lib $ndm_design_library   }   set_tlu_plus_files -max_tluplus  ./tech/***.tluplus  \   -tech2itf_map  ./tech/ ***.map  

    关于综合后的网表和floorplan先有鸡还是先有蛋;

    解决方法:

    1. two-Phase SPG synthesis flow; 双向的SPG综合流程

    pre_floorplan使用的是默认的布局约束

    如果没有指定约束的话;

    它会使用: 1. 方形的core的放置区域

    1. 核心的大小基于60%的利用率

    2. 将宏单元和标准单元一起摆放

    3. 顶层端口的位置是任意摆放的

    那如何修改pre_floorplan的默认布局约束呢

    默认的core size and shape

    set_utilization 0.6 标准单元利用率 60%

    set_aspect_ratio 1 正方形

    定义精确的矩形/直线 core或die的面积

    先将默认的utilization和aspect ratio改掉

    标准单元和宏单元放在 core area

    pads和 I/Opins 放在die area

    默认 DCNTX 声明的core area和die diearea 是一样大的;

    除非用 crate_site_row被用来定义 core area 的边界;

    create_die_area -coordinate {{0 0}{600 400}}

    用它来定义core area的面积边界

    example : 物理约束文件

    post_floorplan synthesis 布局后综合,加载floorplan

    在经过ICCII的设计布局后,布局的信息通过 write_floorplan 输出为 DRF文件和floorplan的tcl文件

    在DCNTX中加载ICCII的floorplan

    create_net -power “VDD VDDL"

    create_net -ground VSS

    read_floorplan floorplan_dc/floorplan.tcly

    读取tcl文件就会将DEF文件读入? 

    时序约束

    输出capacitive laod的影响

    输出端口的电容负载会影响transition time,因此会影响到cell输出到outputdriver的delay,

    DCNXT默认outpu的capa load为0;所以给output capa load 一个估计(为capa load 建模)是十分必要的;

    所以设置负载的方式有两个:

    1. 直接给输出端口 赋 capa的值

    set_load -max [expr {30.0/1000}] [get_ports B]

    1. 为输出端口指定具体的标准单元,利用laod_of 计算此标准单元的capa

    set_load -max [load_of my_lib/AN2/A] [get_ports B]

    set_laod -max [expr {[laod_of my_lib/AN@2/A] * 3}] [get_ports B]

    输入Transiton time的影响

    和输出的capa 为一对 ,同样会影响 cell delay of the input gate,同样DC在默认情况下, input的transitiontime 也为0;

    同样有两种方式,like output_load :来指定input_transition:

    1. set_input_transition -max 0.12 [get_ports A]

    2. set_driver_cell -max -lib_cell OR3B[get_ports A] 对于这种一输出的门来说,不用指定pin

    3. set_driver_cell -max -lib_cell FD1 -pin Qn [get_ports A]

    如果在综合之前,你不知道input_driver 和output_load呢

    这就需要 load budget;

    load budget assumptions 负载预算假设;

    应用一个弱驱动,在输入引脚(作为保护) :inv1a1

    应用一个合理情况下最大的负载;

    _

    _(待补充)

    负载预算脚本

    reset_design

    source timing_budget.tcl

    set all_in_exp_clk ...

    set_driver_cell -max -no_design_rule -lib_cell inv1a1 $all_in_exp_clk

    set max_capacitance [expr {[load_of ssc_core_slow/and2a1/A]* 10 }] &all_in_exp_clk

    set_load -max [expr {[load_of ssc_core_slow/and2a1/A] * 3 }]  [all_outputs]

    其中set_max_capacitance是设计规则的约束 DRC 限制一个端口扇出的capacitance,默认情况下,DRCs 比时序面积约束又会更高的优先级;所以不要过度约束用户定义的DRCs 是十分重要的;

    DC NXT Ultral synthesis tech DC的极端综合科技

    一个最优的综合结果需要:

    1. 高质量的RTL代码 适合综合的

    2. 完整精确的约束

    3. 适用所有DC ultra的优化选项

    4. 利用DCNXT 物理指向的有点;

    简化综合流程,对大的设计最好使用 top-down的综合

    默认的优化选项of compile ultra

    1, 三个层次上的优化

    architecture

    logic level

    gate level

    什么是DesignWare library 设计容器库

     

    soft IP和datapath 元件的集合,这里的IP主要是算术运算符的小IP

    当输入输出的宽度超过4bit的话,会封装成hierarchy

    单算术运算的优化

    DW库会使用数据路径生成器去建立不同算术运算符的运算结构

    这些不同的结构使得compile_ultra可以选择执行最好的结构应用到设计中;

    一旦选择了某一结构的运算符,便会针对目标工艺库进行优化;

    数据路径的优化,CSA transformation

    CSA: carry save adder,其实指的是carry save adder tree; 超前进位加法器;

    超前进位加法器在大部分情况下,相较于传统的加法器,是小而快的;

    关键路径的二次综合;re_synthesis

    在compile_ultra下国建路径的二次综合会在需要的时候自动执行;

    CPR (critical path re-synthesis)在compile指令下也可以执行,加option -map_effort high

    当门级不符合时序,或存在违例的关键路径,会返回logic_level进行忧化;然后再次mapping 网表;这样循环往复;

    负载划分和组合逻辑的复制

    会减少critical_path的延迟,得到更快的电路,但是面积会更大;

    这个选项是常开的,没有option可以将其关闭;

    库的分析 library analysis (ALIB)

    会利用库中的单元,创建一个缓存区,存储一些常用复杂布尔运算逻辑的实现

    会得到的更好的面积优化的结果;

    ALIB 对于每一个工艺库都会生成一次,可以在下次使用此库时继续使用,也可被别的用户使用;

    当ALIB不存在时候,使用alib_analyze_libs命令,可以人为生成ALIB,一般在第一次执行compile_ultra命令时,会自动生成,使用alib_library_analysis_path选项,指定ALIB生成的文件路径;

    子模块pins的保持

    默认综合必须保持子模块在层次上pins的定义;

    旨在优化逻辑上冗余,可以被合并或者剔除的逻辑门;

    自动解除组合 auto_ungroup 是默认开启的;

    它会自动将poorly  partition(congestion 比较大)的层次解组,所谓的poorly partition:如果他的数据输入,并不是直接与寄存器输出相连,或者所有的输出是不被储存的;换句话说:一个好的分割(well partition),的子设计没有用 没有时钟的组合逻辑或者寄存器输入作为层次便捷的划分;

    可以在compile_ultra 后加option 解除自动的ungroup;

    compile_ultra -no_autoungroup;

    也可以指定不能被ungroup的design或者cell;

    自动的ungroup允许组合和时序偶记电路的优化;,但是这会可能影响形式验证

    在综合期间,工具会自动生成default.svf文件,这个文件记录了设计中的边界优化,寄存器复制和ungroup;可以被formality 做形式验证时读入;

    set_svf <My_svf.svf> 命令可以自定义svf文件的名字,此命令要在读入RTL设计之前执行;

    DW库hierarchy的自动ungroup;

    auto_ungroup 也会自动解除DW库的hierarchy结构;可以单独控制不对DW库做ungroup;

    set_app_var compile_ultra_ungroup_dw false

    boundary optimization 边界优化 默认开启

    在未开启ungroup的时候,compile_ultra 还会利用boundary optimization在保持当前hierarchy结构的前提下,对sub_design的内部边界逻辑进行优化;

    当然边界优化也是可控的,通过设置app_var 可以指定design不被边界优化,+option,关闭compile_ultra的自动boundary optimization;

    DesignPartitioning 设计划分;

    将涉及划分成子设计或者块(block) 对于大型的设计来说是十分必要的,driven by following:

    1. 划分单独的功能区

    2. 实现可行的规模和复杂性

    3. 在团队工作中管理项目

    4. 设计的复用;

    设计的划分准则 for DCNXT

    在可用的内存资源和可接受的运行时间的允许下尽可能大的划分block;

    划分sub_design尽可能用寄存器作为输出;

    考虑层次化布局的需要;

    自动的 shift_register 识别

    compile_ultra 在-scan的option下 会自动将电路的移位寄存器进行识别,并直将第一个寄存器替换为扫描链用的寄存器;

    默认是自动打开的,可以通过设置appvar将其关闭;

    adaptive retiming(移动寄存器的位置)

    通过移动寄存器,去减少关键路径的违例;(WNS) worst negative slack; 特别是对于pipeline结构的逻辑电路来说;

    Adaptive retiming的基本原则

    Adaptive retiming 通过移动,分割,合并寄存器来实现WNS的减少;

    end_to_end的功能并不会改变;

    如果综合后的网表文件中存在 R_##的寄存器 就说明此设计被retiming了

    可以指定特定的cell 和设计不被retiming:set_dont_retime <cell name or designs> true

    时序优先的综合(High_Effort timing optimization)

    默认情况下,max_transition max_fanout max_capacitance 这些DRCs拥有更高的优先级,相较于timing来说;如果智能优化解决DRC的违例和时序的违例其中的一个,那么DRC的违例会被解决;

    但是有是有对于综合来说,fix setup timing要比DRC违例要更重要;

    所以可以使用以下命令: set_cost_priority -delay

    在许多工艺库中,那些不伤害delay的情况下没有办法被修复的重大的DRC的违例,像:输入端口存在大量的外部负载,或者在一端标记dont_touch的逻辑,将max_delay的优先级放在DRC之前,允许这些DRC的违例在不伤害delay的情况下去解决;

    比如 DCNXT 可能会在另外一个模块里面重新设置驱动的大小;

    当综合一个小的逻辑块的时候:比如从一个大设计中摘取出的一小部分电路区域;很有可能在这个块的边界其over_constraints 比较高,在他重组进大的设计之前,最好将DRC的fixing放在次要的位置;(postponed)

    时钟网络,默认DRC -disabling;

    默认情况下:DRC的fixing对于那些直接与寄存器的时钟引脚相连的时钟网络来说是关闭的;

    时钟网络从clockpin 被逻辑分离出来的不是DRC无效的,可能会添加buffer 使其满足DRC;

    当然有办法将所有的时钟网络都是DRC检查无效的;

    set_auto_disable_drc_nets -on_clock_network true

    这里有好几种方式可以将时钟网络的DRC检查关闭:

    除了上面的哪种方法之外,做常用的还有:

    set_dont_touch_network [get_ports clk]

    set_ideal_network [get_ports clk]

    默认的路径分组(path group)

    在综合期间每一个时序路径,都会依照路径相关联的时钟放在一个路径组中;

    DC NXT会依次优化每一个路径组;每一个路径组中的关键路径;

    使用report_path_group 可以报告当前的设计中定义的路径分组;

    Problem: 忽略sub-critical path

    默认情况下,优化停止的条件是:

    1. 这个路径组中的所有的路径都满足时序要求

    2. 或者 critical_path没有办法进一步被优化,

    在默认分组的情况下很容易产生的问题就是;

    比critical_path稍微好一点,但也是违例的路径是不会被优化的;

    however: 如果sub_critical_path和critical_path是互相缠绕的,也就是说他们有共享的逻辑电路:很有可能通过提升critical_pathd的timing,就可以解决sub_critical_path的timing问题;

    Problem:忽略Reg-to-reg path

    solution:用户定义的路径组

    用户定义的路径组允许在优化时更多的控制;

    每一个路径组都是独立优化的;

    一组中最坏的违例不会阻止另一组的违例优化;

    创建用户定义的path group

    group_path -name INPUTS -from [all_inputs]

    group_path -name OUTPUTS -to [all_outputs]

    group_path -name COMBO -from [all_inputs] -to [all_outputs]

    打开 Near-critical Path的优化

    group_path -name clk -critical_rang 0.2

    0.2 这个range 不能超过时钟周期的10%

    path_group的优先级 -weight

    report_path_group

    TNS-Driven的placemnet

    set_app_var palcer_tns_driven true

    compile_ultra

    reduce large datdapath delay

    减少大型的数据路径的delay;

    尝试将datapath中改为流水线结构; 用面积换delay;

    一是在RTL代码中自己去插寄存器;

    直接将比较长的公式,拆解成几步去完成;

    此时时钟的频率被运行最慢的流水线级所限制;

    二是工具帮你去插pipeline; register retiming

    在综合之前设置application variable: set_optimize_register true -design Pipeline

    在执行 compile_ultra

    register retiming和adaptive retiming是不太相同的,但可以交替使用;

    register retiming 的目的是提升纯流水线结构设计的时序和面积

    而adaptive retiming目标是减少非pipeline设计的WNS 

    所以两个优化是可以同时执行的,

    所以可以将寄存器(几级流水线,就插几级寄存器)放在要优化的datapath的最前面或者最后见面,用register retiming自己去规划将流水线插在哪.

    它会使每一级流水线的所用的时间都是差不多的;

     

     

     

    展开全文
  • java topo: 开源jtopo框架

    千次阅读 2016-07-20 10:46:01
    jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系、拓扑图形化界面开发工具包。 jTopo关注于数据的图形展示,它是面向开发人员的,需要进行二次开发。
  • 定制powerbi形状地图——geojson编辑后转topojson格式

    千次阅读 热门讨论 2018-12-25 23:25:30
    定制powerbi形状地图——geojson编辑后转topojson格式关于powerbi形状地图设置添加自定义地图什么是geojson 和topojson格式接下来获取带有中国行政边界线的地图代码分析geojson格式用Python写代码编辑geojson ...
  • linux/macOS下的vim界面配置以及一个topoSort求DAG最短路 Apare_xzc 2021.2.3 我在我的腾讯云服务器的...我们可以试一试vim的界面长什么样子: vim topo_sort.cpp 打开之后的vim界面这个样子的(还是黑底白
  • Mardown无需多言,因为纯文本格式,非常适合多人编辑文档,我们在项目中推广Markdown,把Markdown文档放在Svn中,这样完美的解决了文档的持续更新问题,不管多人还是多台机器编辑,都和编辑普通代码没什么区别了,...
  • 我运行之后没有报错但是得不到任何的结果,就像什么都没建立起 ![]...
  • 它处理诸如平移,缩放和简单的渲染优化之类的任务,并利用和topojson-client的某些部分,而不是依赖于整个d3库。 由于react-simple-maps使DOM可以工作,因此它也可以轻松地与其他库一起使用,例如和 。 安装 安装...
  • Storm集群的资源有限的,如果达到资源使用的临界点,会发生什么? 之前参考了不少资料,但都没有解释这个问题,这段时间不少朋友都问道这个问题,下面通过例证说明该现象。首先将之前一些资料做一些罗列: ...
  • 项目管理管什么

    2017-09-01 16:12:47
    一个好的项目管理工具,应该可以大大提供项目团队的工作效率,而不是...我们希望使用Topo项目管理系统,既直观方便,又效率倍升,这我们对项目管理工具的理解。好的项目管理工具可以为项目整个团队服务,也就是...
  • applet 签名步骤

    2011-07-07 13:55:22
    E:\&gt;keytool -genkey -keystore topo....您的名字与姓氏是什么?  [Unknown]: 您的组织单位名称是什么?  [Unknown]: 您的组织名称是什么?  [Unknown]: 您所在的城市或区域名称是什么?  [Un...
  • 地图-源码

    2021-02-23 09:58:58
    什么是TopoJSON? GeoJSON的扩展,可以更有效地存储几何信息。 主要区别如下: 如果要素共享相同的边界,则TopoJSON将消除冗余,仅显示边界一次。 实现arc (共享线段)以压缩几何图形属性和 量化增量编码的...
  • d3 canvas 绘制力导向图

    2020-08-26 16:55:22
    数据量小的时候,使用svg绘制什么问题的,但是一旦点和线的数据量一大,就会造成页面卡顿的情况,因此只能使用canvas又重新绘制了一遍,下面参考了他人写的,进行改进,链接放在最下面了 html <div class=...
  • qemu-kvm平台创建虚拟机 设置topo结构,当cores为1时,虚拟机不能开启超线程 例:sockets:1 cores:1 threads:4 ...1.有大神知道是什么原因吗 2.定位这个问题,应该怎么入手,我没接触过内核代码,有点无从下手
  • 项目管理管什么 一个好的项目管理工具,应该可以大大提供项目团队的工作效率,而不是降低。从这个角度出发,我们精挑细选进行比较...我们希望使用Topo项目管理系统,既直观方便,又效率倍升,这我们对项目管理工具...
  • [ZJOI2012]灾难

    2018-10-20 06:50:16
    首先一看到这道题可能感觉并没有什么思路,也很好联想到topo排序,但也应该很容易就发现topo是过不了的,例如样例。 那么我们可以仔细观察一下样例构建出的图,会发现对于任意个点x,若它所有的食物灭绝了,那么它...
  • 部署CEPH集群

    2018-07-13 14:36:11
    什么是CEPH组件 ceph-topo Ceph的底层RADOS,它的意思“A reliable, autonomous, distributed object storage”。 RADOS由两个组件组成: OSD: Object Storage Device,提供存储资源。Monitor:维护整个Ceph...
  • storm之流式计算

    2020-05-10 17:18:16
    1.Storm是什么,为什么? Apache Storm是一个免费的开源分布式实时计算系统。---可靠,容错,实时,开源免费,可扩展,事务性。 适用场景 实时分析,在线机器学习,连续计算,分布式rpc,etl Topo Spout,bolt,...
  • 1、是什么 根据其官方介绍(翻译) (1)是一个开源JavaScript库,用于创建世界级的3D球体和地图 (2)基于开放格式构建,旨在实现健壮的互操作性 (3)是在apache2.0许可下发布的,它对商业和非商业用途都是...
  • 一直没有搞明白 hmm-gmm 之间通过什么联系起来的,花了些时间查代码,看到最直观联系的就是 gmm-init-mono 工具。 gmm-init-mono 基础类 通过上述看到,主要的配置都topo 文件中, 这里需要将一些常见...
  • 1-什么是VRRP vrrp的意思“虚拟路由冗余协议”,它可以把多台三层设备,例如路由器和三层交换机等,虚拟为一台设备,对外展现一个虚拟的IP。 正常工作的时候,在一个实例中(可以有多个实例),只有一台设备主...
  • Storm提供了几种不同级别的保证消息处理,包括尽力而为,...(消息“完全处理”是什么意思?) 从Spout发射的元组可以触发基于它的数千个元组。例如,考虑流式字数统计拓扑: TopologyBuilder builder = new Topo...
  • 说到建模,大家一定多少都听过些,但是建模到底是什么呢? 1、建模师的主要工作? 在游戏公司里,游戏建模主要分为3D场景建模和3D角色建模。3D场景师的工作是根据原画设定及策划要求制作符合要求的3D场景模型;而...
  • SDNMS SDNMS用于SDN(软件定义的...mn --topo single,3 --mac --switch ovsk --controller=remote 启动我们的Ryu控制器 ryu-manager --verbose my_switch.py 开启CLI python ControllerCLI.py 我们能做什么 详细
  • English | 左拓扑 Le5le-topology一个使用画布和打字稿的图表可视化框架。 开发人员能够构建图表(拓扑,UML),微服务体系结构,SCADA等。 。 打开站点的速度非常慢,因为我的网络速度为1Mb / s。... import { Topo
  • 拓扑排序

    2019-06-09 10:08:16
    什么是拓扑排序呢? 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的...
  • 什么是Mininet2.Mininet命令图谱3.网络构建参数——topo3.1 单一(single)拓扑3.2 线性(linear)拓扑3.3 树形(tree)拓扑3.4 自定义(custom)拓扑4.网络构建参数——switch5.网络构建参数——controller6. ...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

topo是什么