www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > > FPGA開源工作室

1. 前言

在數(shù)字電路課程中,老師在講組合邏輯的時(shí)候,一般都會(huì)講競(jìng)爭(zhēng)與冒險(xiǎn)。sky當(dāng)時(shí)也聽的云里霧里,沒(méi)有想清楚如下問(wèn)題:

1) 競(jìng)爭(zhēng)與冒險(xiǎn)究竟是什么東西?有啥物理現(xiàn)象?

2) 在數(shù)字電路設(shè)計(jì)中,什么時(shí)候需要關(guān)心(分析)競(jìng)爭(zhēng)與冒險(xiǎn)?

3) 如何避免競(jìng)爭(zhēng)與冒險(xiǎn)導(dǎo)致的問(wèn)題呢?

經(jīng)過(guò)多年實(shí)際工作的實(shí)踐與理解,在此文略作分析。

2. 競(jìng)爭(zhēng)與冒險(xiǎn)的產(chǎn)生

在數(shù)字電路中,調(diào)用一個(gè)AND gate,用verilog可以如下描述:

assign out = in0 & in1;

其綜合后對(duì)應(yīng)的電路與波形如下:

如果in0/in1分別有1-->0/0-->1的變化,如果同時(shí)滿足如下兩個(gè)條件:

1) in0/in1同時(shí)變化;

2) 從in0/in1的driver到AND gate的delay絕對(duì)匹配;

則,AND gate的輸出端不會(huì)有毛刺,一直穩(wěn)定的輸出logic 0。

但是在實(shí)際電路中,經(jīng)過(guò)place & route后,如上兩個(gè)條件基本不能滿足。抽象簡(jiǎn)化后,實(shí)際電路和波形如下:

可以看到,由于in0/in1到AND gate輸入pin上delay的不匹配,導(dǎo)致AND的輸出out出現(xiàn)一個(gè)logic 1的小脈沖,一般也叫毛刺(glitch)。

對(duì)于一個(gè)簡(jiǎn)單的AND gate,就會(huì)產(chǎn)生毛刺;那么對(duì)于一個(gè)更復(fù)雜的電路,比如:加法器,乘法器,glitch更是起起伏伏,直到一定的時(shí)間后,才會(huì)輸出穩(wěn)定的值。

這就是信號(hào)的競(jìng)爭(zhēng)與冒險(xiǎn):邏輯上(真值表)輸入的變化本來(lái)不會(huì)導(dǎo)致組合邏輯輸出的變化;但是因?yàn)樵谳斎脒壿媑ate的PIN上,輸入信號(hào)變化時(shí)間上的差異,導(dǎo)致組合邏輯的輸出端產(chǎn)生一些不必要的0-->1/1-->0變化,出現(xiàn)glitch。

3. 競(jìng)爭(zhēng)與冒險(xiǎn)分析

A. 對(duì)于同步電路(比如DFF的clk是同一個(gè)信號(hào)),我們需要分析(關(guān)心)競(jìng)爭(zhēng)與冒險(xiǎn)嗎?

答案是不需要。

在實(shí)際同步數(shù)字電路中,組合邏輯通常伴隨時(shí)序邏輯(DFF等),其結(jié)構(gòu)如下圖:

因?yàn)樵谕诫娐分校覀儠?huì)做STA時(shí)序分析,計(jì)算每條path的delay(如上圖綠色線)。AND gate在各條path的最大delay后,out PIN上的信號(hào)是穩(wěn)定不變的。再分析后級(jí)DFF是否滿足setup/hold timing需求,則后級(jí)DFF一定采樣到out PIN上穩(wěn)定的輸出值,而非中間的glitch。也就是說(shuō):在同步電路中,我們利用STA分析,已經(jīng)把out PIN產(chǎn)生glitch的期間給濾除(mask)掉了;只要后級(jí)DFF的setup/hold timing分析pass,則后級(jí)DFF肯定采樣到正確的邏輯計(jì)算值,不會(huì)采樣到毛刺。

B. 對(duì)于異步電路(比如DFF的clk不是同一個(gè)信號(hào)),我們需要分析(關(guān)心)競(jìng)爭(zhēng)與冒險(xiǎn)嗎?

答案是需要。

在實(shí)際異步數(shù)字電路中,組合邏輯也通常伴隨時(shí)序邏輯(DFF等),其結(jié)構(gòu)如下圖:

在異步電路中,我們?cè)谧鯯TA時(shí)序分析,會(huì)有困難。雖然我們?nèi)匀荒軠?zhǔn)確計(jì)算每條path的delay(如上圖綠色線),但是我們無(wú)法預(yù)知clk0/clk1的相位(phase)關(guān)系,導(dǎo)致無(wú)法分析后級(jí)DFF的setup/hold time,即:我準(zhǔn)確計(jì)算out PIN在glitch產(chǎn)生期間是否會(huì)有clk1的上升沿。在工程實(shí)踐中,一般是設(shè)置:set_flase_path -from clk0 -to clk1。這樣,后級(jí)DFF(圖中橙色DFF)可能會(huì)采樣到毛刺。

這時(shí),我們就得關(guān)心glitch了,即競(jìng)爭(zhēng)與冒險(xiǎn)。

不是說(shuō)了不能計(jì)算了嗎?那怎么“關(guān)心”呢?

既然不能計(jì)算,就從電路結(jié)構(gòu)上解決問(wèn)題:


通過(guò)增加一個(gè)clk0 domain的DFF,讓clk0-->clk1的數(shù)據(jù)交互是DFF輸出,是不是就肯定不會(huì)有g(shù)litch啦 ^_^?!皁ut_reg”PIN是DFF輸出,不會(huì)有g(shù)litch的。

啊,講到這兒,是否突然明白,老師講:跨時(shí)鐘域時(shí),信號(hào)一定要DFF的Q端直接輸出。

C. 還有哪兒需要分析(關(guān)心)競(jìng)爭(zhēng)與冒險(xiǎn)嗎?

當(dāng)然是有的。

比如:chip IO上的異步信號(hào)。比如IIC接口的SCL/SDA。這2信號(hào)在chip輸出時(shí),是不是應(yīng)該(必須)用DFF輸出呢?不能搞組合邏輯輸出,否則接收方chip可能看到SCL上的glitch,導(dǎo)致功能錯(cuò)誤。

4. 總結(jié)

綜上:

1) 在同步電路中,我們并不關(guān)心競(jìng)爭(zhēng)與冒險(xiǎn),因?yàn)橛蠸TA做保障;

2) 在異步電路中,我們關(guān)心競(jìng)爭(zhēng)與冒險(xiǎn)(從電路結(jié)構(gòu)解決問(wèn)題),因?yàn)闆](méi)有STA做保障;

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