0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用不恢复余数阵列除法和VHDL实现雷达数据接收/显示系统的设计

电子设计 来源:中国工程物理研究院电子 作者: 林华,刘建新 2020-12-26 09:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

根据系统要求,脉冲雷达高度表通过RS-422串行输出高度数据,要求数据接收模块实时接收,并显示雷达高度数据。接收模块接收到的高度数据采用二进制(BIN)码表示,而数码管等显示设备需要BCD码(即二进制编码的十进制码),所以二者之间的转换非常必要。

BCD码与BIN码的相互转换比较传统的方法是采用DAA调节指令来实现,需要逐位调节,比较费时。文献提出利用模除,每次移动半字节,使转换效率大为提高,但也仅是软件算法,无法满足数制转换高效率和实时性的要求。文献提出了采用分段查找EPROM的硬件方法,满足点阵记录实时性的要求,但是该算法需要大容量的EPROM。文献利用BCD码与BIN码的逻辑对应关系直接转换,需要经过多级复杂的变换逻辑,面积和时延较差。

为此,本文采用Verilog HDL硬件描述语言将雷达高度数据接收/显示的核心功能集成到XILINX公司的FPGA(XCS200)中,使得整个设计更加紧凑、小巧、稳定和可靠。利用不恢复余数阵列除法快速准确地实现BIN码到BCD码的转换,仅需要少量的移位和加/减法操作,简化实现数制转换中的求余和整除运算。该单元阵列结构规整,不仅节省了面积,适于超大规模集成电路实现需要,而且易向更高进制扩展,具有很高的转换速度。

1 串行高度数据接收/显示模块简介

数字式自动距离跟踪脉冲雷达高度表串行输出的高度数据,首先通过串行高度数据接收模块将串行数据转换为并行报文数据,再通过报文滤波/数据提取模块,提取出高度数据,并根据输出高度数据的时间间隔标识雷达的工作状态,然后BIN码表示的高度数据通过以不恢复余数阵列除法为基础的BIN/BCD码转换模块,转换为适合七段码显示的90BCD码后送到扫描七段码显示控制器,以驱动四位七段共阳极动态显示数码管,如图1所示。

利用不恢复余数阵列除法和VHDL实现雷达数据接收/显示系统的设计

串行高度数据收发模块采用三线制连接方式,通信方式为异步传输,波特率:9 600,数据位:8位,停止位:1位,奇校验,其字符格式及时钟同步检测与采样过程如图2所示。

2 基于不恢复余数阵列除法的二进制到BCD码的转换

提出的BIN码到BCD码的转换算法采用数据除以位权的方式得到千、百、十、个位BCD码,因此除法器的设计是关键。在数字计算中各种除法都可以用下列递归公式来描述:

(1)

这里_j=0,1,…,n-1为递归下标;D为除数;qj+1为小数点右边第j+1位商;r为基数,r×R(j)为部分被除数;R(j+1)为部分余数;R(0)为被除数(初始部分余数);R(n)为最后余数。

除法过程可通过重复应用递归式1来得到证明。

对j=0

上述迭代推导过程说明了除法过程是由一系列加法、减法或移位所组成,对于基数r=2,q…∈{0,1}。

当部分被除数rR(j)不够除数D减时,商qj+1为0,同时补充被除数的下一位,组成更大的部分被除数;如果够减,则该位商为1,在部分被除数rR(j)中减去除数D,然后补充被除数的下一位,直至被除数的每一位都使用到为止。

在除法进行过程中,可使用专门的数据比较器来比较部分被除数rR(j)是否比除数D大(nonperforming算法),或直接用部分被除数减去除数。方式1浪费了专门的数据比较电路,运算延迟加大,降低了运算速度。方式2,当完成了减法操作后,如果不够减,把除数加回到产生的差,以恢复原来余数(恢复余数法);或把产生的差留给下一次运算时再处理(不恢复余数法)。

2.1 不恢复余数阵列除法器

