首页 > 编程知识 正文

Clk Gating的verilog写法及简析基础小知识六,小波分析基础知识

时间:2023-05-04 01:49:49 阅读:240024 作者:356

文章目录 1.2 clk gating参考文档
clk gating主要用于低功耗,本文主要从verilog的使用方法上进行介绍,仅供参考。~~~

1.2 clk gating

原理为clk_en使能之后才会将clk_in输出,减少子模块动态翻转,但是clock_en的使用并不是异步使用,在clk_in为低电平时同步进clk_in时钟域。具体原因见时序图。

module e203_clkgate ( input clk_in, input test_mode, input clock_en, output clk_out);reg enb;always@(*) if (!clk_in) enb = (clock_en | test_mode);assign clk_out = enb & clk_in;endmodule

clk_en一开始与clk_in为异步关系,直接与操作的话可能导致某些clk输出时钟周期不完整,例如导致clk_1时钟出错。当采用同步之后的enb信号之后,输出的clk_2的每一个时钟周期都是完整的时钟。

易错点:采用上述方法一般会在时钟之间引入延时,ASIC设计时Synopsys会考虑这一延时作相应优化。

当FPGA设计时直接用逻辑如此设计时,存在仿真与上板结果不一致的可能,一种是利用内置clk_gate原语解决,或者直接采用pass through的方法clk_out=clk_in。

参考文档

【1】https://github.com/Lichee-Pi/Tang_E203_Mini/blob/master/src/e203_clkgate.v

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。