片內(nèi)時鐘的組合思路和設計技巧
我們都知道,當奇數(shù)個反相器串聯(lián)在一起,并且把最后一級的輸出反饋給第一級的輸入時,在邏輯上會產(chǎn)生震蕩,這樣的電路結(jié)構(gòu)通常被稱為Ring OSC。
本文引用地址:http://www.ex-cimer.com/article/201710/365725.htm那么在實際代碼設計中,如何操作才能產(chǎn)生上述的電路結(jié)構(gòu)呢?
我們先看第一種方法,盡管在ASIC設計中很常用,但是在FPGA設計中,一般是行不通的:
(1)第一種描述方法:
直接使用not語法對信號進行反向,并級聯(lián)
這種方式,用ISE或者Vivado綜合后,其實不會產(chǎn)生所需要的電路,因為從邏輯上講,5個反相器進行級聯(lián)其實和只是用1個反相器是等效的,所以綜合工具仍然會把他們優(yōu)化掉,即使對信號加了KEEP=true屬性!
第二種處理方式才會產(chǎn)生真正想要的結(jié)果:
(2)第二種描述方法:
使用LUT做反相器進行級聯(lián)
當然,通常的設計中,我們一般不會用到用這種方式產(chǎn)生的時鐘。本文僅僅給大家提供一種思路和設計技巧,在我們設計其它特殊電路時,也許可以作為參考。
評論