版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 FPGA邏輯設(shè)計(jì)邏輯設(shè)計(jì) 2 n邏輯設(shè)計(jì)是一種并行的思想,不同于軟件設(shè)計(jì); n同一時(shí)刻,有多個(gè)語句塊同時(shí)執(zhí)行; n邏輯設(shè)計(jì)者要明白寫的代碼將會(huì)綜合成什么電路; n邏輯設(shè)計(jì)分時(shí)序設(shè)計(jì)與算法設(shè)計(jì)兩部分; Action 3 主要內(nèi)容主要內(nèi)容 設(shè)計(jì)命名設(shè)計(jì)命名 主要內(nèi)容 設(shè)計(jì)技巧設(shè)計(jì)技巧 4 信號(hào)與變量信號(hào)與變量 n信號(hào)的縮寫 模塊設(shè)計(jì)過程中,為了避免各信號(hào)命名冗余過長,對(duì) 信號(hào)采取簡寫方式命名; 示例: reset_n簡寫為rst_n; clock_20m簡寫為clk_20m; write_enable 簡寫為wr_en; 常用的信號(hào)簡寫如表: 5 常用信號(hào)縮寫常用信號(hào)縮寫 信號(hào)名縮寫信號(hào)名縮寫
2、信號(hào)名縮寫 resetrstwritewremptyept clockclkreadrdalmostal enableencontrolctrlfrequencyfre datadataddressadrreceiverrx transmittertxmemorymemcomparecompa parallelparaserialserierrorerr countercntdelaydyinitialinit registerregbufferbufcurrentcurr switchswrequestreqacknowack temptmpcheckchksystemsys clearcl
3、rreadyrdyloadld 6 系統(tǒng)級(jí)信號(hào)系統(tǒng)級(jí)信號(hào) n系統(tǒng)級(jí)信號(hào) 系統(tǒng)級(jí)信號(hào)指復(fù)位信號(hào),置位信號(hào),時(shí)鐘信號(hào)等 需要輸送到各個(gè)模塊的全局信號(hào);系統(tǒng)信號(hào)以前 綴“sys_”開頭。 示例: sys_rst/系統(tǒng)復(fù)位信號(hào) sys_clk/系統(tǒng)時(shí)鐘 sys_set/系統(tǒng)置位信號(hào) 7 n低電平信號(hào) 是指低電平有效的信號(hào),加后綴“_n”; 示例: rst_n/代表低電平復(fù)位有效; en_n/代表低電平使能有效; n鎖存器鎖存信號(hào) 組合邏輯信號(hào)經(jīng)過鎖存器鎖存后的信號(hào),加后綴 “_r”,與鎖存前的信號(hào)相區(qū)分。 示例: wr_en 經(jīng)鎖存后,命名為:wr_en_r; 8 n多拍信號(hào) 為了考慮數(shù)據(jù)對(duì)齊或者同步
4、,需要對(duì)信號(hào)進(jìn)行多級(jí)鎖存延時(shí), 經(jīng)多級(jí)鎖存的信號(hào)可加后綴dx(x = 0,1,2,3)。 示例: mii_rx_en延時(shí)三拍的信號(hào),分別命名為: mii_rx_en_d0、mii_rx_en_d1、mii_rx_en_d2; n時(shí)鐘信號(hào) 為了體現(xiàn)時(shí)鐘的頻率、相位,對(duì)時(shí)鐘信號(hào)除了加前綴clk外, 還要加表標(biāo)示時(shí)鐘頻率及時(shí)鐘相位的后綴; 示例: 相位為90度的125MHz時(shí)鐘,命名為clk_125m_90; 對(duì)相位為0度的時(shí)鐘,可不加相位指示; 9 n跨時(shí)鐘域的同步信號(hào) 當(dāng)一個(gè)信號(hào)在一個(gè)時(shí)鐘域生成,進(jìn)入另一時(shí)鐘域 時(shí),需要對(duì)該信號(hào)進(jìn)行同步,同步的信號(hào)可加syn 前綴;必要時(shí)加同步前的時(shí)鐘做為后綴,
5、以表示 該信號(hào)來自哪個(gè)時(shí)鐘域; 示例: read_ip由50MHz的時(shí)鐘生成,進(jìn)入100MHz時(shí)鐘 域時(shí),經(jīng)同步后,命名為syn_read_ip;或者命名 為syn_read_ip_50m; 10 模塊說明格式模塊說明格式 n模塊說明格式 為了便于后期的維護(hù),對(duì)每個(gè)模塊需要進(jìn)行詳細(xì)的說明;可采用如下格式 : /*- - ZTE NetView -*/ /*- - Project : ETNMS - Module: frame_top.v - Description : the top module of Framer - Created Date: 2009-05-25 - Author :
6、CamelKing() - Department: Power else if(ld_en) data_out = data_in; else data_out = data_out + 1b1; end 12 n空格的使用(一) 不同變量,以及變量與符號(hào)、變量與括號(hào)之間都應(yīng)當(dāng)保留 一個(gè)空格; 例如:x = ( a = b ) ? 1b1 : 1b0 ; Verilog關(guān)鍵字與其它任何字符串之間都應(yīng)當(dāng)保留一個(gè)空格; 例如:always ( * ) 使用大括號(hào)和小括號(hào)時(shí),前括號(hào)的后邊和后括號(hào)的前邊應(yīng) 當(dāng)留有一個(gè)空格。邏輯運(yùn)算符、算術(shù)運(yùn)算符、比較運(yùn)算符等 運(yùn)算符的兩側(cè)各留一個(gè)空格,與變量分隔開來;
7、單操作數(shù)運(yùn) 算符例外,直接位于操作數(shù)前,不使用空格。 assign SramAddrBus = AddrBus31:24, AddrBus7:0 ; assign DivCntr3:0 = DivCntr3:0 + 4b0001; assign Result = Operand; 13 n語句塊的縮進(jìn) 不同層次之間的語句使用Tab鍵進(jìn)行縮進(jìn),每加深 一層縮進(jìn)一個(gè)Tab(建議一個(gè)Tab四個(gè)字符); n語句塊的注釋 在endmodule,endtask,endcase等標(biāo)記一個(gè)代 碼塊結(jié)束的關(guān)鍵詞后面要加上一行注釋說明這個(gè) 代碼塊的名稱; n大小寫 對(duì)所有的信號(hào)名、變量名和端口名都用小寫,這 樣做
8、是為了和業(yè)界的習(xí)慣保持一致;對(duì)常量名和 用戶定義的類型用大寫; 14 n模塊例化 在例化模塊時(shí),最好采用名字相關(guān)的顯式映射而不要采用位 置相關(guān)的隱式映射,提高代碼的可讀性和方便debug連線錯(cuò) 誤; 示例: mux4 uut ( .a(a), .b(b), .c(c), .d(d), .sel(sel), .y(y) ); 15 TB文件命名文件命名 n測試向量文件 為了與模塊文件區(qū)分,測試文件要加后綴tb; 比如: e1_framer的測試文件可命名為:e1_framer_tb; 16 n邏輯設(shè)計(jì)命名 n邏輯設(shè)計(jì)技巧邏輯設(shè)計(jì)技巧 17 邏輯設(shè)計(jì)技巧邏輯設(shè)計(jì)技巧 n阻塞與非阻塞賦值 區(qū)別 非阻
9、塞賦值(=)語句右端表達(dá)式計(jì)算完后并不立即賦值給 左端,而是同時(shí)啟動(dòng)下一條語句繼續(xù)執(zhí)行。可以理解為所有 的右端表達(dá)式RHS1、RHS2等在進(jìn)程開始時(shí)同時(shí)計(jì)算,計(jì) 算完后,等進(jìn)程結(jié)束時(shí)同時(shí)分別賦給左端變量LHS1、LHS2 等。 阻塞賦值(=)語句在每個(gè)右端表達(dá)式計(jì)算完后立即賦給左 端變量,即賦值語句LHS1=RHS1執(zhí)行完后LHS1是立即更新 的,同時(shí)只有LHS1=RHS1執(zhí)行 完后才可執(zhí)行語句 LHS2=RHS2,依次類推。前一條語句的執(zhí)行結(jié)果直接影響 到后面語句的執(zhí)行結(jié)果。 18 n阻塞與非阻塞賦值 使用建議 1,時(shí)序邏輯建模時(shí),使用“非阻塞賦值”; 2,為鎖存器(latch)建模,使用“
10、非阻塞賦值”; 3,用always塊為組合邏輯建模,使用“阻塞賦值”; 4,當(dāng)在同一個(gè)always塊里面既為組合邏輯又為時(shí)序 邏輯建模,使用“非阻塞賦值”;建議不要有這樣的語句 5,不要在同一個(gè)always塊混合使用“阻塞賦值”和“非阻塞賦 值”,編譯時(shí)通不過; 6,不要在兩個(gè)或兩個(gè)以上always塊里面對(duì)同一個(gè)變量進(jìn)行賦值, 編譯時(shí)通不過; 19 n信號(hào)延時(shí) 信號(hào)的延時(shí),強(qiáng)烈建議不要采用門電路延時(shí)來實(shí) 現(xiàn),不同工藝,不同廠家的器件門延時(shí)不一樣; 建議采用計(jì)數(shù)器或者移位寄存器來實(shí)現(xiàn); (Altera:LCELL) n避免子模塊內(nèi)部三態(tài)/內(nèi)部雙向IO 避免在子模塊內(nèi)部使用三態(tài)電路,否則會(huì)增加其
11、功耗,要把三態(tài)信號(hào)及使能信號(hào)引到頂層做三態(tài) 門處理; n避免子模塊內(nèi)部雙向IO 避免子模塊內(nèi)部采用雙向IO,最好把把雙向IO分 開為輸入,輸出口處理比較好; 20 nIf與case語句 1,if語句 if.else if . else 語句是有優(yōu)先級(jí)的,第一個(gè)if的優(yōu)先級(jí)最高, 最后一個(gè)else的優(yōu)先級(jí)最低。 2,case語句 case語句是“平行”的結(jié)構(gòu),所有的case的條件和執(zhí)行都沒 有“優(yōu)先級(jí)”。但casex、casez例處; 3,建議 a,能用case語句的地方最好采用case語句;避免消耗更多 的邏輯資源; b,if語句中,一定要有else語句,否則在組合邏輯設(shè)計(jì)中容 易綜合成鎖存器
12、(latch); c,case語句中,一定要有default項(xiàng),否則組合設(shè)計(jì)中,容 易綜合成鎖存器; 21 n信號(hào)敏感表 在verilog_97版本中,always ()的敏感表一 定要完善,否則邏輯綜合后,達(dá)不到預(yù)期的效果; 但在verilog_2001版本中,此問題可不予考慮,因 為采用always ( * )描述方式,軟件會(huì)自動(dòng)增加 敏感信號(hào); 因此建議采用verilog_2001版本描述邏輯; 22 n狀態(tài)編碼碼型實(shí)例 狀態(tài)機(jī)的一般設(shè)計(jì)原則,binary, gray-code 編碼 使用最少的觸發(fā)器,較多的組合邏輯。而one-hot 編碼反之。 CPLD多使用gray-code;FPG
13、A多使用one_hot編 碼。 小型設(shè)計(jì)使用gray和binary編碼更有效,而大型狀 態(tài)機(jī)使用ONE-HOT更有效; 在實(shí)際應(yīng)用中,沒有必要一定把某些狀態(tài)編碼強(qiáng) 行綜合為one-hot方式,軟件會(huì)根據(jù)狀態(tài)數(shù)量自動(dòng) 綜合為最佳方式; 23 n基本邏輯塊 xilinx的最小邏輯單元是slice,一個(gè)slice包含2個(gè) FF和2個(gè)LUT;4個(gè)slice組成一個(gè)CLB; altera的最小邏輯單元是LE,一個(gè)LE包含1個(gè)FF和 1個(gè)LUT;16個(gè)LE組成一個(gè)LAB; 24 n時(shí)鐘的使用時(shí)鐘分布 1,為時(shí)鐘信號(hào)選用全局時(shí)鐘緩沖器(BUFG),不選 用全局時(shí)鐘緩沖器的時(shí)鐘將會(huì)引入偏差; 2,只用一個(gè)時(shí)鐘
14、沿來寄存數(shù)據(jù);使用時(shí)鐘的兩個(gè) 沿不可靠,因?yàn)闀r(shí)鐘的某沿或者兩個(gè)沿會(huì)”偏 移”。如果只使用時(shí)鐘的一個(gè)沿,就會(huì)降低時(shí)鐘 邊沿偏移的風(fēng)險(xiǎn)。 可以使用CLKDLL 自動(dòng)糾正時(shí)鐘的占空比以達(dá)到 50%的占空比.否則,強(qiáng)烈建議只使用一個(gè)時(shí)鐘沿; 25 n時(shí)鐘如何上全局時(shí)鐘網(wǎng)? FPGA器件中有專門的快速時(shí)鐘走線,叫全局時(shí)鐘網(wǎng);上了 全局時(shí)鐘網(wǎng)的時(shí)鐘可稱為全局時(shí)鐘,在全局網(wǎng)上傳輸?shù)臅r(shí)鐘 抖動(dòng)(jitter)與偏斜(skew)最?。?altera器件 1,由FPGA時(shí)鐘引腳引入的外部時(shí)鐘,會(huì)自動(dòng)上全局時(shí)鐘網(wǎng); 2,FPGA內(nèi)部時(shí)鐘或者其它時(shí)鐘,可通過PLL/DPLL上全局時(shí) 鐘網(wǎng);或者通過global原語約束
15、上全局時(shí)鐘網(wǎng); 3,global原語 global instance_name (.in(),.out(); 4, 或者通過assignments editor中添加全局時(shí)鐘約束; 26 n時(shí)鐘如何上全局時(shí)鐘網(wǎng)? XILINX 1,從FPGA時(shí)鐘引腳引入的時(shí)鐘,可通過設(shè)置上全 局時(shí)鐘網(wǎng); 2,也可以通過BUFG、IBUFG、BUFGDS、DCM 上全局時(shí)鐘;草圖 27 n門控時(shí)鐘 (gate clock) 在FPGA內(nèi)部,內(nèi)部產(chǎn)生的時(shí)鐘叫門控時(shí)鐘;在高速數(shù)據(jù)設(shè) 計(jì)中,門控時(shí)鐘不能做為DFF/FF的時(shí)鐘輸入;因?yàn)殚T控時(shí) 鐘的jitter與skew都比較大,會(huì)造成數(shù)據(jù)誤采樣; 實(shí)際應(yīng)用中,可以把門
16、控時(shí)鐘做為時(shí)鐘使能的方式引入 DFF/FF的使能腳,并采用源時(shí)鐘做為DFF/FF的輸入時(shí)鐘; 草圖 n行波時(shí)鐘 (ripple clock) 由一個(gè)觸發(fā)器的輸出做為下一個(gè)觸發(fā)器的時(shí)鐘輸入;數(shù)字電 路課程中學(xué)過的異步計(jì)數(shù)器就是行波時(shí)鐘的方式; 行波時(shí)鐘的偏斜最大,每經(jīng)過一級(jí)FF,抖動(dòng)與偏斜越大,實(shí) 際中最好不采用; 28 n信號(hào)初始化 為考慮代碼的可移植性,可維護(hù)性,盡量不要使 用信號(hào)的默認(rèn)值(或初始值),要用復(fù)位來初始 化信號(hào)。 當(dāng)然,altera的某些器件本身支持上電初始化值, 具體可用initial定義; 但xilinx不支持;這就是完全OK的代碼完全移植到 不同芯片時(shí),工作不穩(wěn)定的原因;
17、 29 n驅(qū)動(dòng)能力 有些廠家的器件驅(qū)動(dòng)能力有限,過多的負(fù)載可能 導(dǎo)致邏輯工作不正常; a,F(xiàn)PGA雖然提供內(nèi)部上下拉機(jī)制,但電阻值有 限(幾十歐姆到幾千歐姆) ;采用內(nèi)部上拉時(shí),引 腳驅(qū)動(dòng)能力可能有限;建議使用外部上下拉。 b,內(nèi)部信號(hào)的驅(qū)動(dòng)能力,不同廠家各不同,在邏 輯設(shè)計(jì)中,采用冗余方式編寫代碼。比如altera的 一些低端器件可能存在此問題;xilinx不存在此問 題,軟件綜合時(shí),如果超過一定的扇出數(shù),會(huì)進(jìn) 行邏輯復(fù)制,增加信號(hào)的驅(qū)動(dòng)能力;草圖 30 n同步復(fù)位,異步復(fù)位 同步復(fù)位 同步復(fù)位就是指復(fù)位信號(hào)只有在時(shí)鐘上升沿到來時(shí),才能有 效。否則,無法完成對(duì)系統(tǒng)的復(fù)位工作。 always
18、(posedge clk) begin if(rst) y = 0; else y = d; end 31 n同步復(fù)位,異步復(fù)位 異步復(fù)位 指無論時(shí)鐘沿是否到來,只要復(fù)位信號(hào)有效,就對(duì)系 統(tǒng)進(jìn)行復(fù)位。 always (posedge clk or posedge rst) begin if(rst) y = 0; else y = d; end 32 n同步復(fù)位優(yōu)缺點(diǎn) 優(yōu) 可以使所設(shè)計(jì)的系統(tǒng)成為100%的同步時(shí)序電路,這便大大 有利于時(shí)序分析,而且綜合出來的fmax一般較高。 因只有在時(shí)鐘有效電平到來時(shí)才有效,可達(dá)到濾除毛刺的 目的。 缺 復(fù)位信號(hào)的有效時(shí)長必須大于一個(gè)或多個(gè)時(shí)鐘周期,才能 真
19、正被系統(tǒng)識(shí)別并完成復(fù)位任務(wù)。布局布線時(shí)還要考慮諸 如:clk skew,組合邏輯路徑延時(shí),復(fù)位延時(shí)等因素。否則 更可能出現(xiàn)復(fù)位異外;講述下PLL/DCM的同步復(fù)位不好 之處 一般FPGA器件結(jié)構(gòu)中DFF都只有異步復(fù)位端口。所以,如 果采用同步復(fù)位,綜合器會(huì)在DFF的復(fù)位端口前插入組合 邏輯,這樣會(huì)耗費(fèi)更多邏輯資源。 33 n異步復(fù)位優(yōu)缺點(diǎn) 優(yōu) 大多FPGA器件中DFF都有異步復(fù)位端口,因此 采用異步復(fù)位可以節(jié)省邏輯資源; 異步復(fù)位信號(hào)識(shí)別方便,可以很方便使用FPGA 的全局復(fù)位端口GSR; 缺 在復(fù)位信號(hào)釋放(release)的時(shí)候容易出現(xiàn)問題。 倘若復(fù)位釋放時(shí)恰恰在時(shí)鐘有效沿附近,就很容 易
20、使寄存器輸出出現(xiàn)亞穩(wěn)態(tài); 復(fù)位信號(hào)容易受到毛刺影響; 34 n異步復(fù)位,同步釋放 因異步復(fù)位容易受毛刺影響,采用“異步復(fù)位,同步釋放”的方式,可以 避免此問題; 給出實(shí)例 module Reset_Synchronizer ( output reg rst_n, input clk, input asyncrst_n ); reg rff1; always (posedge clk , negedge asyncrst_n) begin if (!asyncrst_n) rst_n,rff1 = 2b0; else rst_n,rff1 = rff1,1b1; end 35 n毛刺(glitc
21、h) 由于FPGA內(nèi)部存在線延時(shí),門延時(shí)等因素,同時(shí)受電壓, 溫度等的影響;信號(hào)的高低電平轉(zhuǎn)換需要一定的過渡時(shí)間; 因此在信號(hào)變化的瞬間,組合邏輯的輸出會(huì)有先后順序, 出現(xiàn)規(guī)則不一的脈沖,這種脈沖稱“毛刺”。 毛刺的影響 如果將帶有“毛刺”的信號(hào)引入觸發(fā)器的清零端、置位端, 可能因“毛刺”導(dǎo)致觸發(fā)器誤跳轉(zhuǎn),影響整個(gè)邏輯的正常工 作; 如何消除 1,“毛刺”電平很窄,當(dāng)不滿足DFF的建議保持時(shí)間時(shí), 可通過DFF來實(shí)現(xiàn)對(duì)毛刺的消除; 2,計(jì)數(shù)器采用gray碼計(jì)數(shù),gray碼每次只變化一位; 在實(shí)際的邏輯中,特別是高速設(shè)計(jì)中,對(duì)于任何組合邏輯產(chǎn) 生的控制信號(hào)(使能、清零、單脈沖等),建議后面加一級(jí)
22、 DFF來消除“毛刺”; 36 n“競爭”與“冒險(xiǎn)” 關(guān)于競爭冒險(xiǎn),有多種不同的定義,但大致的理解如下: 競爭由于FPGA內(nèi)部的各種不同的延時(shí),導(dǎo)致信號(hào)到達(dá) 門輸入口的先后時(shí)間不同; 冒險(xiǎn)由競爭引起門輸出錯(cuò)誤的瞬間叫冒險(xiǎn);主要表現(xiàn)為 門輸出有異常的脈沖出現(xiàn),這種脈沖叫毛刺; 靜態(tài)冒險(xiǎn)與動(dòng)態(tài)冒險(xiǎn) 靜態(tài)冒險(xiǎn)輸入信號(hào)變化前后,輸出的穩(wěn)態(tài)值是一樣的, 但在輸入信號(hào)變化時(shí),輸出信號(hào)產(chǎn)生毛刺的現(xiàn)象; 若輸出的穩(wěn)態(tài)值為0,出現(xiàn)了正的尖脈沖毛刺,稱為靜態(tài)0險(xiǎn) 象。若輸出穩(wěn)態(tài)值為1,出現(xiàn)了負(fù)的尖脈沖毛刺,則稱為靜 態(tài)1冒險(xiǎn)。 動(dòng)態(tài)冒險(xiǎn)輸入信號(hào)變化前后,輸出的穩(wěn)態(tài)值不同,并在 邊沿處出現(xiàn)了毛刺的現(xiàn)象; 37 n“
23、亞穩(wěn)態(tài)” FPGA中的觸發(fā)器FF,數(shù)據(jù)信號(hào)的過渡都要滿足 建立與保持時(shí)鐘,如果在不滿足建立與保持時(shí)間 情況下,對(duì)數(shù)據(jù)進(jìn)行采樣,就會(huì)導(dǎo)致采樣失誤, 采樣結(jié)果意外,這種現(xiàn)象叫亞穩(wěn)態(tài)。 經(jīng)過不同的時(shí)鐘域的信號(hào),由于時(shí)鐘頻率相位的 不同,很容易出現(xiàn)“亞穩(wěn)態(tài)”; n建立與保持時(shí)間草圖 時(shí)鐘沿到來前,數(shù)據(jù)必須保持的時(shí)間叫建立時(shí)間 (setup time); 時(shí)鐘沿過后,數(shù)據(jù)必須保持的時(shí)間叫保持時(shí)間 (hold time); 38 n跨時(shí)鐘域 信號(hào)處理草圖 在越來越復(fù)雜的大型FPGA邏輯設(shè)計(jì)中,時(shí)鐘不再 是單一的時(shí)鐘,而是有多個(gè)時(shí)鐘并存, 多個(gè)時(shí)鐘可能頻率不同,初始相位也不同;不同 的時(shí)鐘所驅(qū)動(dòng)的不同邏輯塊
24、,可稱做時(shí)鐘域。 跨時(shí)鐘域信號(hào)的影響 當(dāng)一個(gè)信號(hào)從一個(gè)時(shí)鐘穿越到另一個(gè)時(shí)鐘域是, 由于時(shí)鐘頻率/相位的不同,會(huì)造成建立保持時(shí)間 的不足,由此造成采樣時(shí)“亞穩(wěn)態(tài)”出現(xiàn),電路 不能正常工作; 39 n如果處理跨時(shí)鐘域的信號(hào)或數(shù)據(jù)? 1,對(duì)于慢時(shí)鐘到快時(shí)鐘的跨時(shí)鐘域的信號(hào),我們可以采用兩個(gè) 或者多個(gè)DFF級(jí)聯(lián)的方式來實(shí)現(xiàn)單一信號(hào)的同步;描述 2,但對(duì)于快時(shí)鐘到慢時(shí)鐘的信號(hào),由于快時(shí)鐘產(chǎn)生的信號(hào)可能 會(huì)引起慢時(shí)鐘的采樣失效,造成數(shù)據(jù)漏掉;因此要把快時(shí) 鐘的信號(hào)要擴(kuò)展,以達(dá)到慢時(shí)鐘的采樣周期; 實(shí)現(xiàn)應(yīng)用中,有兩種方式可實(shí)現(xiàn)快時(shí)鐘到慢時(shí)鐘信號(hào)的過 渡: a,擴(kuò)展快時(shí)鐘域的信號(hào)寬度,滿足慢時(shí)鐘的采樣要求,確
25、 保采樣時(shí)鐘能正確采樣; b,采樣結(jié)繩法(應(yīng)用高速設(shè)計(jì)中); 3,對(duì)于跨時(shí)鐘域的大流量數(shù)據(jù),可以采用DPRAM/ asyn FIFO來實(shí)現(xiàn)有效的時(shí)鐘隔離及數(shù)據(jù)通訊;細(xì)講一下 40 n邏輯復(fù)制(logic replicate) 考慮到邏輯門的扇出最大能力,在某些時(shí)候,需 要對(duì)邏輯功能塊通行復(fù)制,以此來提高對(duì)后級(jí)電 路的驅(qū)動(dòng)能力,使電路工作更可靠;草圖 在實(shí)際應(yīng)用中,如果有使能到邏輯復(fù)制邏輯復(fù)制,可以采 取兩種方式避免邏輯復(fù)制部分被優(yōu)化掉: 1,對(duì)需要保留邏輯復(fù)制的信號(hào)或模塊,采用HDL 約束方式; (* preserve *) ; (* preserve *) module (.); 2,關(guān)閉r
26、eplicate邏輯優(yōu)化選項(xiàng); 41 n邏輯重定時(shí)(logic retiming) 時(shí)序設(shè)計(jì)中,F(xiàn)F與FF之間的組合邏輯,可能因大 小不同,造成FF級(jí)聯(lián)之間的延時(shí)分配不同;為使 組合邏輯延時(shí)平衡,可采用retiming的技術(shù)來實(shí)現(xiàn); 草圖 實(shí)現(xiàn)應(yīng)用中,不用人為的去考慮此項(xiàng),一般可通 過軟件設(shè)置來要不要retiming技術(shù); xilinx的ISE 軟件中retiming分前向retiming與后面 retiming; 42 n模塊輸入輸出寄存 復(fù)雜的邏輯設(shè)計(jì)中,常對(duì)每個(gè)功能模塊的輸入輸出 都用FF打一拍,可以防止模塊與模塊之間的路徑成 為關(guān)鍵路徑(critical path),方便優(yōu)化;在層次打
27、平或 者保留時(shí),模塊與模塊之間的路徑就是FF與FF之間 路徑,接口信號(hào)可保留下來,方便調(diào)試; FFFF D D Q Q M1M2 43 nfull case/paralle case 1, full case是指編碼下的各種可能的條件項(xiàng) (包括default)都有對(duì)應(yīng)的輸出,沒有任何遺漏 項(xiàng); 2, paralle case是指編碼下的各種可能的條件 項(xiàng)與輸出項(xiàng)是一一對(duì)應(yīng)關(guān)系,不存在多個(gè)條件項(xiàng) 對(duì)應(yīng)一個(gè)輸出的情況;如果出現(xiàn)此情況,代碼很 可能會(huì)被綜合成具有優(yōu)先級(jí)的電路; 可通過軟件設(shè)置使用full case/paralle case;也可以 在HDL語言中加(* parallel_case *) 、(*full case*) 來約束; 44 n狀態(tài)機(jī) 類型 a,Moore Machine狀態(tài)輸出只與當(dāng)前的狀態(tài)有關(guān),與 輸入無關(guān); b,Mealy Machine狀態(tài)輸出不僅與當(dāng)前的狀態(tài)有關(guān),而 且與輸入有關(guān); 在實(shí)際應(yīng)用中,Mealy狀態(tài)機(jī)用得比較多; 一段式狀態(tài)機(jī) 一段式狀態(tài)機(jī)把所有狀態(tài)跳轉(zhuǎn)、狀態(tài)輸入、狀態(tài)輸出都放在 一個(gè)always
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度網(wǎng)絡(luò)安全咨詢與管理服務(wù)合同范本
- 2025版電子信息產(chǎn)業(yè)零配件綠色供應(yīng)鏈管理合同4篇
- 2025年度互聯(lián)網(wǎng)金融服務(wù)合同6篇
- 年度水解彈性蛋白產(chǎn)業(yè)分析報(bào)告
- 年度皮膚科醫(yī)院市場分析及競爭策略分析報(bào)告
- 2024-2025學(xué)年新教材高中政治第3單元經(jīng)濟(jì)全球化第7課第1框開放是當(dāng)代中國的鮮明標(biāo)識(shí)課時(shí)分層作業(yè)含解析新人教版選擇性必修1
- 何謂二零二五年度合同履行的擔(dān)保專項(xiàng)審計(jì)與報(bào)告合同3篇
- 二零二五版毛竹山承包及竹林農(nóng)業(yè)科技示范合同3篇
- 速寫線性課程設(shè)計(jì)
- 2024金融服務(wù)合同范本大全
- 河南省信陽市浉河區(qū)9校聯(lián)考2024-2025學(xué)年八年級(jí)上學(xué)期12月月考地理試題(含答案)
- 火災(zāi)安全教育觀后感
- 農(nóng)村自建房屋安全協(xié)議書
- 快速康復(fù)在骨科護(hù)理中的應(yīng)用
- 國民經(jīng)濟(jì)行業(yè)分類和代碼表(電子版)
- ICU患者外出檢查的護(hù)理
- 公司收購設(shè)備合同范例
- 廣東省潮州市2023-2024學(xué)年高二上學(xué)期語文期末考試試卷(含答案)
- 2024年光伏發(fā)電項(xiàng)目EPC總包合同
- 子女放棄房產(chǎn)繼承協(xié)議書
- 氧化還原反應(yīng)配平專項(xiàng)訓(xùn)練
評(píng)論
0/150
提交評(píng)論