基于EasyHDL仿真逻辑分析仪测得波形方法

文档序号:6626645阅读:429来源:国知局
基于Easy HDL仿真逻辑分析仪测得波形方法
【专利摘要】本发明涉及一种基于Easy HDL仿真逻辑分析仪测得波形方法。本发明通过利用逻辑分析软件数据导出功能,将数据按照指定格式导出数据文件,再利用设计程序软件对数据文件进行进一步处理得到最终数据文件,按照Proteus中Easy HDL语法的要求对每个引脚进一步生成Easy HDL数据脚本文件。本发明通过将逻辑分析仪测得波形导出,进一步处理后输入到Proteus软件,进行波形重现,为进一步的仿真测试提供基础。
【专利说明】基于Easy HDL仿真逻辑分析仪测得波形方法

【技术领域】
[OOCM] 本发明涉及一种用Proteus仿真逻辑分析仪测得硬件电路时序波形方法。

【背景技术】
[0002] 逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,利用便于观察 的形式显示出数字系统的运行情况,最主要作用在于时序判定和对数字系统进行分析和故 障判断。大多数开发人员通过逻辑分析仪等测试工具的协议分析功能可以很轻松的发现错 误、调试硬件、加快开发进度,为高速度、高质量完成工程提供保障。由于逻辑分析仪不像 示波器那样有许多电压等级,通常只显示两个电压(逻辑1和0),因此设定了参考电压后, 逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为High,低于参考电压者为 Low,在High与Low之间形成数字波形。
[0003] Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅 具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真 单片机及外围器件的工具。逻辑分析仪和Proteus是两个完全独立系统,还没专门的接口 实现逻辑分析仪数据直接导入Proteus。


【发明内容】

