CN103577155B - 基于arinc659协议的指令译码电路的实现方法 - Google Patents

基于arinc659协议的指令译码电路的实现方法 Download PDF

Info

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
Application number
CN201210261487.XA
Other languages
English (en)
Other versions
CN103577155A (zh
Inventor
田泽
刘宁宁
郭亮
许宏杰
杨峰
马宁
张玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Xiangteng Microelectronics Technology Co Ltd
Original Assignee
AVIC No 631 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AVIC No 631 Research Institute filed Critical AVIC No 631 Research Institute
Priority to CN201210261487.XA priority Critical patent/CN103577155B/zh
Publication of CN103577155A publication Critical patent/CN103577155A/zh
Application granted granted Critical
Publication of CN103577155B publication Critical patent/CN103577155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于ARINC659协议的指令译码电路的实现方法,该方法包括:1)对ARINC659协议规定的不同系统参数定义机器码,并将不同系统参数所对应的机器码存放于与其位宽相应的寄存器中;2)对ARINC659协议规定的指令定义对应的指令编码;3)采用通用静态存储器SRAM存放所有指令的机器码;4)采用状态机对所有指令的机器码进行译码;5)将译码后的所有指令的机器码存放于通用同步FIFO中,通用同步FIFO的数据位宽是256位。本发明提供了一种有效解决ARINC659总线上BIU对帧描述语言指令的解析问题、可进行推广完成类似总线自定义指令集的机器码定义、指令译码、译码状态指示等工作的基于ARINC659协议的指令译码电路的实现方法。

Description

基于ARINC659协议的指令译码电路的实现方法
技术领域
本发明属于计算机控制技术领域,涉及一种电路实现方法,尤其涉及一种基于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的空满指示信号用来启动或停止译码。
CN201210261487.XA 2012-07-26 2012-07-26 基于arinc659协议的指令译码电路的实现方法 Active CN103577155B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国电子科技集团公司第三十八研究所 并行数字信号处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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