CN104268314B - 基于Easy HDL仿真逻辑分析仪测得波形方法 - Google Patents
基于Easy HDL仿真逻辑分析仪测得波形方法 Download PDFInfo
- Publication number
- CN104268314B CN104268314B CN201410461062.2A CN201410461062A CN104268314B CN 104268314 B CN104268314 B CN 104268314B CN 201410461062 A CN201410461062 A CN 201410461062A CN 104268314 B CN104268314 B CN 104268314B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- easy
- hdl
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明涉及一种基于Easy HDL仿真逻辑分析仪测得波形方法。本发明通过利用逻辑分析软件数据导出功能,将数据按照指定格式导出数据文件,再利用设计程序软件对数据文件进行进一步处理得到最终数据文件,按照Proteus中Easy HDL语法的要求对每个引脚进一步生成Easy HDL数据脚本文件。本发明通过将逻辑分析仪测得波形导出,进一步处理后输入到Proteus软件,进行波形重现,为进一步的仿真测试提供基础。
Description
技术领域
本发明涉及一种用Proteus仿真逻辑分析仪测得硬件电路时序波形方法。
背景技术
逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,利用便于观察的形式显示出数字系统的运行情况,最主要作用在于时序判定和对数字系统进行分析和故障判断。大多数开发人员通过逻辑分析仪等测试工具的协议分析功能可以很轻松的发现错误、调试硬件、加快开发进度,为高速度、高质量完成工程提供保障。由于逻辑分析仪不像示波器那样有许多电压等级,通常只显示两个电压(逻辑1和0),因此设定了参考电压后,逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为High,低于参考电压者为Low,在High与Low之间形成数字波形。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。逻辑分析仪和Proteus是两个完全独立系统,还没专门的接口实现逻辑分析仪数据直接导入Proteus。
发明内容
本发明的目的是利用Proteus仿真逻辑分析仪器测得波形。
为了达到上述目的,本发明的技术方案是提供了一种基于Easy HDL仿真逻辑分析仪测得波形方法,采用Proteus软件的Easy HDL语法,包括以下步骤:
步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带软件将波形数据导出形成数据文件。
步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成Easy HDL脚本,包括以下步骤:
步骤2.1、依据逻辑分析仪实际用于测量的引脚数目N创建N个脚本文件;
步骤2.2、读取数据文件中当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳至步骤2.5,如果当前行不是有效数据跳至步骤2.4,否则执行步骤2.3;
步骤2.3、拆分数据并写脚本文件,包括步骤:
获取当前行数据表示信号没有发生变化的字符A,还抽取当前数据行中逻辑分析仪各个引脚的当前值,按照格式“SLEEP t*DT,OUT=Pinx”分别写入对应的脚本文件,Pinx为逻辑分析仪引脚Pinx的值;
步骤2.4、当前行号+1,跳至步骤2.2执行;
步骤2.5、保存并关闭文件结束将导出数据转换成转换成Easy HDL脚本;
步骤3、在Proteus软件中放置N个发生器Generator,其Digital Types属性设置为Easy HDL,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。
优选地,在所述步骤1之后并所述步骤2之前有:
对导出的数据文件进行文件生成合并文件后,逐行读取文件进行判别,并删除无用信息,形成新的数据文件。
本发明的另一个技术方案是提供了一种基于Proteus的仿真逻辑分析仪测得波形方法,采用Proteus软件的Easy HDL语法,包括以下步骤:
步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带软件将波形数据导出形成数据文件:
步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成EasyHDL脚本,包括以下步骤:
步骤2.1、依据逻辑分析仪的实际用于测量引脚数目N创建N个脚本文件,分别定义为脚本文件Pin1,…脚本文件PinN;
步骤2.2、以读写模式打开脚本文件Pinn,n初始化为1;
步骤2.3、读取数据文件的当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳至步骤2.6,如果当前行不是有效数据跳至步骤2.5,否则执行步骤2.4;
步骤2.4、拆分数据并写脚本文件,包括步骤:
步骤2.4.1、获取当前行数据表示信号没有发生变化的字符A,还抽取当前数据行中逻辑分析仪各个引脚的当前值,将时间t赋值为A;
步骤2.4.2、循环执行临时行号+1,临时行号初始值为1,获取下一行数据,判断当前引脚数据是否与上一行相应的引脚数据值一致,若一致则t=t+当前行数据中表示信号没有发生变化的字符,若不一致,则循环结束,且取当前行号值= 临时行号-1;
步骤2.4.3、按照格式“SLEEP t*DT,OUT=Pinx”写入脚本文件,Pinx为逻辑分析仪引脚Pinn的值;
步骤2.5、当前行号+1,跳至步骤2.2执行;
步骤2.6、n=n+1,判断n是否大于N,若是,则执行步骤2.7,否则,跳至步骤2.2;
步骤2.7、保存并关闭文件,结束将导出数据转换成脚本的流程;
步骤3、在Proteus软件中放置N个发生器Generator,其Digital Types属性设置为Easy HDL,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。
本发明通过利用逻辑分析软件数据导出功能,将数据按照指定格式导出数据文件,再利用设计程序软件对数据文件进行进一步处理得到最终数据文件,按照Proteus中Easy HDL语法的要求对每个引脚进一步生成Easy HDL数据脚本文件。在Proteus模型文件中依据要仿真的波形的通道数放置Easy HDL Generator端子,并导入相应的脚本文件,关闭Easy HDL Generator设置窗口。保存文件,并利用Proteus仿真功能即可在Proteus中输出仿真波形。为利用Proteus对波形文件进行进一步仿真分析处理提供基础。
本发明通过将逻辑分析仪测得波形导出,进一步处理后输入到Proteus软件,进行波形重现,为进一步的仿真测试提供基础。
附图说明
图1为本发明提供方法的流程图;
图2为本发明中数据文件生成脚本文件流程。
具体实施方式
为方便说明实施方法,本发明兹以2个实施例说明本发明提出的方法。
实施例1
本发明提供了一种基于Proteus的仿真逻辑分析仪测得波形方法,其步骤为:
数据导出:利用孕龙科技的逻辑分析仪及相应的软件ZEROPLUS logic Analyzer说明数据导出(本例中采样频率为1MHz)。首先在波形文件中删除无用的波形通道。单击“文件”-》“波形导出”后弹出“波形导出”对话框,设置 参数,导出参数选“否”,显示方向选“垂直”,数据类型选“所有”,数据格式选“数据变化点压缩”,资料格式选“二进制”,设定每个文件输出采样点数(范围为1-600000,本例为方便后续说明设置为50),并设置需要导出的数据范围,设定导出文件名“数据”,单击保存等待导出结束,输出一系列序号连续的文件“数据_1.txt”、“数据_2.txt”...、“数据_10.txt”、...、“数据_99.txt”、“数据_100.txt”等。
文件预处理:(1)合并文件:方法1,编写程序取排序后文件列表,按照文件创建时间以及文件名排序,创建新文件All.txt,按顺序读取排序后每个文件内容,写入到All.txt。方法2,利用文本编辑软件或文件合并工具软件合并,以EmEditor为例(版本13)为例,打开所有输出数据文件,工具->分割(合并)->把几个文档合并成一个文件,按照文件序号排序,设定目标文件文件名为All.txt,按照提示完成合并。(2)删除空行以及非数据行:方法1:利用文本编辑软件利用正则表达式执行高级替换消除非数据行及空行。方法2,利用高级语言编程清除所有空行以及非数据行。
数据文件转换成Easy HDL脚本:设定基础时间间隔DT为采样频率(Cypl)的倒数1/Cypl s(本实例中采样频率1MHz,DT值为0.000001s=1us)。转换流程如下:
S1.依据引脚数目N创建脚本文件,命名分别为“Pin1.txt”、“Pin2.txt”、..、“PinN.txt”,本例中只有两个引脚,故创建“Pin1.txt”、“Pin2.txt”。在新创建脚本文件中写入“Cypl=1000000”、“float DT=1/Cypl”。
S2.读取All.txt当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳至S5,否则执行S3继续下一步处理。
S3.拆分数据并写脚本文件。比如获取“62~66(5) 1 0”,括号前为波形变化起止时间点,括号中数值为信号没有发生变化的时间间隔t,从数据文件中抽取第一个括号中字符换数字为t(本例中为5),抽取右括号后第一个数据为第一引脚数据Pin1(本例为1),抽取剩下另外一个数据Pin2(本例为0)。按照格式“SLEEP t*DT,OUT=Pinx”写入脚本文件(其中Pinx为引脚数据当前值),写Pin1脚本文件当前行为“SLEEP 5*DT”及下一行为OUT=1”,写Pin2脚本文件当前行为“SLEEP 5*DT”及下一行为“OUT=0”:
S4.当前行号+1,跳至S2执行。
S5.保存并关闭文件,结束将导出数据转换成脚本流程。
Proteus模型创建:新建模型文件,增加N个Generator端子(本例为两个),各个端子的名称分别设置为Pin1、Pin2、..、PinN,设置各个Generator属性为Digital Types的Easy HDL,设置每个Generator的名称,并将相应生成的脚本代码复制粘贴到相应的Generator的local script窗口。并分别保存各个Generator和工程文件。
运行仿真,对应Generator引脚将生成逻辑分析仪所测得数字波形。
实施例2
本例中除了脚本生成过程,其它同实例1。
简化脚本长度,在输出数据变化中是以每组引脚中有一个发生变化就输出一组数据,在引脚超过两个以上时候,这样必然导致某几个引脚输出一些数据有一定程度的冗余。
以本实例中的数据文件为例,
PIN2数据变化频繁,PIN1数据很少变化。可以通过在写时候合并冗余行数据,只有在引脚值真正变化时候才输出。第三行开始连续4行没有变化,第7行开始又有四行没变化,因此可以在转换成脚本时合并PIN1的3-6行和7-10行数据。合并方法详述如下。
数据文件转换成Easy HDL脚本:设定基础时间间隔DT为采样频率(Cypl)的倒数1/Cypl s(本实例中采样频率1MHz,DT值为0.0000001s=1us)。转换流程如下:
S1.依据引脚数目N创建脚本文件,命名分别为“Pin1.txt”、“Pin2.txt”、..、“PinN.txt”,本例中只有两个引脚,故创建“Pin1.txt”、“Pin2.txt”。在新创建脚本文件中写入“Cypl=1000000”、“float DT=1/Cypl”。
S2.从n=1(PIN1)以读写模式打开脚本文件,重新以只读方式打开数据文件All.txt。
S3.读取All.txt当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳至S6,否则执行S4继续下一步处理。
S4.拆分数据并写脚本文件。比如获取“32~36(5) 0 1”,括号前为波形变化起止时间点,括号中数值为信号没有发生变化的时间间隔t,从数据文件中抽取第一个括号中字符换数字为t(本例中为5),抽取右括号后当前引脚数据Pinx(本例PIN1为0,PIN2为1)。
取临时行号为当前行号值3。
循环执行临时行号+1,获取下一行判断当前引脚数据是否与上一行Pinx值一致,一致则t=t+括号中数据,否则循环结束,且取当前行号值=行号临时值-1。
最终当前t=5+10+3+5=23,PIN1值为0,当前行号值为6。
按照格式“SLEEPt*DT,OUT=Pinx”写入当前引脚的脚本文件(其中Pinx为引脚数据当前值),写Pinx脚本文件当前行为“SLEEP 23*DT”及下一行为OUT=0”。
S5.当前行号+1,跳至S3执行。
S6.所有引脚脚本转换结束跳至S7,否则引脚号加1跳至S2。
S7.保存并关闭文件,结束将导出数据转换成脚本流程。
Claims (3)
1.一种基于Easy HDL仿真逻辑分析仪测得波形方法,采用Proteus软件的Easy HDL语法,包括以下步骤:
步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带软件将波形数据导出形成数据文件;
步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成Easy HDL脚本,包括以下步骤:
步骤2.1、依据逻辑分析仪的引脚数目N创建N个脚本文件;
步骤2.2、读取数据文件中当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳至步骤2.5,如果当前行不是有效数据跳至步骤2.4,否则执行步骤2.3;
步骤2.3、拆分数据并写脚本文件,包括步骤:
获取当前行数据表示信号没有发生变化的字符A,还抽取当前数据行中逻辑分析仪各个引脚的当前值,按照格式“SLEEP t*DT,OUT=Pinx”写入脚本文件,Pinx为逻辑分析仪引脚Pinx的值;
步骤2.4、当前行号+1,跳至步骤2.2执行;
步骤2.5、保存并关闭文件结束将导出数据转换成转换成Easy HDL脚本;
步骤3、在Proteus软件中放置N个发生器Generator,并设置其Digital Types为EasyHDL,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。
2.如权利要求1所述的一种基于Easy HDL仿真逻辑分析仪测得波形方法,其特征在于,在所述步骤1之后并所述步骤2之前有:
对导出的数据文件进行文件生成合并文件后,逐行读取文件进行判别,并删除无用信息,形成新的数据文件。
3.一种基于Easy HDL仿真逻辑分析仪测得波形方法,采用Proteus软件的Easy HDL语法,包括以下步骤:
步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带软件将波形数据导出形成数据文件;
步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成Easy HDL脚本,包括以下步骤:
步骤2.1、依据逻辑分析仪的引脚数目N创建N个脚本文件,分别定义为脚本文件Pin1,…脚本文件PinN;
步骤2.2、以读写模式打开脚本文件Pinn,n初始化为1;
步骤2.3、读取数据文件的当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳至步骤2.6,否则执行步骤2.4;
步骤2.4、拆分数据并写脚本文件,包括步骤:
步骤2.4.1、获取当前行数据表示信号没有发生变化的字符A,还抽取当前数据行中逻辑分析仪各个引脚的当前值,将时间t赋值为A;
步骤2.4.2、循环执行临时行号+1(临时行号初始值为2.4.1步骤的当前行号值),获取下一行数据,判断当前引脚数据是否与上一行相应的引脚数据值一致,若一致则t=t+当前行数据中表示信号没有发生变化的字符,若不一致,则循环结束,且取当前行号值=临时行号-1;
步骤2.4.3、按照格式“SLEEP t*DT,OUT=Pinx”写入脚本文件,Pinx为逻辑分析仪引脚Pinn的值;
步骤2.5、当前行号+1,跳至步骤2.2执行;
步骤2.6、n=n+1,判断n是否大于N,若是,则执行步骤2.7,否则,跳至步骤2.2;
步骤2.7、保存并关闭文件,结束将导出数据转换成脚本的流程;
步骤3、在Proteus软件中放置N个发生器Generator,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410461062.2A CN104268314B (zh) | 2014-09-11 | 2014-09-11 | 基于Easy HDL仿真逻辑分析仪测得波形方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410461062.2A CN104268314B (zh) | 2014-09-11 | 2014-09-11 | 基于Easy HDL仿真逻辑分析仪测得波形方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104268314A CN104268314A (zh) | 2015-01-07 |
CN104268314B true CN104268314B (zh) | 2017-06-06 |
Family
ID=52159835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410461062.2A Expired - Fee Related CN104268314B (zh) | 2014-09-11 | 2014-09-11 | 基于Easy HDL仿真逻辑分析仪测得波形方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268314B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492239B (zh) * | 2017-09-13 | 2023-11-14 | 合肥海本蓝科技有限公司 | 一种实现仿真波形数据实时分割的装置 |
CN111428429B (zh) * | 2020-04-22 | 2023-10-24 | 苏州复鹄电子科技有限公司 | 转移Cadence系统中电路及版图设计信息的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381524A (en) * | 1991-11-12 | 1995-01-10 | Chronology Corp. | Automated development of timing diagrams for electrical circuits |
US6675310B1 (en) * | 2000-05-04 | 2004-01-06 | Xilinx, Inc. | Combined waveform and data entry apparatus and method for facilitating fast behavorial verification of digital hardware designs |
CN101719170A (zh) * | 2009-11-27 | 2010-06-02 | 深圳国微技术有限公司 | 集成电路的仿真测试方法 |
-
2014
- 2014-09-11 CN CN201410461062.2A patent/CN104268314B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381524A (en) * | 1991-11-12 | 1995-01-10 | Chronology Corp. | Automated development of timing diagrams for electrical circuits |
US5381524B1 (en) * | 1991-11-12 | 1996-10-29 | Chronology Corp | Automated development of timing diagrams for electrical circuits |
US5381524B2 (en) * | 1991-11-12 | 1997-07-08 | Chronology Corp | Automated development of timing diagrams for electrical circuits |
US6675310B1 (en) * | 2000-05-04 | 2004-01-06 | Xilinx, Inc. | Combined waveform and data entry apparatus and method for facilitating fast behavorial verification of digital hardware designs |
CN101719170A (zh) * | 2009-11-27 | 2010-06-02 | 深圳国微技术有限公司 | 集成电路的仿真测试方法 |
Non-Patent Citations (2)
Title |
---|
Proteus 软件的单片机仿真方法;汪宁;《山东轻工业学院学报》;20070330;第21卷(第1期);第24-27页 * |
VerilogHDL在现代EDA中的应用;张霞;《微型电脑应用 》;20010830;第17卷(第8期);第52-53页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104268314A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776339B (zh) | 自动化测试方法及装置 | |
CN106919612B (zh) | 一种上线结构化查询语言脚本的处理方法及装置 | |
US8875077B1 (en) | Fault sensitivity analysis-based cell-aware automated test pattern generation flow | |
CN112506759B (zh) | 伺服系统控制软件的自动化测试方法、装置及存储介质 | |
US20230342283A1 (en) | Waveform based reconstruction for emulation | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
CN108388515A (zh) | 测试数据生成方法、装置、设备以及计算机可读存储介质 | |
CN106649014A (zh) | 一种支持多gpu的计算型服务器的自动测试方法 | |
CN110990053A (zh) | 机器学习方案模板的创建方法、使用方法及装置 | |
CN104199871A (zh) | 一种用于智慧教学的高速化试题导入方法 | |
CN103399848B (zh) | 发动机试验数据标准化特定格式导入处理方法 | |
CN108920382B (zh) | 测试用例生成方法、装置、存储介质及服务器 | |
CN106227654A (zh) | 一种测试平台 | |
CN102508775A (zh) | 一种交互式自动化测试系统 | |
CN108984393A (zh) | 一种单元测试代码自动生成方法及装置 | |
CN105893707B (zh) | 一种soc芯片模块验证和功耗分析方法 | |
CN108874649A (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
CN104268314B (zh) | 基于Easy HDL仿真逻辑分析仪测得波形方法 | |
CN103258021B (zh) | 一种基于行为分析的字符终端特征数据提取方法 | |
Rabin et al. | Code2snapshot: Using code snapshots for learning representations of source code | |
CN107688694A (zh) | 使用多个选通点的单元感知缺陷表征和波形分析 | |
CN108090288A (zh) | 一种通过机器学习获取时序参数的方法 | |
CN103455307B (zh) | 对命令行输出的信息进行处理的方法和装置 | |
CN104198786B (zh) | 利用单片机模型仿真逻辑分析仪测得波形方法 | |
CN107741905B (zh) | 测试用例及其解析模型、执行方法、存储介质和处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170606 Termination date: 20200911 |
|
CF01 | Termination of patent right due to non-payment of annual fee |