Amiya · 2021年08月20日

System Generator从入门到放弃(七)-不同溢出与量化方式的对比

文章目录

  • System Generator从入门到放弃(七)-不同溢出与量化方式的对比
    1、简介
    2、溢出(Overflow)方式对比
    3、量化(Quantization)方式对比
System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用。或者直接生成比特流下载文件。能够加快DSP系统的开发进度。

参考:学会System Generator(14)不同溢出与量化方式的对比

1、简介

  在介绍Gateway In block时谈到了System Generator中的数据类型,及不同的量化和溢出方式。本文将以两个简单的设计实例,更直观地说明不同的量化和溢出方式有什么区别。

2、溢出(Overflow)方式对比

  从Simulink向System Generator的数据转换过程中可能会出现溢出(Simulink中的值超出了所设置数据格式能够表示的范围),Overflow可以设置为不同的处理方式:

  • Wrap:舍弃掉需要表示的值的高位。
  • Saturate:溢出的数转换为(所设置的数据格式能表达的)最大值或最小值。Flag as
  • error:溢出时Simulink会报错(这个选项只在Simulink仿真时有效,在导出到FPGA时仍当作wrap处理)。

  在Simulink中添加block按下图连接:
aijishu_lh1.jpg
  Gateway In设置为Fix\_4\_0数据格式。
aijishu_lh2.png

PS:数据格式的显示,勾选下图位置设置:
aijishu_lh3.jpg

  该设计使用AddSub这个block计算6+6
aijishu_lh4.jpg
  不溢出时的运算结果应该用5Bits表示(含符号位),这里将AddSub的输出结果故意设置为Fix\_4\_0,观察溢出结果。设置如下图,修改AddSub的不同overflow方式:
aijishu_lh5.png

设置为Wrap

  结果显示为-4。
aijishu_lh6.png

  这是因为6+6=0110+0110=01100,最高位为符号位,正确结果为12,而溢出后,Wrap方式会直接舍弃掉溢出的最高位(即符号位0),结果变为了1100,这个补码值转换为原码后就是-4(1100–>1011(除符号位取反)–>1100(加1))。

设置为Saturate

  结果显示为7。

aijishu_lhb.png

  这是因为带符号数4Bits能表达的最大范围便是7,当发生溢出时,输出结果会饱和在能表示的最大值。

设置为Flag as error

  运行时Simulink会直接提示错误“Overflow detected”:
aijishu_lh8.jpg

3、量化(Quantization)方式对比

  用有限位宽表示Simulink中的数据类型,必然会产生量化误差。在Quantization中可以选择数据的量化方式:

  • Truncate:直接舍弃不需要的低位。
  • Round(unbiased:+/-Inf):以四舍五入的方式量化。

  在Simulink中添加block按下图连接:
aijishu_lh9.png

  Constant输出常数1.75;Gateway In数据格式设置为Fix\_4\_1,更改其量化方式:

设置为Round(unbiased: +/-Inf)
aijishu_lh10.png

  结果显示为2。

aijishu_lh11.png

  Round采用的是类似于四舍五入的方式,当处于中间值时会量化到更大的那一个值。这里1.75表示为二进制小数位为“11”,当量化为Fix\_4\_1格式时需要舍弃掉一位小数位。Fix\_4\_1与1.75最接近的两个值是“0011”(1.5)和“0100”(2.0)。1.75处于中间值,会量化为更大的2。

设置为Truncate
aijishu_lh12.png

  结果显示为1.5。
aijishu_lh13.png
  这是因为Truncate会直接舍弃低位,1.75的第二个小数位无法表示,直接舍弃,量化到Fix\_4\_1后变成“0011”表示1.5。

作者:比特波特
原文链接:https://mp.weixin.qq.com/s/kDMRzvgs-bFdhccmt3Fidw
微信公众号:
hack电子.jpg
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19637
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息