out.tr文件浅析


原文地址:http://blog.sina.com.cn/s/blog_6704f18f01015hkj.html

在ns2中进行了一个ns模拟后会产生一个跟踪文件out.tr。

生成的out.tr文件形式如下:
+ 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0
- 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0
+ 0.108 1 2 cbr 1000 ------- 2 1.0 3.1 1 1
- 0.108 1 2 cbr 1000 ------- 2 1.0 3.1 1 1
r 0.114 1 2 cbr 1000 ------- 2 1.0 3.1 0 0
+ 0.114 2 3 cbr 1000 ------- 2 1.0 3.1 0 0
- 0.114 2 3 cbr 1000 ------- 2 1.0 3.1 0 0
+ 0.116 1 2 cbr 1000 ------- 2 1.0 3.1 2 2
- 0.116 1 2 cbr 1000 ------- 2 1.0 3.1 2 2
r 0.122 1 2 cbr 1000 ------- 2 1.0 3.1 1 1
+ 0.122 2 3 cbr 1000 ------- 2 1.0 3.1 1 1
- 0.122 2 3 cbr 1000 ------- 2 1.0 3.1 1 1
+ 0.124 1 2 cbr 1000 ------- 2 1.0 3.1 3 3
- 0.124 1 2 cbr 1000 ------- 2 1.0 3.1 3 3
r 0.13 1 2 cbr 1000 ------- 2 1.0 3.1 2 2
相对应的12个部分分别为:
event time from_node to_node pkt_type pkt_size flags fid src_addr dst_addr seq_num pkt_id