为简化起见,下文用A表示被除数,D表示除数,R表示余数。在恢复余数法中,如果余数R为负数,即不够减,则需要加上除数D,恢复成原来的余数,即R+D。然后,余数R和被除数A联合左移1位。此时余数为2(R+D)+ai,其中ai为A中的一位,被移入R中。随后,进入下一步运算。即从余数中减去除数D:(2(R+D)+ai)-D,有

(2(R+D)+ai)-D=2R+ai+D (5)

因此,当在某一步中,余数R为负,无需再加上除数D来恢复成原来的余数,只需在下一步中把恢复余数法中的减去除数D改成加上除数D,这种算法称为不恢复余数法。恢复余数除法需要2个步骤来确定1个商位,而不恢复余数法没有这个缺点。

表1以45 10/1010=101101 2/10102作为一个数值计算的例子,详细展示了图3所示的不恢复余数法算法流程图。首先将余数尺和被除数A联合左移一位,如果余数R的符号位S为0,将执行减法操作,否则应该加上除数D,如果余数大于零,则当前商位为‘1’,否则为‘0’,循环这个过程直到被除数A的所有位都完成运算。最后得商:0001002,余数:000101 2。

在除法中所需要的部分余数的左移可以用余数保持固定,而用除数沿对角线右移的等效操作来代替。如图4所示,不恢复余数阵列除法器可以用一个由可控加法/减法(CAS)单元所组成的叠接阵列来实现。不恢复阵列每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致(最上面一行所执行的初始操作通常是减法,因此最上面一行的控制线P固定置成‘1’。当出现不够减时,部分余数相对于被除数来说要改变符号。这时应该产生一个商位‘0’,除数首先沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,即产生商位‘1’,下一行的操作应该是减法。

3 仿真验证

图5的仿真结果说明了数据接收/显示模块的功能特点。串行高度数据接收模块将串行数据转换为并行报文数据,从并行报文中提取出高度数据(1100h=4352,068eh=1678),不恢复余数叠接阵列除法器将多位二进制编码的高度数据转换为千、百、十、个位BCD码送到扫描七段码显示控制器。scanout信号选择四位七段共阳极数码管的某一位,leddata分别对应7个阴极引脚,对应分段字符串“abcdefg”,实现一位一位轮流点亮显示。由于视觉的记忆性,看到的是稳定的多位十进制高度数据显示。从仿真结果图中可见其与前述设计思想完全吻合。

4 结论

采用不恢复余数阵列除法设计的BIN码到BCD码转换器,仅需少量的移位、加/减法等操作,该算法逻辑简单,结构规整,速度高,非常适合实时性要求较高的场合,而且非常容易向其它进制转换扩展。以异步串行数据接收、阵列除法及动态显示等技术为基础的脉冲雷达高度表串行高度数据接收/显示模块作为一个工程的子模块,在某雷达高度表的设计中已经得到应用。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22287

    浏览量

    630317
  • 雷达
    +关注

    关注

    51

    文章

    3264

    浏览量

    122799
  • vhdl
    +关注

    关注

    30

    文章

    820

    浏览量

    131348
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DC-DC电源模块在数字阵列雷达的应用方案

    数字阵列雷达是一种全新体制的雷达,它是由天线单元、数字阵列模块(DAM)、参考时钟、大容量数据传输系统
    的头像 发表于 11-11 14:27 3486次阅读
    DC-DC电源模块在数字<b class='flag-5'>阵列</b><b class='flag-5'>雷达</b>的应用方案

    一个提升蜂鸟E203性能的方法:乘除法器优化

    蜂鸟E203内核内建多周期硬件乘除法器 MDV 模块只进行运算控制,并没有自己的加法器 加法器与其他的ALU子单元复用共享的运算数据通路,硬件实现非常节省面积,是一种相当低功耗的实现
    发表于 10-27 07:16

    e203乘除法模块(e203_exu_alu_muldiv.v)中的back2back和special case信号的含义

    alu加法器数据通路实现乘法,已知基4booth编码的32位有符号数乘法会产生部分积一条乘法的计算需要消耗十七个周期。 除法则采用加减交替法(即不恢复
    发表于 10-24 06:37

    e203乘除法模块的相关控制信号(二)

    首先是关于除法完成后的判断是否需要余数和商的校正的一个周期和完成余数和商的校正的两个周期。 补码加减交替算法算法规则如下: 1.被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数
    发表于 10-24 06:02

    e203除法器算法改进(二)

    e203内部除法操作使用加减交替迭代法进行运算,除几个特殊运算外,正常的除法操作需要33个周期才能输出运算结果,极大程度地影响了系统的性能。我们对e203的除法器进行了新的算法
    发表于 10-22 06:11

    服务器数据恢复—EqualLogic存储上raid5磁盘阵列数据恢复案例

    服务器存储数据恢复环境&故障: 某品牌EqualLogic PS6100存储阵列上有一组由16块硬盘组建的raid5磁盘阵列。磁盘阵列上层
    的头像 发表于 10-21 15:04 167次阅读

    两种常见的除法器工作原理

    式 因此不恢复余数除法采用的公式,其结果与恢复余数后左移一位再减Y是等效的。 原码交替加减法的通用公式为: 其中是第i次计算所得的商,则
    发表于 10-21 13:28

    除法器工作原理介绍

    ],则令C左移一位,最低为0; 3、计数器cnt加1,若小于N则继续进行步骤2,否则结束计算。 4、A中剩余的高N位为余数,C中的为商。 这种计算除法的算法被称为恢复余数
    发表于 10-21 08:32

    数字IC设计中的除法器的工作原理

    ] B[2N-1:N],则令C左移一位,最低为0; 3、计数器cnt加1,若小于N则继续进行步骤2,否则结束计算。 4、A中剩余的高N位为余数,C中的为商。 这种计算除法的算法被称为恢复余数
    发表于 10-21 07:20

    阵列雷达流量监测站-案例分享

    阵列雷达流量监测站是一种利用阵列雷达技术进行非接触式流量监测的设备,广泛应用于水文监测、城市排水、智慧水务、环境监测等领域。它通过发射和
    的头像 发表于 09-11 16:31 1170次阅读
    <b class='flag-5'>阵列</b>式<b class='flag-5'>雷达</b>流量监测站-案例分享

    raid5数据恢复—Raid阵列重建后如何恢复阵列数据

    raid5阵列数据恢复环境&故障: 一台服务器上有一组raid5磁盘阵列,该raid5阵列有5块硬盘。服务器
    的头像 发表于 07-10 12:27 442次阅读

    服务器数据恢复—raid5阵列中硬盘磁头损坏导致掉线的数据恢复案例

    磁盘阵列中2块硬盘的指示灯显示异常,其他硬盘指示灯显示正常。上层应用不可用。
    的头像 发表于 04-12 10:01 620次阅读
    服务器<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—raid5<b class='flag-5'>阵列</b>中硬盘磁头损坏导致掉线的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复—raid5阵列中硬盘坏道导致阵列崩溃的数据恢复案例

    服务器存储数据恢复环境: 某品牌DS3512存储中有一组由6块SAS磁盘组建的raid5阵列。划分一个lun分配给Linux系统服务器,并格式化成ocfs2文件
    的头像 发表于 03-28 13:25 586次阅读
    服务器<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—raid5<b class='flag-5'>阵列</b>中硬盘坏道导致<b class='flag-5'>阵列</b>崩溃的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复—Raid5阵列热备盘上线失败的数据恢复案例

    服务器数据恢复环境: 某公司一台存储上有一组由15块硬盘组建的raid5阵列。raid5阵列上层是一个xfs裸分区,起始位置是0扇区。 服务器故障: raid5
    的头像 发表于 03-26 15:17 523次阅读

    服务器数据恢复—raid5阵列上层win系统+oracle数据数据恢复案例

    一台服务器上的8块硬盘组建了一组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯
    的头像 发表于 01-10 14:40 552次阅读