CN103577155B - 基于arinc659协议的指令译码电路的实现方法 - Google Patents
基于arinc659协议的指令译码电路的实现方法 Download PDFInfo
- Publication number
- CN103577155B CN103577155B CN201210261487.XA CN201210261487A CN103577155B CN 103577155 B CN103577155 B CN 103577155B CN 201210261487 A CN201210261487 A CN 201210261487A CN 103577155 B CN103577155 B CN 103577155B
- Authority
- CN
- China
- Prior art keywords
- instruction
- decoding
- machine code
- carry out
- arinc659
- 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.)
- Active
Links
Abstract
本发明涉及一种基于ARINC659协议的指令译码电路的实现方法,该方法包括:1)对ARINC659协议规定的不同系统参数定义机器码,并将不同系统参数所对应的机器码存放于与其位宽相应的寄存器中;2)对ARINC659协议规定的指令定义对应的指令编码;3)采用通用静态存储器SRAM存放所有指令的机器码;4)采用状态机对所有指令的机器码进行译码;5)将译码后的所有指令的机器码存放于通用同步FIFO中,通用同步FIFO的数据位宽是256位。本发明提供了一种有效解决ARINC659总线上BIU对帧描述语言指令的解析问题、可进行推广完成类似总线自定义指令集的机器码定义、指令译码、译码状态指示等工作的基于ARINC659协议的指令译码电路的实现方法。
Description
技术领域
本发明属于计算机控制技术领域,涉及一种电路实现方法,尤其涉及一种基于ARINC659协议的指令译码电路的实现方法。
背景技术
ARINC659底板数据总线是满足高可靠性需求的串行容错总线标准。ARINC659协议规定帧描述语言,定义了总线上在线可更换模块之间通信数据的时序。作为BIU的开发商,需要定义帧描述语言的机器码格式,并对机器码进行解析,完成与总线上其他BIU之间的通信。目前没有同类技术。
发明内容
为了解决背景技术中存在的上述技术问题,本发明提供了一种有效解决ARINC659总线上BIU对帧描述语言指令的解析问题、可进行推广完成类似总线自定义指令集的机器码定义、指令译码、译码状态指示等工作的基于ARINC659协议的指令译码电路的实现方法。
本发明的技术解决方案是:本发明提供了一种基于ARINC659协议的指令译码电路的实现方法,其特殊之处在于:所述方法包括以下步骤:
1)对ARINC659协议规定的不同系统参数定义机器码,并将不同系统参数所对应的机器码存放于与其位宽相应的寄存器中;所述每个系统参数占用若干个32位机器码;
2)对ARINC659协议规定的指令定义对应的指令编码,所述每条指令编码占用若干个32位机器码;
3)采用通用静态存储器SRAM存放所有指令的机器码,所述通用静态存储器SRAM的数据位宽是32位;
4)采用状态机对所有指令的机器码进行译码;
5)将译码后的所有指令的机器码存放于通用同步FIFO中;所述通用同步FIFO的数据位宽是256位,所述通用同步FIFO的空满指示信号用来启动或停止译码。
上述步骤4)的具体实现方式是:
4.1)从通用静态存储器SRAM中对应的起始位置和固定地址空间,依次读取系统参数所对应的机器码,并对需要进行校对的系统参数进行校验;若校验成功,则继续读取下一个系统参数;若校验失败,则将地址指针值赋0;当系统参数全部校验结束后进行步骤4.2);
4.2)判断通用同步FIFO的状态,若通用同步FIFO为满时,则地址指针保持不变;若通用同步FIFO不满时,则进行步骤4.3);
4.3)根据指令类型对所有指令的机器码进行译码。
上述步骤4.3)的具体实现方式是:
4.3.1)按指令长度所需要的32位数的个数判断指令类型,对于指令长度所需要的32位数的个数大于1的非跳转指令,对第一个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;对于指令长度所需要的32位数的个数大于1的跳转类指令,保存当前指令的地址,根据指令的机器码的格式译码出目的地址,将目的地址值赋给地址指针;若指令长度所需要的32位数的个数等于1时,则进行步骤4.1);
4.3.2)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于2,则对指令的第二个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若指令长度所需要的32位数的个数等于2时,则进行步骤4.1);
4.3.3)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于3,则对指令的第三个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若需要的32位数的个数等于3时,则进行步骤4.1);
4.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为满时跳转到状态7;FIFO不满时开始译码,判断指令类型,按需要的32位数的个数区分,若需要32位数个数大于1,跳转到状态3;个数等于1时,维持在状态状态2(指令译码状态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;否则跳转到状态2(指令译码状态1);
对指令的第二个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;
状态4(指令译码状态3):判断指令类型,按需要的32位数的个数区分,若需要32位数个数大于3,跳转到状态5;否则跳转到状态2(指令译码状态1);
对指令的第三个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;
状态5(指令译码状态4):对指令的第四个32位数进行译码,将译码的结果存放到FIFO中,地址指针加1;无条件跳转到状态2(指令译码状态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 (1)
1.一种基于ARINC659协议的指令译码电路的实现方法,其特征在于:所述方法包括以下步骤:
1)对ARINC659协议规定的不同系统参数定义机器码,并将不同系统参数所对应的机器码存放于与其位宽相应的寄存器中;所述每个系统参数占用若干个32位机器码;
2)对ARINC659协议规定的指令定义对应的指令编码,所述每条指令编码占用若干个32位机器码;
3)采用通用静态存储器SRAM存放所有指令的机器码,所述通用静态存储器SRAM的数据位宽是32位;
4)采用状态机对所有指令的机器码进行译码:
4.1)从通用静态存储器SRAM中对应的起始位置和固定地址空间,依次读取系统参数所对应的机器码,并对需要进行校对的系统参数进行校验;若校验成功,则继续读取下一个系统参数;若校验失败,则将地址指针值赋0;当系统参数全部校验结束后进行步骤4.2);
4.2)判断通用同步FIFO的状态,若通用同步FIFO为满时,则地址指针保持不变;若通用同步FIFO不满时,则进行步骤4.3);
4.3)根据指令类型对所有指令的机器码进行译码:
4.3.1)按指令长度所需要的32位数的个数判断指令类型,对于指令长度所需要的32位数的个数大于1的非跳转指令,对第一个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;对于指令长度所需要的32位数的个数大于1的跳转类指令,保存当前指令的地址,根据指令的机器码的格式译码出目的地址,将目的地址值赋给地址指针;若指令长度所需要的32位数的个数等于1时,则进行步骤4.1);
4.3.2)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于2,则对指令的第二个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若指令长度所需要的32位数的个数等于2时,则进行步骤4.1);
4.3.3)按指令长度所需要的32位数的个数判断指令类型,若指令长度所需要的32位数的个数大于3,则对指令的第三个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1;若需要的32位数的个数等于3时,则进行步骤4.1);
4.3.4)对指令的第四个32位数进行译码,将译码的结果存放到通用同步FIFO中,地址指针加1
5)将译码后的所有指令的机器码存放于通用同步FIFO中;所述通用同步FIFO的数据位宽是256位,所述通用同步FIFO的空满指示信号用来启动或停止译码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210261487.XA CN103577155B (zh) | 2012-07-26 | 2012-07-26 | 基于arinc659协议的指令译码电路的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210261487.XA CN103577155B (zh) | 2012-07-26 | 2012-07-26 | 基于arinc659协议的指令译码电路的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577155A CN103577155A (zh) | 2014-02-12 |
CN103577155B true CN103577155B (zh) | 2015-09-30 |
Family
ID=50049013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210261487.XA Active CN103577155B (zh) | 2012-07-26 | 2012-07-26 | 基于arinc659协议的指令译码电路的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577155B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885421B (zh) * | 2014-03-26 | 2017-04-05 | 上海航天电子通讯设备研究所 | 一种标准总线控制器 |
CN106325259A (zh) * | 2016-08-17 | 2017-01-11 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种多lru并行安全性测试方法 |
CN108183846A (zh) * | 2017-12-06 | 2018-06-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种arinc659总线节点架构 |
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 CN201210261487.XA patent/CN103577155B/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总线验证平台节点设计与实现;魏婷等;《航空计算技术》;20110715;第41卷(第4期);全文 * |
张喜民等.ARINC 659 容错数据总线测试验证系统研制.《西安电子科技大学学报(自然科学版)》.2011,第38卷(第6期),全文. * |
王旭辉.飞机飞行安全实时监控关键技术研究.《中国博士学位论文全文数据库(工程科技II辑)》.2011,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN103577155A (zh) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101894009B (zh) | 乱序执行的微处理器以及相关执行指令的方法 | |
KR102041743B1 (ko) | Pci 익스프레스 강화 | |
CN111417935B (zh) | 用于分布式缓冲器存储器系统的地址/命令芯片同步的自动数据芯片地址定序器 | |
CN103853650A (zh) | 一种模糊测试的测试用例生成方法及装置 | |
CN102568603A (zh) | 数据传输装置、存储器控制装置和存储器系统 | |
KR101081090B1 (ko) | 명령어 스트림의 효율적인 에뮬레이션을 가능하게 하기 위한 레지스터 기반의 명령어 최적화 | |
CN101310255B (zh) | 用于检测处理系统中的存储器装置的配置的方法和设备 | |
CN109643257A (zh) | 存储器系统中的链路纠错 | |
CN102866971A (zh) | 传输数据的装置、系统及方法 | |
CN101667453A (zh) | 用以存取存储器的方法及系统 | |
CN103577155B (zh) | 基于arinc659协议的指令译码电路的实现方法 | |
CN103577154B (zh) | 基于arinc659协议的指令的译码方法 | |
CN102867158B (zh) | 一种切换内存的方法、装置及具有双系统的终端 | |
CN110262783A (zh) | 一种接口生成方法、装置及终端设备 | |
Brown et al. | Easy parameterized verification of biphase mark and 8N1 protocols | |
CN109086081A (zh) | 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质 | |
US8688608B2 (en) | Verifying correctness of regular expression transformations that use a post-processor | |
US8943255B2 (en) | Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices | |
CN109814816A (zh) | 在can总线上增加打印日志的系统及方法 | |
US10241768B2 (en) | Controlling execution of binary code | |
CN109710187A (zh) | NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质 | |
CN104199786A (zh) | 一种高可靠性断电保护方法 | |
CN107919981A (zh) | 一种多厂商缓存日志的分析方法 | |
EP3647961A1 (en) | Arithmetic processing apparatus and control method of arithmetic processing apparatus | |
CN102141944A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221208 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 |