每一笔记录的开始字段都是封包事件发生的原因:r表示这个封包被某个节点接受,+表示进入队列,-表示离开队列,d表示封包被队列丢弃;
第二个字段表示事件发生的时间;
第三个字段表示事件发生的开始节点:from node;
第四个字段表示事件发生的结束节点:to node;
第五个字段表示封包的类型;
第六个字段表示封包的大小,单位是byte;
第七个字段表示封包的标记标注;
第八个字段表示封包属于哪一个数据流。即在TCL脚本中所定义的类似$udp set fid_ 2;
第九、十两个字段表示封包的来源端和目的端,格式为a.b,a代表节点编号,吧表示端口号;
第十一字段表示封包的序号;第十一个字段表示的是网络层包的顺序号,需要注意的是,对于UDP应用来说是不需要顺序号的,但是对于NS2依然保持这个顺序号是为了方便分析。
第十二字段表示封包的id。
一般进行了ns模拟之后就会产生out.tr,它是你在哪层文件夹进行ns仿真就会在哪产生这个跟踪文件。
在tcl文件中要有如下代码:
set nf1 [open out.tr w]
$ns trace-all $nf1
如果想产生nam的跟踪文件则同样,如下:
set nf2 [open out.nam w]
$ns namtrace-all $nf2
这个out.tr很重要,但是它因为数据太多很不方便分析。于是我们有了nam等分析工具。nam等都是在基于out.tr上得出的分析。
<think>我们正在解决HSPICE仿真中未生成.tr0文件的问题。.tr0文件是HSPICE瞬态仿真输出的波形文件,如果未生成,可能的原因包括仿真设置问题、输出语句错误、文件路径权限问题等。根据引用[1]的内容,在HSPICE仿真中,输出波形文件(如.tr0)通常需要通过输出语句指定。例如,在瞬态分析中,使用`.TRAN`语句进行瞬态分析,然后使用`.PROBE`或`.PRINT`语句指定要输出的信号。可能的原因及解决方法:1.**缺少输出语句**:在HSPICE输入文件.sp文件)中,如果没有使用`.PROBE`或`.PRINT`语句指定输出信号,则不会生成.tr0文件。-解决方法:在输入文件中添加输出语句。例如:```.TRAN1n100n.PROBEV(out);输出节点out的电压```2.**输出语句格式错误**:如果输出语句的语法不正确,可能导致输出文件未生成。-解决方法:检查输出语句的语法,确保正确。例如,`.PROBE`后面跟信号类型(如V,I等)和节点名。3.**仿真未执行瞬态分析**:如果输入文件中没有`.TRAN`语句,则不会进行瞬态分析,也就不会生成.tr0文件。-解决方法:确保输入文件中包含瞬态分析语句(`.TRAN`)。4.**仿真运行失败**:如果仿真过程中出现错误,导致仿真提前终止,则可能不会生成输出文件。-解决方法:检查仿真日志文件.lis或.log),查找错误信息(如ERROR,WARNING),并解决这些错误。5.**输出文件路径问题**:如果输出目录不存在或没有写入权限,可能导致文件无法生成。-解决方法:检查输出目录是否存在,并确保有写入权限。可以尝试将输出文件指定到当前目录(相对路径)或具有写权限的绝对路径。6.**输出文件名冲突或设置问题**:有时,如果多次运行仿真,且输出文件名相同,可能被覆盖,或者设置不正确。-解决方法:在`.OPTIONS`语句中设置`POST=2`(对于二进制输出,通常是.tr0)或`POST=1`(对于ASCII输出)。另外,可以尝试更改输出文件名,避免冲突。7.**HSPICE版本或安装问题**:极少数情况下,可能是软件安装问题。-解决方法:尝试重新安装HSPICE或更新到最新版本。**具体步骤:**1.检查输入文件.sp)中是否包含瞬态分析语句(`.TRAN`)和输出语句(`.PROBE`或`.PRINT`)。2.运行仿真,检查.lis文件中的错误信息。3.确认输出目录的写入权限。4.如果使用图形界面(如HSPUI),检查图形界面中的输出设置。例如,一个简单的反相器瞬态分析输入文件可能如下:```*InverterTransientAnalysis.optionpost=2vddvdd01.8vinin0pulse(01.800.1n0.1n10n20n)m1outinvddvddpmosw=1ul=0.18um2outin00nmosw=0.5ul=0.18u.tran0.01n40n.probev(in)v(out).end```在这个例子中,`.optionpost=2`确保生成二进制输出文件.tr0),`.probe`指定要输出的信号。如果问题仍然存在,请提供更多信息,例如输入文件内容、错误日志等。§§相关问题§§1.如何查看HSPICE仿真生成的.lis文件2.HSPICE中瞬态分析的设置方法?3.HSPICE仿真常见的错误有哪些?如何解决?4.HSPICE中如何输出电流波形?</think>### HSPICE仿真中未生成.tr0文件的原因及解决方法 .tr0文件是HSPICE瞬态仿真输出的二进制波形文件,未生成通常由以下原因导致: #### 常见原因及解决方案 1. **输出语句缺失** - 原因:输入网表缺少`.PROBE`或`.PRINT`输出指令 - 解决:在网表中添加瞬态输出语句,例如: ```spice .TRAN 1n 100n ; 瞬态分析设置 .PROBE V(out) ; 输出节点电压 ``` 2. **POST选项未启用** - 原因:`.OPTIONS`中未设置`POST=2`(二进制输出模式) - 解决:在网表头部添加: ```spice .OPTIONS POST=2 ``` 3. **仿真路径权限问题** - 原因:工作目录无写入权限 - 解决: - 检查磁盘空间(`df -h`) - 更改输出目录:`setenv HSP_OUTPUT_DIR /your/writable/path` 4. **瞬态分析未执行** - 原因:网表缺少`.TRAN`语句 - 解决: - 确认网表包含有效瞬态分析设置 - 检查`.TRAN`参数合理性(步长/总时长) 5. **信号名称错误** - 原因:`.PROBE`指定的节点不存在 - 解决: - 使用`*.ALTER`语句测试不同节点 - 输出全局信号:`.PROBE TRAN ALL` #### 诊断流程: 1. 检查.lis文件尾部是否有`** error **`提示 2. 验证基础网表示例: ```spice * 测试用例 V1 in 0 PULSE(0 1.8 1n 0.1n 0.1n 10n 20n) R1 in out 1k .TRAN 0.1n 50n .PROBE V(out) .END ``` 3. 在HSPUI中确认: - `Simulation > Outputs`是否勾选"Save Transient" - `Files > Output File Format`设置为Binary > 注意:HSPICE 2018+版本默认使用.tr7扩展名,可通过`.OPTIONS POST_VERSION=0`强制生成.tr0文件[^1]。 #### 高级排查: - 内存不足时添加: ```spice .OPTIONS MEASOUT=1 ACCT=1 MEMORY=2000M ``` - 分段调试: 1. 先运行`.OP`直流分析验证网表基础 2. 逐步增加瞬态时长 3. 使用`.SAVE`限制输出节点减少数据量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值