关于同步电路中的时钟(clock)使能信号的问题
本帖最后由 fpgaw 于 2010-7-6 05:35 编辑所谓同步电路,就是指在时钟信号有效时,来捕捉电路的输入信号和输出信号,规范电路的状态变化.
因此,在同步电路设计中,时钟信号是至关重要的.但是,直接的门控时钟来控制电路的状态变化,由于各种原因造成的时钟信号的毛刺,将直接影响电路的正常工作,特别对于告诉的FPGA的结构,会影响电路逻辑的正常响应.因此,在电路结构中,增加时钟使能信号,是非常重要的.
当在设计中需要多重时钟时,时钟使能也可用来维护电路状态变化的同步性.
我的问题是:
1.在用VHDL设计同步电路的时候,有没有什么标志性的地方,或者说有没有什么特别要注意的地方?
比如,在一个Process中,敏感向量表中只存在复位和时钟信号(有必要么)?
2.上面的提到的多重时钟是个什么概念,请高手举个例子给小弟看看
3.我看到一个时钟使能的一段代码,不知道是否正确?
-- Registers read/write strobes
ThrWRn_r <= '1' when (Reset='1') else WRn_cs when (ADDR_s=A_THR) else '1';
-- Delayed signals for rising edge dectection
Delay_Signals_Proc: process(Clk16X, Reset)
begin
if (Reset='1') then
ThrWRn1_r <= '1';
ThrWRn2_r <= '1';
elsif rising_edge(Clk16X) then
-- Signals for rising edge detection of THR write strobe signal ThrWRn_r
ThrWRn1_r <= ThrWRn_r;
ThrWRn2_r <= ThrWRn1_r;
-- Rising edge of registers read/write strobes
ThrWRn_re <= ThrWRn1_r and (not ThrWRn2_r); -- rising edge of ThrWRn_r
请高手指教 期待高手的解答?? 新手发表看法:<br>
1.同步设计需要避免或者注意的东西有:Combinatioanl Loop,Latch,Gating clock,Generated clock;<br>
2.多重时钟就是设计中包含多个不同频率的时钟,它们控制不同的Block。这时候要处理好模块间的接口,或者说不同时钟域的数据传输问题。 我来发表点意见吧。<br>
1、同步电路的明显标志就是寄存器,也就是指在时钟边沿触发的信号!!要注意的就是当一个信号不能被完全赋值时,该信号是否是时钟边沿出发(不是的话,就会很有可能生成锁存器,这是不允许的);有没有生成多余的寄存器,而导致时序错乱!!<br>
2、按照你所说的。多重时钟就是指多种时钟频率的时钟。一方面有可能是外部输入的,例如同步串口的接收时钟与工作时钟;二来,有可能是由工作时钟分频产生的。前者以该用相对高速的工作时钟采样输入的同步时钟,而产生使能信号来寄存输入数据;而后者则应该通过计数器生成一个单时钟脉冲作为使能信号。<br>
3、你所给出的例子没错。可能是你没有完整表述吧,但思路是对的!! 好啊!!!!收下先!!!! 第一问题,就我目前的理解是必要的。规范代码才能够保证综合后电路与所设想的电路保持一致。 同意楼上的说法!好多规范都是公司以前遇到问题时总结出来的东西,有必要遵循!以免犯错!
页:
[1]