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

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]1、狀態(tài)機(jī)的問題,盡量不要寫出太大的狀態(tài)機(jī),寧愿用一些小型的狀態(tài)機(jī)來相互關(guān)聯(lián)。2、推薦大家使用timequest來做時(shí)序約束,好處是,它可能對(duì)你的時(shí)序約束和你的設(shè)計(jì)對(duì)照做分析,在做時(shí)序分析之前,先對(duì)你的約束做分析

1、狀態(tài)機(jī)的問題,盡量不要寫出太大的狀態(tài)機(jī),寧愿用一些小型的狀態(tài)機(jī)來相互關(guān)聯(lián)。

2、推薦大家使用timequest來做時(shí)序約束,好處是,它可能對(duì)你的時(shí)序約束和你的設(shè)計(jì)對(duì)照做分析,在做時(shí)序分析之前,先對(duì)你的約束做分析,然后告訴你,你有多少該做的事情而沒有做的(為被約束的路徑)還有多少你要求做的,而沒有被做的(被忽略的時(shí)序要求)。

3、對(duì)時(shí)鐘的約束,要重點(diǎn)關(guān)注兩個(gè)現(xiàn)象。首先是盡量少的在時(shí)鐘路徑上引入邏輯,否則可能造成了時(shí)鐘和時(shí)鐘之間的skew。另外就是一種上下沿都需要用來采集數(shù)據(jù)的時(shí)鐘。對(duì)于時(shí)鐘的約束有很多的地方需要注意,否則你的電路都不知道會(huì)飛到哪里去。

4、約束中最重要的一個(gè)關(guān)鍵,不要過約束。過約束的壞處一大堆,增加編譯時(shí)間,資源使用過度,導(dǎo)致其他的時(shí)序問題。如果你對(duì)自己的約束有些不太放心,又或者說可能器件和器件之間會(huì)有很細(xì)微的差別,你可以給約束做一些余量,但是過約束是萬萬要不得的。

5、IP的作用就是為了完成一個(gè)特定的功能,所以我們并不需要知道它是如何實(shí)現(xiàn)的。作為一個(gè)IP,最重要的,其實(shí)是接口,因?yàn)槟阕钪匾氖切枰朗窃趺醋屗ぷ髌饋?,而不是它怎么工作的。所以在看文檔的時(shí)候,最主要看的就是接口信號(hào),對(duì)所有的信號(hào)的作用有一個(gè)了解。例如,NiosII CPU作為一個(gè)比較大型的模塊,使用的是Avalon MM 點(diǎn)對(duì)點(diǎn)接口,它與普通的PCI接口不同的地方是,他可以支持同時(shí)多線控制。因?yàn)樗鼪]有總線的概念,不會(huì)在總線被占據(jù)的時(shí)候,其他任何通訊都無法進(jìn)行。NiosII是在SOPC builder 中被直接使用的,我們不需要知道具體有哪些信號(hào),因?yàn)闆]有非常需要,我們是看不到這些接口的。在NiosII中,我們有兩個(gè)Master Avalon MM 接口,一個(gè)是Instruction Master Port, 這是CPU用來讀取指令的接口。CPU通過這個(gè)端口從Memory上讀取指令。另一個(gè)是Data master port, 很簡單,這是用來連接數(shù)據(jù)通道的。比如說你要讀取的數(shù)據(jù),你要存儲(chǔ)的數(shù)據(jù),都是走這個(gè)通道。這兩個(gè)端口可以連接同一個(gè)內(nèi)存,在這種時(shí)候需要特別小心,很有可能自己把自己的指令給改掉了。但是反過來思考一下,其實(shí)我們可以做什么?可以按照狀況改變軟件代碼。NiosII中還有第三個(gè)端口,這是用來做Debug用的端口。還有其他的一些接口,比如TCM接口。我們需要知道這些接口的存在,但是不需要知道細(xì)節(jié),只有在用到的時(shí)候再去看相關(guān)的文檔就好了。

