【发布时间】:2018-09-17 16:48:31
【问题描述】:
尝试这样做
parameter integer PRECHARGE_CLOCKS = $ceil(PRECHARGE_NS / CLOCK_PERIOD_NS);
然后在比较中使用该值
if(InitPrechargeCounter < PRECHARGE_CLOCKS - 1)
但是得到这个错误
Error (10174): Verilog HDL Unsupported Feature error at Ram.sv(23): system function "$ceil" is not supported for synthesis
有没有办法让我得到编译时计算的值?
使用一些不同的语言结构而不是 parameter?
【问题讨论】:
-
这看起来像是一个工具问题。你试过最新版本吗?这是一个完全合法的verilog,可以与其他编译器一起使用。
-
Quartus Prime 18.0。我不是 Verilog 专家,但据我了解,应该有一种方法可以在编译时进行参数计算,并且不应该受到可合成内容的限制。但事实就是这样。
-
是的,参数应该在细化时解决。这个函数的一个问题是它返回
real值,这是不可合成的。您可以尝试使用$rtoi($ceil(...))。
标签: system-verilog quartus ceil