禁止使用分频时钟、计数器时钟

看尤恺元老师的视频,提到上述问题,仔细搜索研究下:

禁止用计数器分频后的信号做其它模块的时钟,而要用改成时钟使能的方式。否则这种时钟满天飞的方式对设计的可靠性极为不利,也大大增加了静态时序分析的复杂性。时钟使能电路是同步设计的重要基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但是由于这些时钟是同源的,可以将它们转化为单一的时钟电路处理。在FPGA的设计中,分频时钟和源时钟的skew不容易控制,难以保证分频时钟和源时钟同相。故此推荐采用使用时钟使能的方法。

时钟的产生:两次阅读高手的程序,两种处理方法。第一种处理方法是在分频模式下进行的,因为分频后的时钟占空比是50%,在用此分频信号作时钟使能驱动时,通过逻辑判段信号的前后状态,判断出是否时钟使能信号为上升沿,然后在逻辑上升沿下运行程序模块。当时看见这样的处理,完全就是认为简单的问题复杂话,直接使用分频后的时钟驱动模块不就可以直接在上升沿时处理程序嘛。

第二种处理方法,就是用计数器产生分频时钟时,仅在某一确定的数值对时钟使能置位,可以使时钟使能的高电平仅保持一个CLK周期,这样就能保证程序运行在时钟使能上升沿上了。再看这样时钟使能使能时驱动时,不知道有此设计思想,则在直接阅读程序模块时,造成了些困惑。

转自:

http://forum.eepw.com.cn/thread/236499/1

时间: 2024-12-29 17:32:29

禁止使用分频时钟、计数器时钟的相关文章

硬件时钟--ht1381时钟芯片驱动

ht1381时钟芯片驱动 #include "global.h" //时钟芯片ht1381各引脚定义 #define HT1381_CS_GPIO_PORT GPIOD #define HT1381_CS_GPIO_PIN GPIO_PIN_3 #define HT1381CsHigh() (HT1381_CS_GPIO_PORT->ODR |= (u8)(HT1381_CS_GPIO_PIN)) #define HT1381CsLow() (HT1381_CS_GPIO_POR

硬件时钟--DS1307时钟芯片

模拟I2C通讯控制DS1307读写硬件时钟 #include "global.h" #include "drv_ds1307.h" #define I2C_CLK_PORT GPIOB #define I2C_CLK_PIN GPIO_PIN_4 #define I2C_SDA_PORT GPIOB #define I2C_SDA_PIN GPIO_PIN_5 #define SCL_High() GPIO_Init(I2C_CLK_PORT, I2C_CLK_PI

sTM32 使用TIMx_CH1作为 Tx1F_ED 计数器时钟

环境:iar arm 5.3 stm32f103vbt6 使用PA.8 外部输入10Mhz的方波.可从systick中断得到数据4. 4×5000(预分频值)×1000(tick中断时间)=20MHz 属于双边沿检测,一个PA.8个脉冲有2个边沿,所以时钟加倍. 由于使用了TI1F_ED它的结构如下: void RCC_Configuration( void ) { /* Setup STM32 system (clock, PLL and Flash configuration) */ Sys

网页计算器 && 简易网页时钟 && 倒计时时钟

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

系统时钟 硬件时钟 系统时间 硬件时间 ntpd ntpdate

在Linux下,默认情况下,系统时间和硬件时间,并不会自动同步.在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰.硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的,相互独立. 在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间. ntpd:平滑矫正时间,起初64秒矫正一次,后续逐步减少.且有保护功能,与源时间服务器差异过大,会停止矫正. ntpdate:跃变方式矫正时间,对时序依赖严重的应用程序,如数据库,可能会出现2次相同的时间

分布式系统阅读笔记(二十二)-----时钟和时钟同步

时钟的基本概念 时钟 时钟在一般意义上指的是一个计算机的物理时间,每个计算机都会包括他们自己的物理时钟,不同的计算机的物理可能会不同. 时钟漂移 经过在同个地方的计算机,他们的物理也有可能会不一样,如果他们从刚刚开始相同的时间计时开始,过了1过月,1年也可能会有快又慢,这在专业名词上讲叫做时间漂移.本质的原因是每秒的时间偏移,经过日记月累之后,就会有可能达到1秒钟的差距,解决的办法很简单,就是过一段时间之后,将时间纠正回来就可以了. UTC UTC全称是Coordinated Universal

美女时钟+电子时钟

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <title>美女时钟</ti

STM32F4学习笔记10——RTC实时时钟

RTC实时时钟 实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器.RTC 提供一个日历时钟.两个可编程 闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志.RTC 还包含用于管理低功耗模 式的自动唤醒单元. 两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒.分钟.小时(12 或 24 小时制).星 期几.日期.月份和年份.此外,还可提供二进制格式的亚秒值. 系统可以自动将月份的天数补偿为 28.29(闰年).30 和 31 天.并且还可以进行夏令时 补偿. 其它 32 位寄

数字设计中的时钟与约束

最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧.主要内容如下所示: ·同步电路与异步电路: ·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter).延时(latency).转换(transition)时间: ·内部时钟: ·多路复用时钟: ·门控时钟: ·行波时钟: ·双沿时钟: ·Design Compiler中的时钟约束. 1.同步电路与异步电路 首先来谈谈同步电路与异步电路.那么首先就要知道什么是同步电路.什么是