luckymiaojw的个人空间 https://blog.eetop.cn/383685 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

ISE 批处理

已有 5644 次阅读| 2011-9-20 13:06

                           Xilinx  ISE 批处理

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

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

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

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

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

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

 

其中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 (goto:Place & Route) else (goto:Map Failed)

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

 

:Map Failed

echo Map error!!!

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

exit

 

 

:Place & Route

echo Started : "Place & 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 (goto:Place & 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


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 1

    好友
  • 0

    获赞
  • 2

    评论
  • 238

    访问数
关闭

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

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

GMT+8, 2024-4-27 23:24 , Processed in 0.022025 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部