簡(jiǎn)而言之,DFF的復(fù)位置位信號(hào)不要在clk的跳變沿附近變化,而是要遠(yuǎn)離clk沿。
一般邏輯對(duì)此時(shí)序不用關(guān)心,比如很多模塊的操作流程是復(fù)位完了,才開啟模塊時(shí)鐘,再啟動(dòng)模塊工作。這種流程可以保證不會(huì)出現(xiàn)recovery和removal的問題,因?yàn)閺?fù)位置起撤銷時(shí)都沒有時(shí)鐘;即使操作流程保證不了,出現(xiàn)recovery和removal違例,由于模塊此時(shí)都不會(huì)工作,也沒什么問題。
需要關(guān)心recovery和removal問題的最常見模塊應(yīng)該是CPU,因?yàn)橐话鉉PU是在復(fù)位撤銷后就開始工作。想象一下,CPU的工作其實(shí)是在很多個(gè)DFF一起配合完成的,如果復(fù)位撤銷時(shí)刻在DFF的clock沿附近,勢(shì)必導(dǎo)致各個(gè)DFF開始動(dòng)作的步調(diào)不一致,導(dǎo)致無法預(yù)料的錯(cuò)誤情形。
處理辦法就是講需要考慮recovery和removal問題模塊的復(fù)位信號(hào),用模塊的工作時(shí)鐘同步后,再送進(jìn)模塊使用。這樣PR工具是會(huì)自動(dòng)檢查這個(gè)模塊的DFF的時(shí)序并修正,直到?jīng)]有recovery和removal的violation。對(duì)于其他沒有要求的模塊復(fù)位信號(hào),設(shè)置false path不去檢查這個(gè)時(shí)序即可。
聯(lián)系客服