在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9458|回复: 16

[求助] verilog中条件编译问题,大牛快来啊啊啊

[复制链接]
发表于 2012-3-5 11:45:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
现在我在做一个模块,要求用条件编译,比如说我只需要在行同步信号a的上升沿时做行运算,其余时候不需要做这个运算,那么我是不是需要写
    if(posedge a)
           `define  h_cal  1;
      然后在顶层中写
     `ifdef  h_cal  
              h_cal.v   //运行行计算v文件
     `else
             v_cal.v
原来没接触过条件编译,不是很清楚define的用法,如果我直接在顶层中定义 `define h_cal  1;那不是以后要运行v_cal.v就要手动改么?

ps:条件编译指有一部分代码不需要编译,这样的话是否会在芯片面积和功耗上有所降低 减少成本?
发表于 2012-3-5 11:49:10 | 显示全部楼层
兄弟没学过verilog吧
 楼主| 发表于 2012-3-5 11:50:04 | 显示全部楼层
学过啊  怎么了
 楼主| 发表于 2012-3-5 11:51:09 | 显示全部楼层
快来人啊啊啊
 楼主| 发表于 2012-3-5 11:53:48 | 显示全部楼层
有人来么
发表于 2012-3-5 12:46:54 | 显示全部楼层
always @(posedge clk)begin
...
end
在begin -end中间加要执行的代码
这种语句的含义就是 当clk上升沿的时候 执行 下面的行为

但如果楼主是一个信号a,而不是时钟
通常会通过先打拍信号,再判断上升沿
always @(posedge clk)begin
   a_ff1 <= a;
   a_ff2 <= a_ff1;
end

上升沿的判断条件:if((a_ff1 == 1'b1) && (a_ff2 == 1'b0))
 楼主| 发表于 2012-3-5 13:21:56 | 显示全部楼层
回复 6# h646598660


    我只是简单写了下表达下意思,我是想说怎么通过条件语句来判断进行条件编译,不是同步啥的,
发表于 2012-3-5 13:47:13 | 显示全部楼层
囧.BMP
发表于 2012-3-5 15:25:21 | 显示全部楼层
你的这段话不符合verilog的语法要求,别人没法看的。
if(posedge a),这句话就会晕掉大部分人。这就是为什么楼上有兄弟说你是不是不会verilog的原因。
发表于 2012-3-5 16:34:07 | 显示全部楼层
这么写是不符合verilog语法的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-7 19:36 , Processed in 0.023968 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表