0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

verilog模型举例:利用D触发器实现时钟使能

454398 来源:csdn 作者:csdn 2021-10-01 10:16 次阅读

时钟使能电路是同步设计的基本电路。在很多设计中,虽然内部不同模块的处理速度不同,但由于这些时钟是同源的,可以将它们转化为单一时钟处理。在ASIC中可以通过STA约束让分频始终和源时钟同相,但FPGA由于器件本身和工具的限制,分频时钟和源时钟的Skew不容易控制(使用锁相环分频是个例外),难以保证分频时钟和源时钟同相,因此推荐的方法是使用时钟使能,通过使用时钟使能可以避免时钟“满天飞”的情况,进而避免了不必要的亚稳态发生,在降低设计复杂度的同时也提高了设计的可靠性。

禁止用计数器分频后的信号做其它模块的时钟,而要用改成时钟使能的方式。否则这种时钟满天飞的方式对设计的可靠性极为不利,也大大增加了静态时序分析的复杂性。

带使能端的D触发器,比一般D触发器多了使能端,只有在使能信号EN有效时,数据才能从D端被打入D触发器,否则Q端输出不改变。

我们可以用带使能端的D触发器来实现时钟使能的功能。

verilog模型举例

在某系统中,前级数据输入位宽为8位,而后级的数据输出位宽为32,我们需要将8bit数据转换为32bit,由于后级的处理位宽为前级的4倍,因此后级处理的时钟频率也将下降为前级的1/4,若不使用时钟使能,则要将前级的时钟进行4分频来作后级处理的时钟。这种设计方法会引入新的时钟域,处理上需要采取多时钟域处理的方式,因而在设计复杂度提高的同时系统的可靠性也将降低。为了避免以上问题,我们采用了时钟使能以减少设计复杂度。

例1:采用时钟使能

module clk_en(clk, rst_n, data_in, data_out);
input clk;
input rst_n;
input [7:0] data_in;
output [31:0] data_out;

reg [31:0] data_out;
reg [31:0] data_shift;
reg [1:0] cnt;
reg clken;

always @(posedge clk or negedge rst_n)
begin
   if (!rst_n)
      cnt <= 0;
   else
      cnt <= cnt + 1;
end

