zoukankan      html  css  js  c++  java
  • R2B fpga flow script

    很土的一个名字,RTL to Bit fpga脚本,做一个事情,输入RTL filelist,吐出一个bit

    本来要做的事情比较繁琐:

    1. 整理rtl filelist和sdc,生成符合SYNPLIFY格式的.prj文件。(准备工作)
    2. 在SYNPLIFY里面点击run,生成edf和synplicity.ucf,在synplicity.ucf里面添加管脚约束信息。(2-5小时)
    3. 在ISE里面读入edf 和ucf,点击-“generate programming files”(2-5小时)
    4. 在IMPACT把bit转成mcs文件。(2分钟)

    过程就是这么个3-4步骤,麻烦就在于不停的要人工参与进去,综合可能要5个小时,过个5小时要去看看综合完了没有,然后让其在ise继续。如果下午5点开始跑流程,综合跑完都估计10点了,只好等第二天早上再来跑ise。缺点有3个

    1. 不停的要参与:鼠标点击,简单处理过程中文件。像我同时负责3-4个fpga就会显得心力憔悴,每天就要不停的查询。
    2. 工作不连贯,如果工作连贯的话可以利用好晚上的时间自动跑起来。
    3. 人工不停的点击,容易把文件给弄错掉。

    做成一个傻瓜的autorun的工具很复杂吗?不就是让这三个工具依次跑起来吧。还是有一点困难滴:

    1. 要熟悉这三个工具(SYNPLIFY,ISE,IMPACT)各自的脚本运行方法。原来的方法叫GUI mode,现在要采用的是batch mode。要熟悉各自工具的batch mode流程,相应的语法。熟悉userguide 和网站的帮助。
    2. 公司的服务器采用的是任务递交的方式,在csh里面直接使用运行命令会一股脑把这些任务递交到Server上。本想要这三个任务依次串行,结果变成了并行。这里采用了文件交互的方法,SYNPLIFY自带stdout.log文件,ise则需要在tcl脚本里面增加一些语句,把log信息打印到par.log里面来交互。在csh里面就可以grep这些log文件,没有特定的log就让csh卡在那儿,这样就把并行任务转换成了串行。
    3. 通用性!单独对某一个project做个流程可能很简单,为了做到通用性,就要做到跟工具进行交互,自己设置的变量可以传给工具。
    4. 其他的就是文件列表预处理,中间文件过渡处理,结果文件打包归类备份,流程开关控制,还有一个功能是在最后给自己发个邮件,省的不停的去查询啦。

    顺便总结了一下流程

    Preliminary( bring it up )
    ->confused option
    ->unexpected option

    optimize
    ->distribute
    ->reuse able
    ->robustness

  • 相关阅读:
    poj 3261 Milk Patterns 后缀数组+二分
    poj 2774 Long Long Message(后缀数组入门题)
    hdu 5719 Arrange
    hdu 5720 Wool
    DROP TABLE 恢复
    MySQL数据库改名的三种方法
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    MySQL常用SQL语句优化
    EXPLAIN 命令详解
    mysql sql语句大全
  • 原文地址:https://www.cnblogs.com/azure_seu/p/2499544.html
Copyright © 2011-2022 走看看