打印

电平敏感锁存器两种写法的优劣和区别请教

[复制链接]
1906|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magic_yuan|  楼主 | 2013-3-30 21:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,
    学习VERILOG过程中遇到如下问题:对带置位复位锁存器的两种写法,一种用assign,另一种用always。always中用到了REG型变量,而assign中用的是线网。语言结构而言assign较简单。不知道这两种写法综合成实际电路后哪种更有优势,会有些什么特点。

    写法1:
module t1(q,data,clk,set,reset);
  output q;
  input data,clk,set,reset;

  assign q=reset?0:(set?1:(clk?data:q));
endmodule

写法2:
module t2(q,data,clk,set,reset);
output q;
input data,clk,set,reset;

reg q;

always @(clk)
begin
   if(clk)
     begin
       if(reset)
         q=0;
       else
         if(set)
           q=1;
         else
           q=data;
     end
   else
     q=q;
end

endmodule

刚学VERILOG,有些东西理解浅。
十分感谢!

相关帖子

沙发
ifpga| | 2013-3-30 21:22 | 只看该作者
这两种写法综合出来应该是一样的
如果是简单算法,当然 assign 方便
如果是复杂算法,只能为 always

使用特权

评论回复
板凳
magic_yuan|  楼主 | 2013-3-30 21:35 | 只看该作者
ifpga 发表于 2013-3-30 21:22
这两种写法综合出来应该是一样的
如果是简单算法,当然 assign 方便
如果是复杂算法,只能为 always ...

多谢大侠!
   写惯了C,思维偏向于always写法。只要综合出效果一样就好。

使用特权

评论回复
地板
GoldSunMonkey| | 2013-3-30 22:50 | 只看该作者
ifpga 发表于 2013-3-30 21:22
这两种写法综合出来应该是一样的
如果是简单算法,当然 assign 方便
如果是复杂算法,只能为 always ...

感谢回复啊

使用特权

评论回复
5
ifpga| | 2013-3-31 20:58 | 只看该作者
GoldSunMonkey 发表于 2013-3-30 22:50
感谢回复啊

使用特权

评论回复
6
GoldSunMonkey| | 2013-3-31 23:56 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:发到3000帖时,生活大概完成了一种转折。

359

主题

2770

帖子

7

粉丝