网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 发展战略论文
  • 国际经济论文
  • 行业经济论文
  • 新经济学论文
  • 中国经济论文
  • 国际贸易论文
  • 地方战略论文
  • 您的位置:写论文网 > 经济学论文 > 地方战略论文 > 【错误检测与纠正研究论文】... 正文 2020-01-08 07:28:55

    【错误检测与纠正研究论文】 纠正自己的错误

    相关热词搜索:

    错误检测与纠正研究论文

    错误检测与纠正研究论文 1检错与纠错原理 首先来看看检错和纠错的基本原理。进行差错控制的基本思想是在信息码 组中以一定规则加入不同方式的冗余码,以便在信息读出的时候依靠多余的监督 码或校验码来发现或自动纠正错误。

    针对误码发生的特点,即错误发生的随机性和小概率性,它几乎总是随机 地影响某个字节中的某一位(bit),因此,如果能够设计自动纠正一位错误,而 检测两位错误的编码方式,就可以大大的提高系统的可靠性。

    现在我们以16位的CPU数据总线为例,假定信息源的位数为16,要构造一 种能够纠正一位错误,检查两位错误的编码方式。根据"纠错定理",需要设计最 小汉明距离≥4的码组。我们可以采用线形分组码,利用线性分组码的概念可以构 造六位监督码,它们由如下线性关系产生:
    其中,d0~d15为16位数据(15为最高位MSB,0为最低位LSB),C0~C5 为产生的六位监督码,表示进行异或运算。

    在数据读出时,我们只需要考察伴随式S=[S0S1S2S3S4S5],其中:
    很容易证明,根据伴随式进行误差诊断,符合表1所列情况。

    当S为其它情况时,至少发生两位错误。

    可以看出,这种编码方式可以满足自动纠正一位错误,而发现两位错误的 要求。下面就进一步讨论如何用电路来实现。

    2EDAC电路的设计 EDAC电路必须配合CPU的读写时序进行工作,不同类型CPU的时序往往 是不一样的。一般来说,总可以分为读周期和写周期。在写周期时,按照上面的 设计逻辑,根据16位数据位生成6位的校验字,这时,数据位是输入,校验位是 输出,并在该写周期中将数据位和校验位都存储到相应的存储器位置中去,这种 情况比较简单。在读周期时,情况复杂些,可以设计成三步完成。第一步,在 CPU读信号来之前,由于存储器地址和片选信号已经有效,可先将数据位和校验位读入,这时,数据位和校验位都是作为输入。第二步,在读信号来时,将数据 位、校验位锁存,同时进行检测,如果无错,则不进行任何处理,直接将数据输 出;
    如果发现二位错,则产生中断;
    如果是一位错,在输出上有所反应,并进入 下一步。第三步,如果是数据位出错,将其自动更正,并将正确的值再回写到相 应的内存地址中,将正确的数据值输出到数据总线;
    如果是校验位出错,可以直 接将正确的数据位输出到数据总线上。这部分功能是EDAC功能的核心,可以用 VHDL语言来实现,以下是设计思路。

    (1)对输入的设计 ①数据位和校验位的输入。

    ②控制端的输入。经过前面的分析,一共有四种状态(写一种状态、读三 种状态),可以设计两个控制端,设为C0、C1。其功能见表2。

    (2)对输出的设计 ①数据位和校验位的输出。其中校验位的输出在读周期和写周期有所不 同:在写周期校验位输出是生成的校验位;
    而读周期就没有必要输出校验位了, 可以设计为输出伴随式S。

    ②错误标记输出。在应用中,可以设计两种错误标记输出,分别记为ERR 和INT。其中ERR输出"1"表示数据位有错误产生,包括可自动纠正的一位错误和 两位或两位以上错误。INT输出"1"则表示发生了两位或以上错误,无法自动纠正, 向CPU申请中断,由CPU进行异常处理。

    在表2中,总结了上面所描述的功能设计。

    表2EDAC模块功能表 控制端存储器周期功能描述数据位校验位错误标记输出C0C1ERRINT00 写周期产生校验位,并输出输入输出0001读周期读入数据位和校验位输入输入 0011读周期锁存数据位和校验位并进行错误检测锁存锁存0/10/110读周期校正错 误并输出诊断结果输出输出伴随式S0/10/1 图1为EDAC部分逻辑等效图。

    由于逻辑关系已经非常明确了,下面讨论采用VHDL语言实现上述EDAC模块的功能。可以有两种方法来实现VHDL编程,即RTL级语言描述和行为级语 言描述。其中RTL级描述的实现难度比较大,需要根据前面设计的逻辑功能,转 换为基本的门来描述;
    有效率高和受逻辑综合软件的影响小等优点,但可读性差, 实现起来比较困难。因此我们采用的是行为级描述,根据四个输入作敏感量,用 一个进程(process)就可以实现。编程思路是:根据控制端C0和C1进行判断, 如果是写周期,直接将输入的数据相应位进行异或后输出;
    如果是读周期,先生 成伴随式S,然后判断S,用CASE语句执行相应的输出。需要强调的是在不需要 输出的时候,要把输出端用高阻封住。VHDL源代码见本刊网络补充版()。

    利用这个EDAC模块再辅以简单的外围电路就可以实现较强的EDAC功能, 可以把这一部分整个电路都集成到FPGA中。

    3仿真结果 仿真环境:MAX+plusII10.0。

    仿真模拟器件:FLEX10K系列,EPF10K10LC84-3。

    信号功能说明见表3。

    表3仿真信号说明 信号名称功能说明CLK模拟CPU时钟,在该仿真中设定时钟频率为 10MHzWRITE模拟CPU发出的写信号READ模拟CPU发出的读信号MEMW由 EDAC电路发出的内存写信号,主要用于数据纠正后的回写HIGH恒为高电平, 提供芯片使能信号INTEDAC电路检测到两个以上错误时发出的中断请求信号 ERREDAC检测到错误时发出的信号,构校验位产生一位错误时不产生该信号 CBIN[5..0]6位校验位输入DBIN[15..016位数据位输入CBOUT[5..0写周期时作校 验输出,读周期时输出为伴随式SDBOUT[15..016位数据位输出 (1)写周期的仿真 图2所示仿真图中,275~500ns仿真了一个写周期,数据输入是AA55,而 校验位输出是00,通过验证是符合上面的设计逻辑的。

    (2)读周期的仿真 在读周期的仿真中,我们模拟了以下四种情况。①正确的读周期:出现在650~975ns,校验位、数据位都是正确值。

    摘要:针对一些恶劣的电磁环境对随机存储器(RAM)电路误码影响的 情况,根据纠错编码的基本原理,提出简单实用的能检查两位错误并自动纠正一 位错误的EDAC算法;
    通过VHDL语言编程设计,由FPGA器件来实现,并给出仿 真结果。

    关键词:错误检测与纠正(EDAC)汉明距离FPGAVHDL

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    【错误检测与纠正研究论文】 纠正自己的错误》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.