always @(posedge clk or negedge rst_n)
begin
   if (!rst_n)
      clken <= 0;
   else if (cnt == 2'b01)
      clken <= 1;
   else
      clken <= 0;
end

always @(posedge clk or negedge rst_n)
begin
   if (!rst_n)
      data_shift <= 0;
   else 
      data_shift <= {data_shift[23:0],data_in};
end

always @(posedge clk or negedge rst_n)
begin
   if (!rst_n)
      data_out <= 0;
   else if (clken == 1'b1)
      data_out <= data_shift;
end

endmodule

例2:采用分频方法

module clk_en1(clk, rst_n, data_in, data_out);
input clk;
input rst_n;
input [7:0] data_in;
output [31:0] data_out;

reg [31:0] data_out;
reg [31:0] data_shift;
reg [1:0] cnt;
wire clken;

always @(posedge clk or negedge rst_n)
begin
   if (!rst_n)
      cnt <= 0;
   else
      cnt <= cnt + 1;
end

assign clken = cnt[1];

always @(posedge clk or negedge rst_n)
begin
   if (!rst_n)
      data_shift <= 0;
   else 
      data_shift <= {data_shift[23:0],data_in};
end

always @(posedge clken or negedge rst_n)
begin
   if (!rst_n)
      data_out <= 0;
   else 
      data_out <= data_shift;
end

endmodule

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603329
  • asic
    +关注

    关注

    34

    文章

    1200

    浏览量

    120501
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110095
  • 时钟
    +关注

    关注

    10

    文章

    1733

    浏览量

    131479
  • D触发器
    +关注

    关注

    3

    文章

    164

    浏览量

    47915
收藏 人收藏

    评论

    相关推荐

    d与rs触发器间功能的转换

    与RS触发器的基本概念 D触发器 D触发器是一种具有数据输入(D)、
    的头像 发表于 08-28 09:35 1056次阅读

    d触发器d锁存的区别是什么

    D触发器有两个输入端,一个是数据输入端D,另一个是时钟输入端CLK;两个输出端,一个是Q输出端,另一个是Q非输出端。当CLK信号上升沿到来时,D
    的头像 发表于 08-28 09:34 1390次阅读

    d触发器和jk触发器的区别是什么

    ,可以存储一位二进制信息。触发器的输出状态取决于输入信号和触发器的当前状态。触发器的分类主要有D触发器、JK
    的头像 发表于 08-22 10:37 1955次阅读

    t触发器变为d触发器的条件

    在数字电路设计中,触发器是一种非常重要的存储元件,用于存储一位二进制信息。触发器的种类很多,其中最为常见的有JK触发器D触发器和T
    的头像 发表于 08-22 10:33 1470次阅读

    d触发器是电平触发还是边沿触发

    D触发器(Data Flip-Flop)是一种常见的数字逻辑电路元件,主要用于存储一位二进制数据。D触发器可以是电平触发的,也可以是边沿
    的头像 发表于 08-22 10:17 1293次阅读

    t触发器d触发器的区别和联系

    在数字电路设计中,触发器是一种非常重要的存储元件,用于存储一位二进制信息。触发器的种类很多,其中最为常见的是T触发器(Toggle Flip-Flop)和D
    的头像 发表于 08-11 09:37 2953次阅读

    主从触发器和同步触发器的区别在哪里

    定义: 主从触发器(Master-Slave Trigger)是一种用于实现时钟同步的触发器结构,它由两个触发器组成,一个为主触发器(Mas
    的头像 发表于 08-11 09:21 712次阅读

    时钟使的八进制D触发器SN74F377A数据表

    电子发烧友网站提供《带时钟使的八进制D触发器SN74F377A数据表.pdf》资料免费下载
    发表于 05-22 10:12 0次下载
    带<b class='flag-5'>时钟</b><b class='flag-5'>使</b><b class='flag-5'>能</b>的八进制<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>SN74F377A数据表

    时钟使的八进制D触发器SN54HCT377 SN74HCT377 数据表

    电子发烧友网站提供《带时钟使的八进制D触发器SN54HCT377 SN74HCT377 数据表.pdf》资料免费下载
    发表于 05-22 10:03 0次下载
    带<b class='flag-5'>时钟</b><b class='flag-5'>使</b><b class='flag-5'>能</b>的八进制<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>SN54HCT377 SN74HCT377 数据表

    时钟使的八边三格D触发器数据表

    电子发烧友网站提供《带时钟使的八边三格D触发器数据表.pdf》资料免费下载
    发表于 05-15 10:42 0次下载
    带<b class='flag-5'>时钟</b><b class='flag-5'>使</b><b class='flag-5'>能</b>的八边三格<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>数据表

    具有时钟使端的八路 D触发器SNx4HC377数据表

    电子发烧友网站提供《具有时钟使端的八路 D触发器SNx4HC377数据表.pdf》资料免费下载
    发表于 05-06 11:30 0次下载
    具有<b class='flag-5'>时钟</b><b class='flag-5'>使</b><b class='flag-5'>能</b>端的八路 <b class='flag-5'>D</b> 类<b class='flag-5'>触发器</b>SNx4HC377数据表

    d触发器的功能 d触发器的状态方程

    D触发器是一种经典的时序逻辑电路,具有广泛的应用领域。它的功能包括存储和传输数据,以及在时钟信号的作用下进行状态转换。本文将探讨D触发器的功
    的头像 发表于 02-18 16:28 7960次阅读

    t触发器和jk触发器的区别和联系

    稳态触发器,具有一个触发输入(T输入)和一个时钟输入,以及一个输出。T触发器的输出状态取决于其当前状态、触发输入和
    的头像 发表于 02-06 14:04 6149次阅读

    d触发器的逻辑功能 d触发器sd和rd作用

    了解一下D触发器的逻辑功能。D触发器是一种存储设备,它可以存储和传输一个二进制位数值。D触发器
    的头像 发表于 02-06 13:52 2.4w次阅读

    d触发器有几个稳态 d触发器和rs触发器的区别

    D触发器的稳态 D触发器是数字电路中常用的一种存储元件,它有两种稳态,即低电平稳态和高电平稳态。当输入D为低电平时,输出Q保持为低电平;当输
    的头像 发表于 02-06 11:32 4000次阅读