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
    +关注

    关注

    1664

    文章

    22502

    浏览量

    639176
  • asic
    +关注

    关注

    34

    文章

    1278

    浏览量

    124941
  • Verilog
    +关注

    关注

    31

    文章

    1374

    浏览量

    114718
  • 时钟
    +关注

    关注

    11

    文章

    1999

    浏览量

    135230
  • D触发器
    +关注

    关注

    3

    文章

    181

    浏览量

    49896
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度解析 74HCT574:八位 D 型正边沿触发触发器的多功能应用

    深度解析 74HCT574:八位 D 型正边沿触发触发器的多功能应用 在电子设计的广袤领域中,触发器扮演着至关重要的角色,它们是构建数字电路的基本单元,为数据的存储和处理提供了坚实的基
    的头像 发表于 03-16 10:10 293次阅读

    74LVC374A:8位D型正边沿触发触发器的深度解析

    边沿触发触发器,带有三态输出。它有一个时钟(CP)输入和一个输出使(OE)输入。当Dn输入的数据满足建
    的头像 发表于 03-16 09:35 318次阅读

    74LVTN16374:高性能16位D型边缘触发触发器的深度解析

    74LVTN16374:高性能16位D型边缘触发触发器的深度解析 在电子设计领域,触发器是构建数字电路的基础元件之一。今天,我们要深入探讨SGMICRO推出的74LVTN16374,一
    的头像 发表于 03-13 16:50 377次阅读

    74LVC74:双D型正边沿触发触发器的深度解析

    74LVC74:双D型正边沿触发触发器的深度解析 在电子设计领域,触发器是数字电路中不可或缺的基本元件,它能够存储一位二进制数据,在时序逻辑电路中发挥着关键作用。今天我们要深入探讨的是
    的头像 发表于 03-13 16:00 396次阅读

    74LVC1G74:单D型正边缘触发触发器的卓越之选

    74LVC1G74:单D型正边缘触发触发器的卓越之选 电子工程师在设计电路时,常常需要寻找性能可靠、功能丰富的触发器来满足各种应用需求。今天,我们就来深入了解一下SGMICRO的74L
    的头像 发表于 03-13 15:30 419次阅读

    74HC574:八进制D型正边沿触发触发器的详细解析

    74HC574:八进制D型正边沿触发触发器的详细解析 在电子设计的领域中,触发器是数字电路里极为关键的元件,它能够存储一位二进制数据,在时序逻辑电路中发挥着重要的作用。今天我们就来深入
    的头像 发表于 03-13 14:45 487次阅读

    74HC374:八进制D型正边沿触发触发器的详细解析

    74HC374:八进制D型正边沿触发触发器的详细解析 在电子设计领域,触发器是一种非常重要的逻辑元件,它能够存储一位二进制数据。今天我们要介绍的是SGMICRO公司的74HC374,一
    的头像 发表于 03-13 14:20 397次阅读

    CDx4HC74 具有清零和预设功能的双路D类正边沿触发触发器数据表

    具有清零和预设功能的双路 D 类正边沿触发触发器
    发表于 02-09 10:53 0次下载

    CD4013BNSR CMOS 双通道 D触发器

    CD4013BNSRCMOS双通道D触发器产品型号:CD4013BNSR产品品牌:TI/德州仪器产品封装:SOP14产品功能:D触发器CD4013BNSR特征●高电压CMOS工艺:
    的头像 发表于 01-05 11:32 385次阅读
    CD4013BNSR    CMOS 双通道 <b class='flag-5'>D</b> 类<b class='flag-5'>触发器</b>

    MC74VHCT374A Octal D触发器技术解析与应用指南

    安森美MC74VHCT374A D触发器是一款具有3态输出的高速CMOS八通道触发器,采用硅栅极CMOS技术制成。这些器件是8位D触发器
    的头像 发表于 11-22 15:18 1488次阅读

    ‌SN74AHCT374-Q1 汽车级八路边沿触发D触发器数据手册摘要

    SN74AHCT374-Q1 包含八个 D触发器。所有通道共享上升沿触发时钟 (CLK) 输入和低电平有效输出使 (OE) 输入。该器
    的头像 发表于 09-28 13:47 1252次阅读
    ‌SN74AHCT374-Q1 汽车级八路边沿<b class='flag-5'>触发</b><b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>数据手册摘要

    ‌SN74LV8T273 八路D触发器技术文档总结

    该SN74LV8T273包含八个正边沿触发D触发器,具有直接的低电平有效清除(CLR)输入。 满足建立时间要求的数据 (D) 输入端的信息传输到
    的头像 发表于 09-28 10:30 1104次阅读
    ‌SN74LV8T273 八路<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>技术文档总结

    Texas Instruments SN74ACT174-Q1六路D触发器数据手册

    Texas Instruments SN74ACT174-Q1六路D触发器包含六个D触发器,具有共享低电平有效清除 (CLR) 和上升沿触发
    的头像 发表于 07-16 10:26 971次阅读
    Texas Instruments SN74ACT174-Q1六路<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>数据手册

    Texas Instruments SN74AC174-Q1六路D触发器数据手册

    Texas Instruments SN74AC174-Q1六路D触发器包含六个D触发器,具有共享低电平有效清除 (CLR) 和上升沿触发
    的头像 发表于 07-16 10:18 910次阅读
    Texas Instruments SN74AC174-Q1六路<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>数据手册

    ON Semiconductor MC14013BDTR2G 双D触发器参数特性 EDA模型 数据手册

    ON Semiconductor MC14013BDTR2G 双D触发器参数特性 EDA模型 数据手册
    的头像 发表于 05-29 14:41 1667次阅读
    ON Semiconductor MC14013BDTR2G  双<b class='flag-5'>D</b>型<b class='flag-5'>触发器</b>参数特性 EDA<b class='flag-5'>模型</b> 数据手册