前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA学习altera 系列 第二十五篇 赋值时的位宽问题

FPGA学习altera 系列 第二十五篇 赋值时的位宽问题

作者头像
FPGA技术江湖
发布2020-12-29 17:48:08
5170
发布2020-12-29 17:48:08
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来“FPGA学习系列 altera"系列,持续更新。此学习心得是本人之前所写,所用设计软件为Quartus II 13.1,现Quartus II 新版本已更新到19+,以下仅供初学者学习参考。后续会更新其他系列,敬请关注。话不多说,上货。

在进行FPGA设计时,我们经常会遇到这样的一条警告:

这句话的意思是:在width_problem.v的第十四行出现了警告(缩短一个32位的值去匹配一个4位的结果)。我们去查看第十四行:

由于po_count为4位的,很容易理解“去匹配一个4位的结果”。但是“缩短一个32位的值”这句话该怎么理解呢?在上述的赋值中,有‘po_count’和‘1’,po_count为4位的,那么32位的只能是没有表明位宽的‘1’了(当不表明位宽的时候,软件默认位宽)。

以上只是其中的一种情况,那么下面我们分析一下各种情况:假设AA的位宽为X,BB的位宽为Y(X>Y)。

1. AA <= BB

赋值过程为:赋值时,BB会自动在前面加上几个‘0’,使位宽和AA的位宽相等,然后进行赋值。

2. BB <= AA

赋值过程为:赋值时,AA自动截取后面的Y位赋值给BB。

在所有的赋值过程中,赋值号右侧的所有数据都会在最前面加‘0’,保证位宽与赋值号左侧和右侧位宽最大的数据的位宽保持一致,然后进行计算,把结果赋值给目标。

经过上述的分析,我们将上述语句改为:

po_count <= po_count + 1'b1;

警告就会消失,具体的过程请读者自行分析。

如果设计要求与笔者的设计不同,请自行更改设计,以保证设计的正确性。如果还是有不明白的读者可以发邮件到我邮箱或者加群询问。

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档