6、作為系統(tǒng)設(shè)計(jì),是需要有一種粗曠型的大氣魄,不需要在細(xì)節(jié)上浪費(fèi)時(shí)間。你會(huì)發(fā)現(xiàn)很多的細(xì)節(jié)是沒有意義的。并不是說我們不需要去研究細(xì)節(jié),細(xì)節(jié)是很重要的,但是細(xì)節(jié)需要在被用到的時(shí)候才去關(guān)注就好了。

7、在使用IP的時(shí)候,會(huì)遭遇到意想不到的痛苦的。所以,盡量不要依靠假設(shè)來臆想了模塊的設(shè)置。而是盡量的適應(yīng)環(huán)境,來配置自己的設(shè)計(jì)。作為一個(gè)FPGA的玩家,這種依照環(huán)境來改變的能力是必須的。

8、考慮Cashes的設(shè)置,Cash 有兩種,一種是用來做指令緩存的,一種是用來做數(shù)據(jù)緩存的。Cash的大小對(duì)程序的運(yùn)行速度是有影響的。當(dāng)然也沒必要使用過多的資源。夠用就好了。

9、自定義指令設(shè)置。這是最有價(jià)值的設(shè)置。所謂自定義指令,并不是一個(gè)軟件宏或者函數(shù)。而是一塊硬件。當(dāng)CPU調(diào)用到這個(gè)指令的時(shí)候,事實(shí)上它調(diào)用的就是這個(gè)硬件模塊,它被嵌入在CPU中。而這其實(shí)就是NiosII好玩的地方。

10、SOPC builder是QuartusII中用來建立,開發(fā),維護(hù)系統(tǒng)的平臺(tái)。雖然很多時(shí)候我們用它作為NiosII的一個(gè)嵌入式系統(tǒng)的開發(fā)環(huán)境,但我不要把思路只是局限在NiosII上面。它將成為一個(gè)包容全部系統(tǒng)內(nèi)容的一個(gè)平臺(tái)。

11、Avalon接口分成兩種,一種是Avalon-MM接口,另一種是Avalon-ST 接口。MM接口,是通過地址來讀寫數(shù)據(jù),更多的是用在控制邏輯上面。ST接口是用于點(diǎn)到點(diǎn)的流數(shù)據(jù)接口,更多的可以用在有高速通過率的模塊中間。這兩個(gè)接口本身并沒有矛盾,不是說勢(shì)不兩立的,一個(gè)模塊中既可以有MM接口,甚至幾個(gè)MM接口,也可以同時(shí)存在ST接口。作為一個(gè)點(diǎn)對(duì)點(diǎn)的接口定義,Avalon可以做到高效的接口效果。這與PCI之類的總線接口是有本質(zhì)區(qū)別的。PCI總線可以看作是鐵路軌道,當(dāng)一個(gè)火車在軌道上行駛的時(shí)候,就不可以有另一個(gè)火車同時(shí)使用軌道。Avalon接口更多好像高速公路,車輛可以雙向行駛。

12、作為FPGA設(shè)計(jì)中比較獨(dú)特的一個(gè)原則就是,這個(gè)世界不是你創(chuàng)造的,所以你必須去適應(yīng)它,而不是頑固自己的意圖。

13、在FPGA中,除了門與門之間的延遲是固定的(時(shí)鐘頻率)外,一切的組合電路的延遲都是不確定的。記住這樣一個(gè)規(guī)律就好了,凡是沒有被門關(guān)過的信號(hào)都是不穩(wěn)定的,都只是暫時(shí)的。

14、在生成新的再生門(一些邏輯的結(jié)果作為時(shí)鐘去驅(qū)動(dòng)一個(gè)門,我們且管他叫作再生門吧)之前,你最好把這個(gè)時(shí)鐘信號(hào)用原來的那種門在關(guān)一下。這樣你獲得的會(huì)是一個(gè)干凈的,純粹的時(shí)鐘信號(hào)。

15、針對(duì)新的一些器件,器件本身可以提供一些時(shí)鐘控制模塊,當(dāng)你需要使用門鎖(gated lock)的時(shí)候,盡量的使用這些模塊,會(huì)讓你的時(shí)鐘變得安全(clock control block)。

16、如果你不得不使用邏輯電路來鎖門,而你的器件又沒有特定的模塊。那么最好的情況就是,你可以先用那個(gè)時(shí)鐘,把你的門鎖信號(hào)關(guān)一下。這樣的好處就是可以把毛刺信號(hào)完全的規(guī)避在門外面,使你的時(shí)鐘更加安全。

