第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

請問VHDL中的過程是可重入的嗎?

請問VHDL中的過程是可重入的嗎?

有只小跳蛙 2019-11-06 09:05:15
VHDL中的過程是可重入的嗎?中的進(jìn)程是否可能連續(xù)運(yùn)行兩次或更多次。VHDL?如果在進(jìn)程的順序執(zhí)行未完成時(shí)發(fā)生另一個(gè)事件(在敏感信號(hào)列表上),會(huì)發(fā)生什么情況?是可能的還是我的VHDL模型中的過程是完全錯(cuò)誤的嗎?
查看完整描述

3 回答

?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

進(jìn)程運(yùn)行時(shí)不會(huì)發(fā)生任何事件!

當(dāng)一個(gè)進(jìn)程被事件喚醒時(shí),它會(huì)運(yùn)行到完成(“結(jié)束進(jìn)程”)或顯式的“等待”語句,然后進(jìn)入休眠狀態(tài)。從理論上講,這需要零時(shí)間。這意味著,如果您在流程中有循環(huán),它們實(shí)際上是完全展開的,當(dāng)您進(jìn)行綜合時(shí),您將生成足夠多的硬件來并行運(yùn)行每一個(gè)迭代。此外,任何過程、函數(shù)等都不需要任何時(shí)間-除非它們包含一個(gè)顯式的“等待”語句(在這種情況下,進(jìn)程在“等待”處掛起,就好像該過程是內(nèi)聯(lián)的)。

在整個(gè)過程中,所有信號(hào)都具有它們在進(jìn)程醒來時(shí)的原始值,并且任何信號(hào)分配都會(huì)被存儲(chǔ)起來,以后才會(huì)發(fā)生。(變量立即更新;流程中稍后的語句見新值)。

當(dāng)進(jìn)程掛起(在“等待”或“結(jié)束進(jìn)程”)時(shí),在所有其他進(jìn)程也暫停之前什么都不會(huì)發(fā)生。(但請記住,他們都不需要任何時(shí)間!)如果一個(gè)進(jìn)程在“結(jié)束進(jìn)程”處掛起,當(dāng)它的敏感性列表喚醒它時(shí),它將從一開始就重新啟動(dòng)。如果它在顯式“等待”處掛起,則“等待”將指定一個(gè)事件或未來時(shí)間,該事件或時(shí)間將在“等待”之后重新啟動(dòng)。(注意:1:不要將敏感列表和等待樣式混合在同一個(gè)進(jìn)程中!2:等待某個(gè)事件可以合成(盡管有些工具可能反對);等待一段時(shí)間才是模擬)

然后執(zhí)行所有的信號(hào)分配。由于所有進(jìn)程都處于休眠狀態(tài),這消除了所有競賽條件和計(jì)時(shí)風(fēng)險(xiǎn)。其中一些分配(比如“1”到一個(gè)時(shí)鐘)將導(dǎo)致事件被安排在對它們敏感的進(jìn)程上。

在完成所有信號(hào)分配之后,時(shí)間向前邁進(jìn)一個(gè)無限短的滴答(稱為增量周期),然后所有計(jì)劃事件的進(jìn)程都會(huì)被喚醒。

這種情況一直持續(xù)到增量周期發(fā)生,在這種循環(huán)中沒有新事件被調(diào)度,最后模擬可以一個(gè)實(shí)時(shí)步驟向前推進(jìn)。

因此

process(clk)beginif rising_edge(clk) then
   A <= B;
   B <= A;end if;end process;

在VHDL中是無危害的。

如果您需要使用Verilog,請注意,在那里發(fā)生的某些事情是不同的,而且您不能在仿真結(jié)果中依賴相同級(jí)別的可預(yù)測性。


在綜合中,當(dāng)然,我們生成硬件,這將需要一些時(shí)間來執(zhí)行這個(gè)過程。然而,綜合和后端工具(地點(diǎn)和路線)保證要么忠實(shí)地遵守這個(gè)模型,要么失敗并報(bào)告失敗的原因。例如,它們將所有實(shí)際延遲加在一起,并驗(yàn)證該總和小于指定的時(shí)鐘周期。(除非你把時(shí)鐘速度調(diào)得太高了!)

因此,結(jié)果是,只要工具報(bào)告成功(并且您正在正確設(shè)置時(shí)鐘速度等定時(shí)約束),您就可以假裝上述“零時(shí)間”模型是正確的,并且真實(shí)的硬件行為將與仿真相匹配。保證,禁止工具錯(cuò)誤!



查看完整回答
反對 回復(fù) 2019-11-07
?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

在開始使用VHDL(或其他任何HDL)時(shí),非常重要的是要拋棄順序代碼的所有概念,而要專注于通過硬件的數(shù)據(jù)流。在硬件中,所有東西本質(zhì)上都是并行的(一切同時(shí)發(fā)生),但是使用不斷變化的數(shù)據(jù)(輸入信號(hào))來計(jì)算不斷變化的結(jié)果(輸出信號(hào))!

如果不深入到諸如變量、等待命令等更高級(jí)的主題,進(jìn)程中的所有內(nèi)容都會(huì)同時(shí)發(fā)生。如果在同一進(jìn)程中發(fā)生沖突的事情(對同一信號(hào)多次寫入),則流程中的最后一條語句將獲勝,這通常是VHDL中關(guān)于“順序”代碼的混淆的地方。

這是由于將值分配給信號(hào)的方式而產(chǎn)生的。當(dāng)給信號(hào)賦值時(shí),信號(hào)的值不會(huì)立即改變!相反,賦值將被記住,并將在以后作為實(shí)際信號(hào)值提交(為下一個(gè)δ周期做準(zhǔn)備,這實(shí)際上是下一個(gè)時(shí)間量程)。

由于下一個(gè)增量周期將在上一個(gè)增量周期的所有進(jìn)程完成后才開始,因此信號(hào)值只有在沒有進(jìn)程運(yùn)行時(shí)才會(huì)更改。一旦所有信號(hào)都改變了,下一個(gè)增量循環(huán)就開始了,任何對一個(gè)變化信號(hào)敏感的進(jìn)程都將被執(zhí)行。

如果一個(gè)進(jìn)程對它所寫的信號(hào)很敏感,你就有一個(gè)所謂的組合回路,例如,輸出輸入的一個(gè)門。這幾乎總是你的電路中的一個(gè)錯(cuò)誤,并且通常會(huì)導(dǎo)致模擬器進(jìn)入無限的三角循環(huán)。

這就是我現(xiàn)在要寫的全部內(nèi)容,因?yàn)锽rianDrummond的回答只是在我寫這篇文章的時(shí)候彈出來的,但是請盡管留下評論,我會(huì)添加一些更多的細(xì)節(jié)。



查看完整回答
反對 回復(fù) 2019-11-07
  • 3 回答
  • 0 關(guān)注
  • 367 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)