CN103577154A - 基于arinc659协议的指令的译码方法 - Google Patents
基于arinc659协议的指令的译码方法 Download PDFInfo
- Publication number
- CN103577154A CN103577154A CN201210261486.5A CN201210261486A CN103577154A CN 103577154 A CN103577154 A CN 103577154A CN 201210261486 A CN201210261486 A CN 201210261486A CN 103577154 A CN103577154 A CN 103577154A
- Authority
- CN
- China
- Prior art keywords
- instruction
- decoding
- places
- needed
- address pointer
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
本发明涉及一种基于ARINC659协议的指令的译码方法,该方法包括:1)从通用静态存储器SRAM中对应的起始位置和固定地址空间,依次读取系统参数所对应的机器码,并对需要进行校对的系统参数进行校验;若校验成功,则继续读取下一个系统参数;若校验失败,则将地址指针值赋0;当系统参数全部校验结束后进行步骤2);2)判断通用同步FIFO的状态,若通用同步FIFO为满时,则地址指针保持不变;若通用同步FIFO不满时,则进行步骤3);3)根据指令类型对所有指令的机器码进行译码。本发明提供了一种有效解决ARINC659总线上BIU对帧描述语言指令的解析问题、可进行推广完成类似总线自定义指令集的机器码定义、指令译码、译码状态指示等工作的基于ARINC659协议的指令的译码方法。
Description
技术领域
本发明属于计算机控制技术领域,涉及一种译码方法,尤其涉及一种基于ARINC659协议的指令的译码方法。
背景技术
ARINC659底板数据总线是满足高可靠性需求的串行容错总线标准。ARINC659协议规定帧描述语言,定义了总线上在线可更换模块之间通信数据的时序。作为BIU的开发商,需要定义帧描述语言的机器码格式,并对机器码进行解析,完成与总线上其他BIU之间的通信。目前没有同类技术。
发明内容
为了解决背景技术中存在的上述技术问题,本发明提供了一种有效解决ARINC659总线上BIU对帧描述语言指令的解析问题、可进行推广完成类似总线自定义指令集的机器码定义、指令译码、译码状态指示等工作的基于ARINC659协议的指令的译码方法。
本发明的技术解决方案是:本发明提供了一种基于ARINC659协议的指令的译码方法,其特殊之处在于:所述方法包括以下步骤:
1)从通用静态存储器SRAM中对应的起始位置和固定地址空间,依次读取系统参数所对应的机器码,并对需要进行校对的系统参数进行校验;若校验成功,则继续读取下一个系统参数;若校验失败,则将地址指针值赋0;当系统参数全部校验结束后进行步骤2);
2)判断通用同步FIFO的状态,若通用同步FIFO为满时,则地址指针保持不变;若通用同步FIFO不满时,则进行步骤3);
3)根据指令类型对所有指令的机器码进行译码。
上述步骤3)的具体实现方式是:
3.1)按指令长度所需要的32位数的个数判断指令类型,对于指令长度所需要的32位数的个数大于1的非跳转指令,对第一个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;对于指令长度所需要的32位数的个数大于1的跳转类指令,保存当前指令的地址,根据指令的机器码的格式译码出目的地址,将目的地址值赋给地址指针;若指令长度所需要的32位数的个数等于1时,则进行步骤1);
3.2)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于2,则对指令的第二个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若指令长度所需要的32位数的个数等于2时,则进行步骤1);
3.3)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于3,则对指令的第三个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若需要的32位数的个数等于3时,则进行步骤1);
3.4)对指令的第四个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1。
本发明的优点是:
本发明提供了一种基于ARINC659协议的指令的译码方法,该方法实现了ARINC659协议规定的帧描述语言指令译码功能;根据该电路设计,可进行推广完成类似总线自定义指令集的机器码定义、指令译码、译码状态指示工作。
附图说明
图1是本发明所提供的解析方法中所采用的状态机流程示意图。
具体实施方式
本发明提供了一种基于ARINC659协议的指令的译码方法,该方法包括以下步骤:
1)对ARINC659协议规定的不同系统参数定义机器码,每条系统参数占用若干个32位。以参数GAP为例,机器码格式为:
2)采用数据位宽为32位的通用静态存储器SRAM存放所有指令的机器码;
3)对ARINC659协议规定的指令定义一一对应的指令编码,定义每条指令的机器码格式,每条指令占用若干个32位(最大需要4个32位)。
以FREE命令为例,指令编码为4’b0000,机器码格式为:
4)将SRAM地址空间分为16部分,最大可以存放16个机架的命令表,不同机架的命令表对应不同的起始地址;为命令表内部不同的参数分配固定的地址空间;
5)定义适当位宽的寄存器用来存放译码后的系统参数;定义数据位宽为256位的通用同步FIFO存放译码后的指令(采用位拼接),FIFO的空满指示信号用来启动或停止译码;定义适当位宽的寄存器作为待译码指令的地址指针;
6)指令译码功能采用状态机实现,状态机有7个状态,各状态的操作及跳转条件如下所示:
状态1(参数译码状态):根据当前的机架号从SRAM中对应的起始位置和固定地址空间,依次读取系统参数的机器码,并对需要进行校对的参数进行校验,检验成功则继续读取下一个系统参数,校验失败跳转到状态6,系统参数译码结束后跳转到状态2;
按照机器码的定义格式对相应寄存器信号赋值,以硬件描述语言verilog为例,参数译码的实现为:
reg[3:0]gap;
gap<=sram_data[3:0];
状态2(指令译码状态1):判断FIFO的状态,FIFO为满时跳转到状态8;FIFO不满时开始译码,判断指令类型,按需要的32位数的个数区分,若需要32位数个数大于1,跳转到状态3;个数等于1时,维持在状态1;
对于个数大于1的非跳转指令,对第一个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;
对于跳转类指令,保存当前指令的地址,根据指令机器码的格式译码出目的地址,将目的地址值赋给地址指针;
以硬件描述语言verilog为例,FREE命令译码实现为:
if(sram_data==4’b0000)
fifo_data[23:0]<=sram_data[31:8];
ins_addr<=sram_addr+1;
状态3(指令译码状态2):判断指令类型,按需要的32位数的个数区分,若需要32位数个数大于2,跳转到状态4;否则跳转到状态1;
对指令的第二个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;
状态4(指令译码状态3):判断指令类型,按需要的32位数的个数区分,若需要32位数个数大于3,跳转到状态5;否则跳转到状态1;
对指令的第三个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;
状态5(指令译码状态4):对指令的第四个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;无条件跳转到状态1;
状态6(译码失败状态):地址指针值赋0,无条件维持在状态6;
状态7(译码FIFO满状态):判断FIFO的状态,FIFO不满时跳转到状态2,否则维持在状态7;地址指针保持不变;
定义2位译码状态指示信号,状态1下给该指示信号赋值为2’b00,表示正在参数译码;状态2~状态5下给该指示信号赋值为2’b11,表示正在指令译码;状态6下给该信号赋值为2’b01,表示译码失败。
基于ARINC659协议的微控制器电路集成在HK659型ARINC659总线协议处理芯片中,目前该芯片已投片成功并经过了大量的应用验证。
Claims (2)
1.一种基于ARINC659协议的指令的译码方法,其特征在于:所述方法包括以下步骤:
1)从通用静态存储器SRAM中对应的起始位置和固定地址空间,依次读取系统参数所对应的机器码,并对需要进行校对的系统参数进行校验;若校验成功,则继续读取下一个系统参数;若校验失败,则将地址指针值赋0;当系统参数全部校验结束后进行步骤2);
2)判断通用同步FIFO的状态,若通用同步FIFO为满时,则地址指针保持不变;若通用同步FIFO不满时,则进行步骤3);
3)根据指令类型对所有指令的机器码进行译码。
2.根据权利要求1所述的基于ARINC659协议的指令的译码方法,其特征在于:所述步骤3)的具体实现方式是:
3.1)按指令长度所需要的32位数的个数判断指令类型,对于指令长度所需要的32位数的个数大于1的非跳转指令,对第一个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;对于指令长度所需要的32位数的个数大于1的跳转类指令,保存当前指令的地址,根据指令的机器码的格式译码出目的地址,将目的地址值赋给地址指针;若指令长度所需要的32位数的个数等于1时,则进行步骤1);
3.2)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于2,则对指令的第二个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若指令长度所需要的32位数的个数等于2时,则进行步骤1);
3.3)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于3,则对指令的第三个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若需要的32位数的个数等于3时,则进行步骤1);
3.4)对指令的第四个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210261486.5A CN103577154B (zh) | 2012-07-26 | 2012-07-26 | 基于arinc659协议的指令的译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210261486.5A CN103577154B (zh) | 2012-07-26 | 2012-07-26 | 基于arinc659协议的指令的译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577154A true CN103577154A (zh) | 2014-02-12 |
CN103577154B CN103577154B (zh) | 2015-09-30 |
Family
ID=50049012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210261486.5A Active CN103577154B (zh) | 2012-07-26 | 2012-07-26 | 基于arinc659协议的指令的译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577154B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656961A (zh) * | 2016-09-29 | 2017-05-10 | 海航航空技术有限公司 | 基于arinc767规范的飞行数据译码分析方法 |
CN109104386A (zh) * | 2018-09-04 | 2018-12-28 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种大数据量通信的分时传送方法 |
CN112181799A (zh) * | 2019-07-05 | 2021-01-05 | 北京新能源汽车股份有限公司 | 一种软件配置参数的测试方法、装置及汽车 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1230722A (zh) * | 1989-05-17 | 1999-10-06 | 国际商业机器公司 | 使cpu与和外面的数据处理装置交互作用的硬件隔离的方法和装置 |
CN101931580A (zh) * | 2009-12-22 | 2010-12-29 | 中国航空工业集团公司第六三一研究所 | Arinc 659背板数据总线接口芯片片上系统 |
CN101957743A (zh) * | 2010-10-12 | 2011-01-26 | 中国电子科技集团公司第三十八研究所 | 并行数字信号处理器 |
-
2012
- 2012-07-26 CN CN201210261486.5A patent/CN103577154B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1230722A (zh) * | 1989-05-17 | 1999-10-06 | 国际商业机器公司 | 使cpu与和外面的数据处理装置交互作用的硬件隔离的方法和装置 |
CN101931580A (zh) * | 2009-12-22 | 2010-12-29 | 中国航空工业集团公司第六三一研究所 | Arinc 659背板数据总线接口芯片片上系统 |
CN101957743A (zh) * | 2010-10-12 | 2011-01-26 | 中国电子科技集团公司第三十八研究所 | 并行数字信号处理器 |
Non-Patent Citations (3)
Title |
---|
张喜民等: "ARINC 659 容错数据总线测试验证系统研制", 《西安电子科技大学学报(自然科学版)》, vol. 38, no. 6, 24 May 2011 (2011-05-24) * |
王旭辉: "飞机飞行安全实时监控关键技术研究", 《中国博士学位论文全文数据库(工程科技II辑)》, 15 April 2011 (2011-04-15) * |
魏婷等: "ARINC 659总线验证平台节点设计与实现", 《航空计算技术》, vol. 41, no. 4, 15 July 2011 (2011-07-15) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656961A (zh) * | 2016-09-29 | 2017-05-10 | 海航航空技术有限公司 | 基于arinc767规范的飞行数据译码分析方法 |
CN106656961B (zh) * | 2016-09-29 | 2019-08-13 | 海航航空技术股份有限公司 | 基于arinc767规范的飞行数据译码分析方法 |
CN109104386A (zh) * | 2018-09-04 | 2018-12-28 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种大数据量通信的分时传送方法 |
CN109104386B (zh) * | 2018-09-04 | 2021-02-19 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种大数据量通信的分时传送方法 |
CN112181799A (zh) * | 2019-07-05 | 2021-01-05 | 北京新能源汽车股份有限公司 | 一种软件配置参数的测试方法、装置及汽车 |
Also Published As
Publication number | Publication date |
---|---|
CN103577154B (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW563029B (en) | Flexible interrupt controller that includes an interrupt force register | |
RU2645288C2 (ru) | Усовершенствование интерфейса pci express | |
US7877647B2 (en) | Correcting a target address in parallel with determining whether the target address was received in error | |
CN101416163B (zh) | 通过选择重新执行来检测瞬态错误 | |
US8037390B2 (en) | Memory system and command handling method | |
CN111417935B (zh) | 用于分布式缓冲器存储器系统的地址/命令芯片同步的自动数据芯片地址定序器 | |
CN102568603A (zh) | 数据传输装置、存储器控制装置和存储器系统 | |
CN101310255B (zh) | 用于检测处理系统中的存储器装置的配置的方法和设备 | |
US6212625B1 (en) | General purpose dynamically programmable state engine for executing finite state machines | |
US20070174705A1 (en) | Post (power on self test) debug system and method | |
CN103853650A (zh) | 一种模糊测试的测试用例生成方法及装置 | |
CN113900852A (zh) | 表征和裕度化用于互连的多电压信号编码 | |
CN101377749B (zh) | 存储器数据校验方法、装置、可编程逻辑器件及系统 | |
EP2891891B1 (en) | A method, apparatus and system for performing voltage margining | |
CN113986624A (zh) | 通过错误注入和测量进行互连的系统内验证 | |
CN110286853A (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN113779912B (zh) | 一种芯片验证系统、方法、装置、电子设备及存储介质 | |
CN103577154A (zh) | 基于arinc659协议的指令的译码方法 | |
CN103577155B (zh) | 基于arinc659协议的指令译码电路的实现方法 | |
US20050160203A1 (en) | Method to maintain order between multiple queues with different ordering requirements in a high frequency system | |
US10642684B1 (en) | Memory command interleaving | |
CN114817114A (zh) | 一种mipi接口、及其控制方法、装置及介质 | |
CN101727312A (zh) | 一种支持自动纠错功能的返回地址栈实现方法 | |
US20160179611A1 (en) | Low overhead error checking and correction apparatus and method | |
CN100432926C (zh) | 数据处理系统中处理交易的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221214 Address after: Room S303, Innovation Building, No. 25, Gaoxin 1st Road, Xi'an, Shaanxi 710075 Patentee after: XI'AN XIANGTENG MICROELECTRONICS TECHNOLOGY Co.,Ltd. Address before: 710068 No. 156 Taibai North Road, Shaanxi, Xi'an Patentee before: 631ST Research Institute OF AVIC |
|
TR01 | Transfer of patent right |