17、上電初始值

在通常的狀況下,所有的門在上電的時(shí)候輸出為低。但是這并不是不能改變的。你可以把上電設(shè)置為高,這樣綜合工具可能會(huì)做兩種事情,把輸出反向,或者使用preset控制(如果存在的話)把初始值放進(jìn)門里。

當(dāng)時(shí)上電為高的做法,并不是非常必要,因?yàn)槟闫鋵?shí)是可以使用復(fù)位信號(hào)來獲得你想要的初始狀態(tài)的。如果你覺得這是必須的,那么有幾種方法你可以做:

首先是在QuartusII里面你可以針對(duì)某個(gè)或者某些門設(shè)置power-up level為高或低。

在代碼中使用altera_attribute

直接寫代碼設(shè)置初始值:reg q = 1'b1;

always @ (posedge clk or posedge aclr)

begin

if (aclr)

q <= 1'b0;

elseq <= d;

end

18、門的次級(jí)管理信號(hào),按照優(yōu)先級(jí)排列一下:

1.異步清零信號(hào) – aclr

2.上電復(fù)位信號(hào), - pre

3.異步載入信號(hào) – aload

4.使能信號(hào) – ena

5.同步清零信號(hào) – sclr

6.同步載入信號(hào) – sload

7.數(shù)據(jù)輸入信號(hào) – data

19、在FPGA設(shè)計(jì)中,只有在輸入輸出上可以使用雙向信號(hào),雙向信號(hào)是不能使用在內(nèi)部邏輯上的。一定不要用這種信號(hào),否則工具會(huì)綜合出一個(gè)你都不知道會(huì)是什么東西的東西。針對(duì)一個(gè)雙向端口,你需要把它變成一個(gè)輸入信號(hào) in,一個(gè)輸出信號(hào):out, 和一個(gè)輸出使能信號(hào): output_enable. 所以代碼其實(shí)很簡單:

Assign birsignal = output_enable ? out: 1’bz;

Assign in = birsignal

這里有一個(gè)小小的提示,在寫代碼的時(shí)候突然不太清楚語法怎么寫的時(shí)候,你可以在quartus里面按一下右鍵,你可以發(fā)現(xiàn)一個(gè)insert template&hellip;的選擇。試試看吧。

20、狀態(tài)機(jī)是設(shè)計(jì)過程中的核心部分,所以我們需要特別的提一下寫狀態(tài)機(jī)的一些注意事項(xiàng)。為了實(shí)現(xiàn)利益最大化,建議在FPGA中使用one hot 模式的狀態(tài)機(jī),而在CPLD中使用最少比特?cái)?shù)的狀態(tài)機(jī)。在具體的設(shè)計(jì)中需要注意的是:

1、把狀態(tài)機(jī)寫全,也就是說不要漏寫了 Default:。沒有這個(gè)首先會(huì)出現(xiàn)什么?對(duì)了,會(huì)有假門(latch)。

2、狀態(tài)機(jī)作為控制核心部分,盡量把它和算法功能和數(shù)據(jù)分離開來。好像你看到好的流水線,控制流水線的電腦和流水線本身是分開的。這樣可以保持相對(duì)的獨(dú)立性。

3、如果一種操作設(shè)計(jì)到幾個(gè)狀態(tài),盡量把操作剝離狀態(tài)機(jī)本身。

4、使用一個(gè)簡單的復(fù)位信號(hào)來定義上電狀態(tài)。如果你的狀態(tài)機(jī)會(huì)被比較多的復(fù)位信號(hào)復(fù)位的話,工具就不會(huì)把它當(dāng)作狀態(tài)機(jī)來對(duì)待??傊?,盡量的保持狀態(tài)機(jī)的很傻很單純是很重要的。盡量的不要加重核心部分的復(fù)雜性。其實(shí)道理很簡單,好比在一個(gè)公司里面,真正在工作的,其實(shí)一定不是一個(gè)這個(gè)公司的核心。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

 米蘭諾維奇博士提出"語言能力雙軌進(jìn)化論",動(dòng)態(tài)命題技術(shù)破解安全性困局 貴陽2025年7月23日 /美通社/ -- 7月22日,在第八屆英語教學(xué)與測評(píng)學(xué)術(shù)研討會(huì)上,國際語言測評(píng)權(quán)威專家、朗...

