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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3356|回复: 6

[求助] verilog code,2种方式,哪种好?

[复制链接]
发表于 2011-9-22 09:27:13 | 显示全部楼层 |阅读模式

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

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

x
下面2种方式,哪中好呢?或是大家一般习惯用哪种?
是从面积,功耗,稳定性考虑?

第一种:
always @(posedge CLK or negedge rst_n or posedge enpul)
begin
    if(!rst_n)
        begin
        state <= 1'b0;
        cnt_en <= 1'b0;
        end
     else if(enpul)
         begin
         state <= 1'b1;
         cnt_en <= 1'b1;
         end
     else
         begin
         if(state & end_delay)
             begin
             state <= 1'b0;
             cnt_en <= 1'b0;
             end
          end
end

第二种:
always @(posedge CLK or negedge rst_n or posedge enpul)
begin
    if(!rst_n)
        begin
        state <= 1'b0;
         end
     else if(enpul)
         begin
         state <= 1'b1;
         end
     else
         begin
         if(state & end_delay)
             begin
             state <= 1'b0;
             end
          end
end

assign cnt_en = state;
发表于 2011-9-22 09:35:13 | 显示全部楼层
沙发。
第二种简洁。
初学者,关注中!
发表于 2011-9-22 10:33:11 | 显示全部楼层
assign d_in = 1'b0 | enpul;

always @(posedge CLK or negedge rst_n )
begin
    if(!rst_n)
        begin
        state <= 1'b0;
         end
     else
         begin
         if(state & end_delay)
             begin
             state <= d_in;
             end
         end
end

assign cnt_en = state;
 楼主| 发表于 2011-9-22 11:32:18 | 显示全部楼层
回复 3# falloutmx


    你的意思跟我想的不一样,
我的enpul也跟一个reset似的,如果为高,就要置位.

我现在的意思,是说cnt_en这个信号,是用触发器实现,还是有普通的门实现,
对不同的实现方式,在面积,功耗,稳定性方面各有什么优缺点.

当然对于我这个简单的例子,触发器更占面积和功耗.
发表于 2011-9-22 13:26:44 | 显示全部楼层
本帖最后由 falloutmx 于 2011-9-22 13:55 编辑

你的要求跟JK触发器是一样的吧?
JK触发器用D触发器实现就必须让D的输入端等于Jk触发器的表达式,所以需要通过外加门电路。
从你的设计来说,第二个好,这种同样输出同样输出的东西,综合器会自动干掉只保留一个的.

哦,不对。你要球那个信号是上升沿时候变化的。我的不行
发表于 2011-9-22 13:34:34 | 显示全部楼层
都是带异步复位和异步置位的DFF,一样。
3L的跟lz的不匹配,把异步置位加到DFF的D端了。
发表于 2011-9-22 21:13:33 | 显示全部楼层
想用JK触发器的话,最好直接调用库里的原件。
用always @(posedge CLK or negedge rst_n or posedge enpul)来实现JK触发器是会有问题的。
试想这样的情况:rst_n从1变0,然后enpul从0变1,然后rst_n从0变1。
这时,根据你的code,直到下一个clk来之前,你的寄存器将还是处在rst_n为0时的状态!
而真正带异步set/reset的JK触发器,由于enpul为1,肯定是处在set状态!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 05:09 , Processed in 0.027244 second(s), 9 queries , Gzip On, Redis On.

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