采用IDDR的亞穩(wěn)態(tài)問題解決方案
只需少量代碼
在《Virtex-4用戶指南》的328~329頁,舉例說明采用VHDL和Verilog語言編寫的IDDR原語的例化。以下采用Verilog語言的IDDR原碼例化的典型實(shí)例:
defparam IDDR_INT2.DDR_CLK_EDGE = SAME_EDGE_PIPELINED;
defparam IDDR_INT2.INIT_Q1 = 1'b1;
defparam IDDR_INT2.INIT_Q2 = 1'b1;
defparam IDDR_INT2.SRTYPE = SYNC;
IDDR IDDR_INT2( .Q1(sync_data),
.Q2(signal_noload), .C(CLK_2X),
.CE(1'b1), .D(async_data),.R(), .S());
在圖3中看到全新的布局圖。 用這種方法將寄存器鏈放置在兩個(gè)單元:前兩個(gè)寄存器放置在ILOGIC單元中,另一個(gè)寄存器則放置在SLICE單元中(這里選擇的鏈具有3個(gè)寄存器和2個(gè)不同的時(shí)鐘,其中一個(gè)時(shí)鐘速度是另一個(gè)的兩倍)。
圖3 顯示IDDR替代的同步器鏈
整體而言,亞穩(wěn)態(tài)問題會(huì)給設(shè)計(jì)帶來不便,但采用一些快速便捷的解決方案(如以一種新的方式使用IDDR原語)就能大幅降低設(shè)計(jì)發(fā)生亞穩(wěn)態(tài)問題的幾率。大家應(yīng)在創(chuàng)建設(shè)計(jì)時(shí)就采用上述方法,而不應(yīng)事后亡羊補(bǔ)牢,這樣就能創(chuàng)建出既能靈活應(yīng)對(duì)亞穩(wěn)性問題,而且所占面積、性能和成本又得到優(yōu)化的架構(gòu)。
評(píng)論