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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: skywolft

一道笔试题,大家来看看

[复制链接]
发表于 2008-3-25 11:57:00 | 显示全部楼层
8bit寄存器分成两组,每4bit一组,高四位的寄存器可以采用门控时钟降低功耗
采用gray码可以降一部分功耗,但是如果每个时钟沿都有clock的话,即使输入信号不变,寄存器也有一半的管子跳变,会耗功耗。
发表于 2008-3-26 13:44:37 | 显示全部楼层

看着简单,无从下手

看着简单,无从下手
发表于 2008-3-26 17:59:38 | 显示全部楼层

学习一下

学习一下,这也太高深了
发表于 2008-3-26 21:16:11 | 显示全部楼层
不错。下下来学习一下,谢谢楼主了
发表于 2008-3-28 19:58:44 | 显示全部楼层
我也不会,来看一下。
发表于 2008-3-29 23:02:27 | 显示全部楼层
用门控时钟是比较省功耗的但危险容易有毛刺,用格雷码有效果但不会很明显,用低位翻转做高位的时钟看似好一些但速度可能有时跟不上!
郁闷,题目很难啊....楼主快说答案....
发表于 2008-4-2 12:57:41 | 显示全部楼层

看看这个行不

wire    update1,updata2,update3,update4,updata5,update6,update7;
assign update1 = out[0];
assign update2 = update1 & out[1];
assign update3 = update2 & out[2];
assign update4 = update3 & out[3];
assign update5 = update4 & out[4];
assign update6 = update5 & out[5];
assign update7 = update6 & out[6];
always @(posedge clk or negedge rst)
    begin
      if (!rst)
          out[0] <= 1'b0;
      else
          out[0] <= ~out[0];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[1] <= 1'b0;
      else if (update1)
          out[1] <= ~out[1];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[2] <= 1'b0;
      else if (update2)
          out[2] <= ~out[2];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[3] <= 1'b0;
      else if (update3)
          out[3] <= ~out[3];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[4] <= 1'b0;
      else if (update4)
          out[4] <= ~out[4];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[5] <= 1'b0;
      else if (update5)
          out[5] <= ~out[5];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[6] <= 1'b0;
      else if (update6)
          out[6] <= ~out[6];
     end
always @(posedge clk or negedge rst)
     begin
      if (!rst)
          out[7] <= 1'b0;
      else if (update7)
          out[7] <= ~out[7];
     end
发表于 2008-4-2 14:05:37 | 显示全部楼层
大家很有见解
发表于 2008-4-2 14:07:41 | 显示全部楼层
[email=always@(posedge]always@(posedge[/email] clk&rst)
begin
   if(!rst)
      sum<='0;
   else
      sum<=sum+1;
end
发表于 2008-4-2 14:23:53 | 显示全部楼层
[email=always@(posedge]always @ (posedge[/email] clk)
begin
      flag <=rst;
end

assign gateclk =clk& flag;

always @ (posedge gateclk)
begin
    if(! rst)
      out <= 8'b00000000;
    else
      out <= out +1;
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 17:56 , Processed in 0.022000 second(s), 6 queries , Gzip On, Redis On.

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