[0004] 本发明的目的是利用Proteus仿真逻辑分析仪器测得波形。
[0005]为了达到上述目的,本发明的技术方案是提供了一种基于Easy HDL仿真逻辑分析 仪测得波形方法,采用Proteus软件的Easy HDL语法,包括以下步骤:
[0006] 步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带 软件将波形数据导出形成数据文件。
[0007] 步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成Easy HDL脚 本,包括以下步骤:
[0008] 步骤2· 1、依据逻辑分析仪实际用于测量的引脚数目N创建N个脚本文件;
[0009]步骤2_ 2、读取数据文件中当前行数据,判断当前行数据是否为文件尾,如果是文 件尾则跳至步骤2. 5,如果当前行不是有效数据跳至步骤2. 4,否则执行步骤2. 3 ;
[0010] 步骤2. 3、拆分数据并写脚本文件,包括步骤: '
[0011]获取当前行数据表示信号没有发生变化的字符A,还抽取当前数据行中逻辑分析 仪各个引脚的当前值,按照格式"SLEEP t*DT,0UT = Pinx"分别写入对应的脚本文件,Pinx 为逻辑分析仪引脚Pinx的值; I
[0012] 步骤2· 4、当前行号+1,跳至步骤2. 2执行;
[0013]步骤2. 5、保存并关闭文件结束将导出数据转换成转换成Easy 脚本;
[0014]步骤3、在Proteus软件中放置N个发生器Generator,其Digital Types属性设 置为Easy HDL,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。 [0015] 优选地,在所述步骤1之后并所述步骤2之前有:
[0016]对导出的数据文件进行文件生成合并文件后,逐行读取文件进行判别,并删除无 用信息,形成新的数据文件。
[0017]本发明的另一个技术方案是提供了一种基于Proteus的仿真逻辑分析仪测得波 形方法,采用Proteus软件的Easy HDL语法,包括以下步骤:
[0018]步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带 软件将波形数据导出形成数据文件:
[0019]步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成EasyHDL脚 本,包括以下步骤:
[0020]步骤2. 1、依据逻辑分析仪的实际用于测量引脚数目N创建N个脚本文件,分别定 义为脚本文件Pinl,…脚本文件PinN;
[0021]步骤2. 2、以读写模式打开脚本文件Pinn,η初始化为i ;
[0022]步骤2. 3、读取数据文件的当前行数据,判断当前行数据是否为文件尾,如果是文 件尾则跳至步骤2. 6,如果当前行不是有效数据跳至步骤2. 5,否则执行步骤2. 4 ;
[0023] 步骤2. 4、拆分数据并写脚本文件,包括步骤: '
[0024]步骤2. 4· 1、获取当前行数据表示信号没有发生变化的字符A,还抽取当前数据行 中逻辑分析仪各个引脚的当前值,将时间t赋值为A ;
[0025]步骤2. 4· 2、循环执行临时行号+1,临时行号初始值为1,获取下一行数据,判断当 前引脚数据是否与上一行相应的引脚数据值一致,若一致则t = t+当前行数据中表示信号 没有发生变化的字符,若不一致,则循环结束,且取当前行号值=临时行号一i ;
[0026] 步骤2· 4· 3、按照格式"SLEEP t*DT,0UT = Pinx"写入脚本文件,Pinx为逻辑分析 仪引脚Pinn的值;
[0027] 步骤2. 5、当前行号+1,跳至步骤2. 2执行;
[0028]步骤2. 6、n = n+1,判断η是否大于N,若是,则执行步骤2. 7,否则,跳至步骤2. 2 ; [0029]步骤2. 7、保存并关闭文件,结束将导出数据转换成脚本的流程;
[0030] 步骤3、在Proteus软件中放置Ν个发生器Generator,其Digital Types属性设 置为Easy HDL,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。 [0031]本发明通过利用逻辑分析软件数据导出功能,将数据按照指定格式导出数据文 件,再利用设计程序软件对数据文件进行进一步处理得到最终数据文件,按照Proteus中 Easy HDL语法的要求对每个引脚进一步生成Easy HDL数据脚本文件。在Proteus模型文 件中依据要仿真的波形的通道数放置Easy HDL Generator端子,并导入相应的脚本文件, 关闭Easy HDL Generator设置窗口。保存文件,并利用pr〇teus仿真功能即可在Proteus 中输出仿真波形。为利用Proteus对波形文件进行进一步仿真分析处理提供基础。
[0032] 本发明通过将逻辑分析仪测得波形导出,进一步处理后输入到Proteus软件,进 行波形重现,为进一步的仿真测试提供基础。

【专利附图】

【附图说明】
[0033] 图1为本发明提供方法的流程图;
[0034] 图2为本发明中数据文件生成脚本文件流程。

