时钟使能电路是同步设计的基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但由于这些时钟是同源的,可以将它们转化为单一时钟处理;在asic中可以通过sta约束让分频始终和源时钟同相,但fpga由于器件本身和工具的限制,分频时钟和源时钟的skew不容易控制(使用锁相环分频是个例外),难以保证分频时钟和源时钟同相,因此推荐的方法是使用时钟使能,通过使用时钟使能可以避免时钟“满天飞”的情况,进而避免了不必要的亚稳态发生,在降低设计复杂度的同时也提高了设计的可靠性;
禁止用计数器分频后的信号做其它模块的时钟,而要用改成时钟使能的方式,否则这种时钟满天飞的方式对设计的可靠性极为不利,也大大增加了静态时序分析的复杂性;
带使能端的d触发器,比一般d触发器多了使能端,只有在使能信号en有效时,数据才能从d端被打入d触发器,否则q端输出不改变,我们可以用带使能端的d触发器来实现时钟使能的功能;
verilog模型举例在某系统中,前级数据输入位宽为8位,而后级的数据输出位宽为32,我们需要将8bit数据转换为32bit,由于后级的处理位宽为前级的4倍,因此后级处理的时钟频率也将下降为前级的1/4,若不使用时钟使能,则要将前级的时钟进行4分频来作后级处理的时钟;这种设计方法会引入新的时钟域,处理上需要采取多时钟域处理的方式,因而在设计复杂度提高的同时系统的可靠性也将降低。为了避免以上问题,我们采用了时钟使能以减少设计复杂度;
module clk_en(
clk, rst, data_in, data_out
);
input clk;
input rst;
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 )
begin
if (rst)
cnt <= 0;
else
cnt <= cnt + 1;
end
always @(posedge clk )
begin
if (rst)
clken <= 0;
else if (cnt == 2'b01)
clken <= 1;//使能信号只在一个周期拉高
else
clken <= 0;
end
always @(posedge clk )
begin
if (rst)
data_shift <= 0;
else
data_shift <= {data_shift[23:0],data_in};//移位
end
always @(posedge clk)
begin
if (rst)
data_out <= 0;
else if (clken == 1'b1)
data_out <= data_shift;//只在一个周期输出
end
endmodule
精彩推荐至芯科技12年不忘初心、再度起航12月17日北京中心fpga工程师就业班开课、线上线下多维教学、欢迎咨询!fir滤波器和iir滤波器的区别与联系
vivado使用技巧-支持的verilog语法
扫码加微信邀请您加入fpga学习交流群
欢迎加入至芯科技fpga微信学习交流群,这里有一群优秀的fpga工程师、学生、老师、这里fpga技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!
点个在看你最好看
原文标题:verilog的时钟分频与时钟使能
文章出处:【微信公众号:fpga设计论坛】欢迎添加关注!文章转载请注明出处。
AMD两大高性能 AI 芯片正式出货,剑指英伟达 H100
带你了解实现自动化系统平稳升级的10个要素
经典传承!诺基亚8曝光:OLED屏+骁龙835,黑科技满满
智能工厂应用方面5G工业网关已经成功应用在无人巡检机器人等多个领域
苹果发布iOS 12 更新,上线三小时紧急撤回,称更新后存在bug
verilog的时钟分频与时钟使能
testo 890高性能红外热像仪产品详细描述
搭载华为麒麟710芯片以上的机型或都能升级鸿蒙系统
TWS 钰泰ETA9030 高耐压28V 双向通讯,双耳独立检测,待机超低功耗3uA,带I2C功能,
智能家居如何变得有深度
Adam模型的新改进“Rectified Adam”
中科创达荣获2020中国汽车出行产业创新榜TOP20
泰国明年开始拍卖5G频谱,有四个频段
分享去耦电容的有效使用方法和应用
电源测试系统有哪些类型,它有哪些优势
PI创新产品可将AC-DC变换器的体积最多缩小40%
360N5S千元机价位,却有着旗舰的配置骁龙653配上6G运存
2016总结:最佳国产手机 TOP 5
AN6350引脚功能的电压资料参数
彰显硬核实力,概伦电子斩获2023科创板最具投资价值企业奖