在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5592|回复: 9

[原创] ISE 批处理

[复制链接]
发表于 2011-9-20 12:50:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x


Xilinx
ISE
批处理

最近在研究modelsim命令行仿真时想,仿真可以用命令行,批处理的方式,那综合呢,布局布线呢?经过查证是可以的。

       下面就介绍ISE通过命令行,批处理的方式实现综合,布局布线等工作。

       一、首先要将在你的环境变量中添加路径,也就是你所用到的应用程序的路径,我现在用的版本是ISE12.4版本,安装目录在D盘,所以建立一个PATH的环境变量,也即PATH=D:\Xilinx\12.4\ISE_DS\ISE\bin\nt\。如下图所示:

    见附件中得环境变量.bmp


*建立环境变量的作用就是可以在任何目录下DOS窗口下直接使用path所制目录下应用程序。

二、建立工程文件夹,工程的目录结构并添加所需文件。

ise下面自带的例子工程watchver为例,经整理后变成如下形式的目录结构:


    见附件中得.jpg文件

其中rtl中放置所有hdl代码,其中包括ipcore下的代码。ngc放置ip的网表文件。prj放置批处理文件run.batstopwatch.xststopwatch.prjstopwatch.utise放置程序运行过程中产生的零时文件,以及最后生成的bit文件。

       首次建立工程时我们可以打开GUI界面程序,建立一个工程,设置好综合等工作需要的参数。然后开始综合,布局布线等工作。然后我们将文件夹下生成的stopwatch.xststopwatch.prjstopwatch.ut文件拷贝到prj目录下。(如果你熟知.xst文件和.ut文件的配置也可以不走这一步,或者这一次之后,所有的工程都可以通过修改这次的一些文件即可)

stopwatch.prj

文件是该工程所包含的所有好多了文件的路径,可以用记事本打开。stopwatch .xst
是综合时需要的参数。

stopwatch.ut
是生成bit文件时所要的参数。

Xlinx下面相关命令的介绍:
XST:综合
例如:xst -intstyle silent -ifn "../prj/%ProjectName%.xst" -ofn %ProjectName%.syr
NGDBuild:
把所有的netlistdesign constraint合并到一起,生成一个ngd文件供map工具使用。NGDBuild的报告文件是后缀名为“.bld”的文件。

注意:在执行这条命令之前,需要写后缀为.xst的配置文件和*.prj的工程文件。

例如:ngdbuild -intstyle silent -dd _ngo -sd ../ngc -nt timestamp -uc ../ucf/%ProjectName%.ucf -p %FpgaType%-%Package%-%Speed% %ProjectName%.ngc %ProjectName%.ngd
MAP:MAP
命令是将NGDBuild命令所生成的ngd文件,映射到具体的FPGA器件里面去。MAP将产生一个NCD文件供PAR使用。MAP的报告文件是后缀名为“.mrp”

例如:map -intstyle silent -p %FpgaType%-%Package%-%Speed% -cm area -ir off -pr off -c 100 -o %ProjectName%_map.ncd %ProjectName%.ngd %ProjectName%.pcf

PAR: PAR的报告文件是后缀名为“.mrp”

例如:par -w -intstyle silent -pl high -rl high -xe n -t 1 %ProjectName%_map.ncd %ProjectName%.ncd %ProjectName%.pcf


TRCE:用来产生timing reportTRCE会分析你的设计然后产生一个后缀名为“.twr”的时序报告。你可以用任何文本工具打开它,也可以用xilinx Timing Analyzer

BitgenBitgen用来产生你所需要的programming file。注意此时需要相应的“*.ut”配置文件,相关的配置文件必须先写好。

其他相关命令和相关的参数可以查看xlinx的文档devref.pdf

三、以上准备工作完成后,就开始写批处理文件run.bat

run.bat文件内容如下:

@echo off

rem 工程文件文件名 stopwatch

set ProjectName=stopwatch

rem 器件类型 xc3s1000

set FpgaType=xc3s1000

rem 封装类型 fg456

set Package=fg456

rem 器件速度 4

set Speed=4

rem 路径转换到ise文件夹下,所有的临时文件都生成在该文件夹下

cd ..\ise

rem 开始综合

echo Started : "Synthesize - XST"