【具体实施方式】
[0035] 为方便说明实施方法,本发明兹以2个实施例说明本发明提出的方法。
[0036] 实施例1
[0037] 本发明提供了一种基于Proteus的仿真逻辑分析仪测得波形方法,其步骤为:
[0038] 数据导出:利用孕龙科技的逻辑分析仪及相应的软件ZEROPLUS logic Analyzer 说明数据导出(本例中采样频率为1MHz)。首先在波形文件中删除无用的波形通道。单击 "文件"波形导出"后弹出"波形导出"对话框,设置参数,导出参数选"否",显示方向 选"垂直",数据类型选"所有",数据格式选"数据变化点压缩",资料格式选"二进制",设定 每个文件输出采样点数(范围为1-600000,本例为方便后续说明设置为50),并设置需要导 出的数据范围,设定导出文件名"数据",单击保存等待导出结束,输出一系列序号连续的文 件"数据 _1· txt"、"数据 _2. txt".. ·、"数据 _10. txt"....."数据 _99. txt"、"数据 _100. txt" 等。
[0039] 文件预处理:⑴合并文件:方法1,编写程序取排序后文件列表,按照文件创建 时间以及文件名排序,创建新文件All. txt,按顺序读取排序后每个文件内容,写入到All. txt。方法2,利用文本编辑软件或文件合并工具软件合并,以EmEditor为例(版本13)为 例,打开所有输出数据文件,工具- >分割(合并)- >把几个文档合并成一个文件,按照文 件序号排序,设定目标文件文件名为All.txt,按照提示完成合并。(2)删除空行以及非数 据行:方法1 :利用文本编辑软件利用正则表达式执行高级替换消除非数据行及空行。方法 2,利用高级语言编程清除所有空行以及非数据行。
[0040] 数据文件转换成Easy HDL脚本:设定基础时间间隔DT为采样频率(Cypl)的倒数 1/Cypl s (本实例中采样频率1MHz,DT值为0· 000001s = lus)。转换流程如下:
[0041] S1.依据引脚数目N创建脚本文件,命名分别为"Pinl.txt"、"Pin2.txt"____ "PinN. txt",本例中只有两个引脚,故创建"Pinl. txt"、"Pin2. txt"。在新创建脚本文件中 写入"Cypl = 1000000"、"n〇at DT = 1/Cypl,,。
[0042] S2·读取All. txt当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳 至S5,否则执行S3继续下一步处理。
[0043] S3.拆分数据并写脚本文件。比如获取"62?66(5) 1 0",括号前为波形变化起 止时间点,括号中数值为信号没有发生变化的时间间隔t,从数据文件中抽取第一个括号中 字符换数字为t (本例中为5),抽取右括号后第一个数据为第一引脚数据Pinl (本例为1), 抽取剩下另外一个数据Pin2(本例为0)。按照格式"SLEEP t*DT, OUT = Pinx"写入脚本 文件(其中Pinx为引脚数据当前值),写Pinl脚本文件当前行为"SLEEP 5*DT"及下一行 为OUT = 1",写Pin2脚本文件当前行为"SLEEP 5*DT"及下一行为"OUT = 0" :
[0044] S4.当前行号+1,跳至S2执行。
[0045] S5.保存并关闭文件,结束将导出数据转换成脚本流程。
[0046] Proteus模型创建:新建模型文件,增加 N个Generator端子(本例为两个),各个 端子的名称分别设置为Pinl、Pin2、..、PinN,设置各个Generator属性为Digital Types 的Easy HDL,设置每个Generator的名称,并将相应生成的脚本代码复制粘贴到相应的 Generator的local script窗口。并分别保存各个Generator和工程文件。
[0047] 运行仿真,对应Generator引脚将生成逻辑分析仪所测得数字波形。
[0048] 实施例2
[0049] 本例中除了脚本生成过程,其它同实例u
[0050]间化脚本长度,在細出数据变化中是以每组引脚中有一个发生变化就输屮一组数 据,在超过两个以上时候,这样必然导致某几个引脚输出一些数据有一定m冗余。
[0051] 以本实例中的数据文件为例,
[0052] (M(5) a ! ! :!; 32~36(5) % I. 37^46(10): :〇 η 47Μ_ 〇? 5.54(5) 〇 〇 55-56(2) ! 〇 57-86(30) ι:, 87-91(5) ι 〇 92~^96(5) ι ι 97 领.:、>) 0' ,J:'
[0053] ΡΙΝ2数据变化频繁,ΡΙΝΙ数据很少变化。可以通过在写时候合并冗余行数据,只 有在引脚值真正变化时候才输出。第三行开始连续4行没有变化,第7行开始又有四行没 变化,因此可以在转换成脚本时合并ΡΙΝΙ的 3-6行和7-10行数据。合并方法详述如下。 [0054]数据文件转换成Easy HDL脚本:设定基础时间间隔DT为采样频率(Cypl)的倒数 1/Cypl s (本实例中采样频率1MHz,DT值为〇.〇〇〇〇〇〇is = lus)。转换流程如下:
[0055] S1·依据引脚数目N创建脚本文件,命名分别为"Pinl.txt"、"Pin2. txt"、..、 "PinN· txt",本例中只有两个引脚,故创建"Pini. txt"、"Pin2. txt,,。在新创建脚本文件中 写入"Cypl = 1000000"、"fl〇at DT = 1/Cypl"。
[0056] S2·从η = 1(PIN1)以读写模式打开脚本文件,重新以只读方式打开数据文件 All. txt〇
[0057] S3.读取All. txt当前行数据,判断当前行数据是否为文件尾,如果是文件尾则跳 至S6,否则执行S4继续下一步处理。
[0058] S4.拆分数据并写脚本文件。比如获取"%?36 (5) 0 1",括号前为波形变化起 止时间点,括号中数值为信号没有发生变化的时间间隔t,从数据文件中抽取第一个括号中 字符换数字为t (本例中为5),抽取右括号后当前引脚数据Pinx (本例ΡΙΝΙ为0, PIN2为 1)。
[0059] 取临时行号为当前行号值3。
[0060] 循环执行临时行号+1,获取下一行判断当前引脚数据是否与上一行Pinx值一致, 一致则t = t+括号中数据,否则循环结束,且取当前行号值=行号临时值-1。
[0061] 最终当前t = 5+10+3+5 = 23, ΡΙΝΙ值为0,当前行号值为6。
[0062] 按照格式"SLEEPt*DT,OUT = Pinx"写入当前引脚的脚本文件(其中Pinx为引脚 数据当前值),写Pinx脚本文件当前行为"SLEEP 23*DT"及下一行为OUT = 0"。
[0063] S5.当前行号+1,跳至S3执行。
[0064] S6.所有引脚脚本转换结束跳至S7,否则引脚号加1跳至S2。
[0065] S7.保存并关闭文件,结束将导出数据转换成脚本流程。
【权利要求】
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为Easy HDL,并将相应生成的Easy HDL脚本导入,运行仿真,生成所测得数字波形。
2. 如权利要求1所述的一种基于Easy HDL仿真逻辑分析仪测得波形方法,其特征在 于,在所述步骤1之后并所述步骤2之前有: 对导出的数据文件进行文件生成合并文件后,逐行读取文件进行判别,并删除无用信 息,形成新的数据文件。
3. -种基于Easy HDL仿真逻辑分析仪测得波形方法,采用Proteus软件的Easy HDL 语法,包括以下步骤: 步骤1、利用逻辑分析仪采集硬件电路的波形信号,在电脑端利用逻辑分析仪自带软件 将波形数据导出形成数据文件」 步骤2、设定基础时间间隔DT为采样频率的倒数,将数据文件转换成Easy HDL脚本,包 括以下步骤: 步骤2. 1、依据逻辑分析仪的引脚数目N创建N个脚本文件,分别定义为脚本文件 Pinl,…脚本文件PinN; 步骤2. 2、以读写模式打开脚本文件Pinn,η初始化为1 ; 步骤2. 3、读取数据文件的当前行数据,判断当前行数据是否为文件尾,如果是文件尾 则跳至步骤2. 6,否则执行步骤2. 4 ; 步骤2. 4、拆分数据并写脚本文件,包括步骤: 步骤2.4. 1、获取当前行数据表示信号没有发生变化的字符Α,还抽取当前数据行中逻 辑分析仪各个引脚的当前值,将时间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,若是,则执行步骤2. 7,否则,跳至步骤2. 2 ; 步骤2. 7、保存并关闭文件,结束将导出数据转换成脚本的流程; 步骤3、在Proteus软件中放置Ν个发生器Generator,并将相应生成的Easy HDL脚本 导入,运行仿真,生成所测得数字波形。
【文档编号】G06F17/50GK104268314SQ201410461062
【公开日】2015年1月7日 申请日期:2014年9月11日 优先权日:2014年9月11日
【发明者】陈广锋, 魏鑫, 於文欣, 韩志远 申请人:东华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1