小滑头520 发表于 2014-3-18 00:09:15

Verilog问题求解答·····

`define        end_trp                cnt_clk_r        ==        TRP_CLK
`define        end_trfc                cnt_clk_r        == TRFC_CLK
最近在看代码的时候发现人家这样定义不明白是什么意思? 我想把他转成parameter定义 怎么转呢?
求高手解答···是不是判断cnt_clk_r        是否与TRP_CLK相等 等的话赋值给end_trp   怎么转换成parameter定义?

wye11083 发表于 2014-3-18 00:09:16

转不了。parameter的值是写死的,而define是在综合时全局替换的,两者自然不可能等价。

小滑头520 发表于 2014-3-18 00:54:07

wye11083 发表于 2014-3-18 00:33
转不了。parameter的值是写死的,而define是在综合时全局替换的,两者自然不可能等价。 ...

想想也是但是我在看特权的代码的时候 他调用`include "sdram_para.v"                // 包含SDRAM参数定义模块 定义
他这些`define        end_trp                        cnt_clk_r        == TRP_CLK
          `define        end_trfc                cnt_clk_r        == TRFC_CLK是编译器伪指令 但是我想把他的模块转换成原理图模式
不改变这个写方式 又编译不成功 纠结了很久 不知道如何改往高人指导··· 谢谢!

wye11083 发表于 2014-3-18 08:49:51

小滑头520 发表于 2014-3-18 00:54
想想也是但是我在看特权的代码的时候 他调用`include "sdram_para.v"                // 包含SDRAM参数定义模块 定义...

用define是为了后面方便,比如能直接写if(xxx),否则要写一些wire xxx = xxx,各有利弊。如果你想改写,可以把'define xxx 改为wire xxx放程序里面。

小滑头520 发表于 2014-3-18 13:39:40

wye11083 发表于 2014-3-18 08:49
用define是为了后面方便,比如能直接写if(xxx),否则要写一些wire xxx = xxx,各有利弊。如果你想改写, ...

问题这个定义不是先判断cnt_clk_r是否      == TRP_CLK然后再赋值给end-trp呢? 如果用wire 怎么改呢? 好像wire改不了呢? 望指导 谢谢····

小滑头520 发表于 2014-3-18 14:03:19

小滑头520 发表于 2014-3-18 13:39
问题这个定义不是先判断cnt_clk_r是否      == TRP_CLK然后再赋值给end-trp呢? 如果用wire 怎么改呢 ...

我可以这样么?
wire end_trp ;
assigne end-trp=(cnt_clk_r== TRP_CLK);
是这个意思么?
谢谢···
页: [1]
查看完整版本: Verilog问题求解答·····