- 主题:请问这种RTL写法是正确的么? 信号的复位值是一个变量?
请问这种写法是正确的么? 信号的复位值是一个变量?
综合后是个什么样子?
always@(posedge dclk or negedge drst_n)
if(~drst_n)
addr <= bw_32;
else
--
FROM 218.82.140.*
有,不允许这样写的。 但是我想知道这样写的根本问题是什么?
【 在 EmperorPiero 的大作中提到: 】
: 你们没有代码规范吗
:
: #发自zSMTH@M2011K2C
--
FROM 218.82.140.*
是的。 不能写成变量的原因是什么?
【 在 volsky 的大作中提到: 】
: 寄存器的复位值不可能是变量。
:
--
FROM 218.82.140.*
既然可综合,而且arm的cpu也有这种写法, 那么怎么能知道电路和仿真的差别在哪呢?
【 在 ucom 的大作中提到: 】
: 可以这么写,也可以综合,但要注意实际电路的情况有可能和仿真器的结果有差别,arm的cpu里面见过这种写法
: 请问这种写法是正确的么? 信号的复位值是一个变量?
: 综合后是个什么样子?
: ...................
--
FROM 218.82.140.*
bw_32是一个wire, 源头是个寄存器然后经过简单的组合逻辑生成的bw_32
【 在 PrimeTime 的大作中提到: 】
: bw_32是个什么类型?wire?reg ?
:
--
FROM 218.82.140.*
非常恳请您来解惑。希望不吝赐教
【 在 lyfwill 的大作中提到: 】
: 对于这种基本概念都没搞明白的问题,确实是太菜了,根本不值得讨论。随便翻本verilog教材第一章就有讲
: :
: - 来自「最水木 for iPhone14,2」
--
FROM 218.82.140.*
我本来也觉得会报错,或者有warning,但是vcs nlint dc 这三个我试过warning都没有,而且 formal 也是success。。。。
【 在 jthuster 的大作中提到: 】
: 异步复位要么是1要么是0,因为stdcell就是这么做的。异步复位用变量的话,综合出来是啥?除非是parameter或者genvar之类的。否则工具(vcs spyglass dc之类的)应该会报错。
: 发自「今日水木 on K40」
--
FROM 218.82.140.*
额? 难道这个问题所在! 感觉这个答案比较靠谱
【 在 rtossystem 的大作中提到: 】
: 本身没啥问题吧,就是timing需要特别处理,不要给后端找麻烦
--
FROM 218.82.140.*
额,请问违反了nlint的哪条rule? 没有找到对应的rule额。
【 在 scholar000 的大作中提到: 】
: 在同事的代码中见过这种风格,本意是通过一个寄存器配置某些信号的默认值,比如PAD IO的默认值希望可以配置。
: 应该是可以综合的,也可以上FPGA,对后端的影响未知。
: 但lint是会报出这种问题的,我就是在lint上检查出同事的代码问题。。。。后来把它改掉了,其实就是加个类似同步reset的信号进行控制就可以了。
: ...................
--
FROM 218.82.140.*
请问违反了nlint的哪条rule? 没有找到对应的rule额。
【 在 beararound2 的大作中提到: 】
: 应该会报错,因为我曾经这么写被nlint查出来了。如果没报错的话要查一下rule的设置。
:
--
FROM 218.82.140.*