關(guān)鍵字: AI 人工智能 指令 研討會(huì)

在嵌入式系統(tǒng)與底層軟件開發(fā)中,C語言的枚舉類型(enum)因其強(qiáng)大的語義表達(dá)能力,成為狀態(tài)機(jī)設(shè)計(jì)和位域操作的核心工具。本文將從底層原理出發(fā),解析枚舉類型在狀態(tài)機(jī)實(shí)現(xiàn)中的優(yōu)化策略,并探討其與位域(bit-field)的協(xié)同...

關(guān)鍵字: C語言 嵌入式系統(tǒng) 狀態(tài)機(jī)

北京 2025年7月14日 /美通社/ -- 近日,主線科技為廣州港設(shè)備自動(dòng)化改造示范區(qū)項(xiàng)目圓滿完成了純電集卡的自動(dòng)駕駛技術(shù)升級(jí),并將其商業(yè)化交付,助力項(xiàng)目順利邁入"前沿設(shè)備遠(yuǎn)控半自動(dòng)+堆場設(shè)備全自動(dòng)+水平運(yùn)...

關(guān)鍵字: 智能化 自動(dòng)化 線控 指令

廣州 2025年7月4日 /美通社/ -- 日前,在德國慕尼黑機(jī)器人及自動(dòng)化技術(shù)展覽會(huì)(Automatica)期間,國際獨(dú)立第三方檢測、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國萊茵TÜ...

關(guān)鍵字: 自動(dòng)化 CE 工業(yè)機(jī)器 指令

廣州 2025年7月4日 /美通社/ -- 日前,在德國慕尼黑機(jī)器人及自動(dòng)化技術(shù)展覽會(huì)(Automatica)期間,國際獨(dú)立第三方檢測、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國萊茵TÜV大中華區(qū)(簡稱"T...

關(guān)鍵字: 指令 電磁兼容 協(xié)作機(jī)器人 AN

在SIP終端在同一個(gè)函數(shù)中同時(shí)作為主叫方和被叫方的情況。即在RequestINVITE函數(shù)中,這個(gè)SIP終端需要能夠構(gòu)造INVITE請(qǐng)求(作為主叫方),同時(shí)還需要處理作為被叫方時(shí)的各種響應(yīng),比如發(fā)送100 Trying、...

關(guān)鍵字: INVITE 狀態(tài)機(jī)

上海 2025年5月15日 /美通社/ -- 5月12日,國際獨(dú)立第三方檢測、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國萊茵TÜV大中華區(qū)(簡稱"TÜV萊茵"...

關(guān)鍵字: 機(jī)器人 CE 指令 軟硬件

但是,該項(xiàng)目需要使用信號(hào)發(fā)生器等形式的外部硬件。我認(rèn)為創(chuàng)建一個(gè)使用PYNQ的示例可能是一個(gè)好主意,它使我們能夠使用Python生成任意信號(hào),過濾它并繪制結(jié)果波形。

關(guān)鍵字: FIR濾波器 FPGA設(shè)計(jì) 信號(hào)發(fā)生器

AI與自動(dòng)化驅(qū)動(dòng)生命科學(xué)研發(fā)革新 北京2025年2月20日 /美通社/ -- 近日,鎂伽科技正式推出LABILLION?實(shí)驗(yàn)室智慧管理平臺(tái),并于線上發(fā)布。作為鎂伽在"AI for Science(AI4S)&...

關(guān)鍵字: LAB IO ABI 指令

CPU的工作原理?主要包括以下幾個(gè)核心步驟:獲取指令、解碼、執(zhí)行和存儲(chǔ)結(jié)果。?中央處理器(Central Processing Unit,簡稱CPU)作為計(jì)算機(jī)系統(tǒng)的運(yùn)算和控制核心,是信息處理、程序運(yùn)行的最終執(zhí)行單元。C...

關(guān)鍵字: CPU 指令
關(guān)閉