xst -intstyle silent -ifn "../prj/%ProjectName%.xst" -ofn %ProjectName%.syr

if %errorlevel%==0 (goto :Translate) else (goto :XST Failed)

rem 如果综合正确,那么就开始Translate,如果综合出错,那么就跳到综合失败处,然后打开.syr文件看记录

:XST Failed

echo syn error!!!

"../ise/%ProjectName%.syr"

exit

rem Translate

:Translate

echo Started : "Translate"

ngdbuild -intstyle silent -dd _ngo -sd ../ngc -nt timestamp -uc ../ucf/%ProjectName%.ucf -p %FpgaType%-%Package%-%Speed% %ProjectName%.ngc %ProjectName%.ngd

if %errorlevel%==0 (goto:Map) else (goto:Translate Failed)

rem 如果Translate正确,那么就开始Map。如果Translate出错,那么就跳到Map失败处,然后打开.bld文件看记录

:Translate Failed

echo Translate error!!!

"../ise/%ProjectName%.bld"

exit

rem Map

:Map

echo Started : "Map"

map -intstyle silent -p %FpgaType%-%Package%-%Speed% -cm area -ir off -pr off -c 100 -o %ProjectName%_map.ncd %ProjectName%.ngd %ProjectName%.pcf

if %errorlevel%==0 (gotolace & Route) else (goto:Map Failed)

rem 如果Map正确,那么就开始Place & Route。如果Map出错,那么就跳到Map失败处,然后打开.mrp文件看记录

:Map Failed

echo Map error!!!

"../ise/%ProjectName%.mrp"

exit

lace & Route

echo Started : "lace & Route"

echo ...

par -w -intstyle silent -pl high -rl high -xe n -t 1 %ProjectName%_map.ncd %ProjectName%.ncd %ProjectName%.pcf

if %errorlevel%==0 (goto:Trce) else (gotolace & Route Failed)

rem 如果Place & Route正确,那么看静态时序分析,如果Place & Route出错,那么就跳到Place & Route失败处,然后打开.par文件看记录

:Place & Route Failed

echo Place & Route error!!!

"../ise/%ProjectName%.par"

exit

rem 静态时序分析

:Trce

echo Started : "Generate Post-Place & Route Static Timing"

trce -intstyle silent -v 3 -s 4 -n 3 -fastpaths -xml %ProjectName%.twx %ProjectName%.ncd -o %ProjectName%.twr %ProjectName%.pcf

if %errorlevel%==0 (goto:Generate Programming File) else (goto:Trce Failed)

rem 如果Trce出错,那么就跳到综合失败处,然后打开.par文件看记录

:Trce Failed

echo Trce error!!!

"../ise/%ProjectName%.twr"

exit

rem pause

:Generate Programming File

"../ise/%ProjectName%.twr"

echo go on or exit

pause

rem 生成bit文件

echo Started : "Generate Programming File"

echo ...

bitgen -intstyle silent -f "../prj/%ProjectName%.ut" %ProjectName%.ncd

echo errorlevel=%errorlevel%

echo done!

rem pause

rem bit文件拷贝到bit文件夹下

copy *.bit ..\bit\*.bit

exit

示例文件见附件


watchver.rar

5.46 MB, 下载次数: 136 , 下载积分: 资产 -3 信元, 下载支出 3 信元

发表于 2011-9-21 00:41:15 | 显示全部楼层
你自己写的吗?这么好
 楼主| 发表于 2011-9-22 08:03:36 | 显示全部楼层
回复 2# tingtingma0109


    是自己写的,只是研究了下这种用法
发表于 2012-12-5 20:46:53 | 显示全部楼层
好手段~~~~~~~~~~~~~~~~~
发表于 2013-4-12 18:31:01 | 显示全部楼层
看下 顶起
发表于 2013-9-12 11:01:03 | 显示全部楼层
mark,感谢分享!
发表于 2015-12-1 13:26:10 | 显示全部楼层
谢谢分享
发表于 2016-3-8 09:02:09 | 显示全部楼层
回复 1# luckymiaojw


   目前正在研究这个,谢谢楼主
发表于 2017-9-13 11:30:28 | 显示全部楼层
先顶,后学习
发表于 2024-4-5 14:16:59 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 12:33 , Processed in 0.034942 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表