微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog中数字不指定位宽与数制,综合时会出问题么

Verilog中数字不指定位宽与数制,综合时会出问题么

时间:10-02 整理:3721RD 点击:
rt例子1:if (s_axi_awaddr == 4143232)
例子2:s_axi_awaddr <= s_axi_awaddr + 3840;
小弟最近负责系统在FPGA上的实现,目前功能基本OK了,但是看到代码中有如上的语句,不知道这种coding style会不会成为设计中的隐患?
按照逻辑设计,4143232和3840都是十进制,目前综合也是按照10进制来处理的,那以后会不会出现综合器认为4143232和3840是16进制数的情况呢?

围观帮顶

这么写就是十进制啊。如果是16进制的话,应该写成16‘hxxx



   不同的综合器都会认为是10进制么,不指明位宽有关系么



   我也自己顶一个



    我用xilinx,个人觉得是可以的。不过,不推荐用10进制的方式描述。


嗯如果由于coding style的问题导致出来的电路和逻辑设计的不一样,比较难发现和调试

不指定位宽、不指定进制是相当不好的习惯。
一个是可读性差,对资源需要用多少位宽很模糊。你例子里的比较器、加法器是多少位的,一眼看不出来。
一个是可能造成预料外的仿真结果。你这一例好像不会有什么大问题,但难保以后不遇到。

最好还是加上吧,也不麻烦的

我们学的是默认为10进制,32位宽


前辈您好,我在用verilog导入到cadence时提示如下错误,但是我在.v文件中没发现错误,请您帮忙看一下是什么问题。/home/dianke/ic5141/design/sar_logic.v
assign start   =!en_! & en_reg;
                    |
ncvlog: *E,EXPSMC (/home/dianke/ic5141/design/sar_logic.v,28|20): expecting a semicolon (';') [6.1(IEEE)].
                 begin
                     |
ncvlog: *E,CSISYX (/home/dianke/ic5141/design/sar_logic.v,110|21): case item syntax error [9.5(IEEE)].
                default:
                      |
ncvlog: *E,NOTSTT (/home/dianke/ic5141/design/sar_logic.v,114|22): expecting a statement [9(IEEE)].
               endcase
                     |
ncvlog: *E,NOTSTT (/home/dianke/ic5141/design/sar_logic.v,119|21): expecting a statement [9(IEEE)].
module __nclib.sar_logic:module
errors: 4, warnings: 0



    把和报错相关的几行代码全贴出来



   十分感谢热心相助,我已经解决了,在此谢过

一定要加上位宽,因为不加位宽默认会综合成32位的。写verilog必须严谨。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top