matlab定点数仿真,Matlab定点仿真在FPGA验证平台中的应用

在当代雷达和通信系统中,随着设计复杂度的逐步提高以及对数据处理的实时性要求较高的情况下,在FPGA实现时对器件的要求也越来越高,随之而来是成本的提高。因此,在确定一个算法或一个设计在理论可行的前提下,能否控制成本,是顺利在FPGA上实现的重要问题。因此,在FPGA实现前对设计进行定点仿真有两点好处:(1)可以确定方案的可行性和器件的选型。(2)节约大量的调试时间。1定点仿真在使用Matlab对算法进行仿真时,数据是以浮点形式参与运算,这样所得运算结果既能完全保证数据的精度,又能反映真实的理论结果。但在实际的工程实现时,数据是以固定长度的二进制形式参与运算。因此,为了能够准确地反映硬件实现时算法的性能,需要对数据的类型重新定义,使得所表示的数据能够更加符合硬件平台的处理方式,同时完全按照硬件中数据流的流向进行仿真。定点仿真是对算法中的每一个数据进行量化,并用规定字长的二进制序列表示这个数,使其更接近实际值。对浮点数据做定点转换的方法有两种:(1)是使用C语言实现浮点到定点的转换。(2)是使用Matlab中提供的Simulink或Fixed-PointToolbox[1]实现浮点到定点的转换。Simulink建模不需要编写代码,仅需调用库中的模块,根据数据的流向对算法进行建模,并配置相应的参数即可完成定点仿真;Fixed-PointToolbox通过调用定点化函数,对数据重新定义完成定点仿真。2Matlab定点工具箱简介在Matlab里,定点工具箱(Fixed-PointToolbox)是提供定点数据类型和定点算法。在这个工具箱里,可以借助Matlab语法设计定点算法,并且可以和C代码的执行速度相比拟。同时也可以在Simulink里重新用这些算法传输定点数据,方便数据的仿真、实现、分析,并且能够为定点软件或者硬件验证提供测试序列。在Fixed-PointToolbox中进行定点仿真的过程,即让数据在fi对象下进行工作的过程。2.1fi对象用fi函数对数据进行定点处理的过程,实际上就是规定了该数的数据类型,即构造fi对象的过程,同时还71www.dianzikeji.org可以对该对象进行运算,但这个对象包含有多个属性。Data:指明fi对象在不同数制形式下的具体值,如:bin(2进制),data(实数值),dec(10进制),double(双精度),hex(16进制)等。Fimath:规定fi对象如何执行定点运算(截位方式、溢出方式、最大乘积长度等)。当定义fi对象的fimath属性时,首先要定义一个fimath对象,然后再用fimath对象定义fi对象的fimath属性。2.2fimath对象在fi对象中已介绍过其对象,现在仅对其相关主要属性如下:CastBeforeSum:两个操作数在进行加法之前,是否被映射成和的数据类型。意思是当属性设置为“0”时,两个操作数先进行加法运算,然后对和进行截位;当属性设置为“1”时,则这两个操作数先进行截位,然后再执行加法运算。RoundMode:指明数据的截位方式,通常在硬件实现时采取的方法是直接进行截断,一般用floor。OverflowMode:选取溢出的方式。如果存在溢出,则溢出的处理方式通常有两种:(1)saturate方式。若数据上溢出,则用能表示该范围的最大数来代替该数据;若是下溢出,则用能表示该范围的最小数来代替该数据。(2)wrap方式。若无符号数溢出,则进位被舍弃;若有符号数溢出,则进位将取代符号位,数据将以二进制补码的形式表示。2.3fipref对象在fi对象中已介绍过其对象,其相关属性为:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值