freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

fpga研發(fā)牛人心得總結(jié)doc-資料下載頁(yè)

2025-07-15 22:31本頁(yè)面
  

【正文】 。時(shí)序邏輯會(huì)產(chǎn)生鎖存器嗎?當(dāng)然不會(huì),時(shí)序邏輯綜合結(jié)果必然是觸發(fā)器,因此不用檢查時(shí)序邏輯的分支條件。綜上:這是寫在coding之前的話,編碼的主要功能應(yīng)該是用可靠的電路來(lái)描述FPGA功能和需求,不要試圖通過(guò)語(yǔ)言的特性來(lái)描述功能,設(shè)計(jì)的主要精力應(yīng)放在用已知的電路(組合邏輯,時(shí)序邏輯)描述未知功能。設(shè)計(jì)不是湊波形(五)接口設(shè)計(jì)作為FPGA工程師來(lái)說(shuō),碰到新的問(wèn)題是設(shè)計(jì)中最常見(jiàn)的事情了,技術(shù)發(fā)展趨勢(shì)日新月異,所以經(jīng)常會(huì)有新的概念,新的需求,新的設(shè)計(jì)等待去實(shí)現(xiàn)。不是每個(gè)通過(guò)BAIDU或者GOOGLE都有答案。因此,新的設(shè)計(jì)經(jīng)常會(huì)有,那如何實(shí)現(xiàn)?假設(shè),F(xiàn)PGA需要設(shè)計(jì)一個(gè)接口模塊,那我們就需要了解一下幾個(gè)問(wèn)題:(1)同步接口還是異步接口模塊;(2)有哪些信號(hào),功能是什么?(3)信號(hào)之間時(shí)序關(guān)系是什么?(4)傳遞的效率能夠達(dá)到多少;(5)等等!誰(shuí)會(huì)給予這些答案,有一個(gè)好的tutor就是“datasheet”,一般來(lái)說(shuō)FPGA設(shè)計(jì)一個(gè)接口模塊,必然與其他硬件電路進(jìn)行連接。假如是外部連接接口為總線接口,那至少包括卻不限于以下信號(hào),(1)地址:能夠支持的最大地址空間,數(shù)據(jù)和地址是否復(fù)用接口;(2)數(shù)據(jù):一般讀數(shù)據(jù)和寫數(shù)據(jù)復(fù)用同一接口,一般數(shù)據(jù)信號(hào)此時(shí)都為三態(tài)。三態(tài)信號(hào)有OE信號(hào)。(3)讀寫命令。單次的讀操作、單次的寫操作(4)是否支持突發(fā)傳輸,burst的讀寫操作(5)同步還是異步。(6)控制信號(hào)之間的相位關(guān)系及建立保持時(shí)間的要求。 圖為TI系列35X系列處理器的GPMC的接口,由圖中可以看出其時(shí)鐘、地址、數(shù)據(jù)等操作信號(hào)。如果是同步并行接口,一般用于數(shù)據(jù)流傳輸,如AD/DA的輸入或輸出,網(wǎng)口PHY的輸出信號(hào)等,一般的同步并行信號(hào),通常包括,(1)時(shí)鐘信號(hào)、(2)數(shù)據(jù)、信號(hào)(3)使能信號(hào)等。 上圖為RMII的數(shù)據(jù)接口,圖中可以看到其控制信號(hào),數(shù)據(jù)信號(hào)及使能信號(hào)。作為流傳輸接口,一般可以支持雙向雙工傳輸。上述兩種接口描述了兩種主流的FPGA的外部接口,即總線接口和流傳輸接口。通過(guò)軟件定義和FPGA內(nèi)部邏輯設(shè)計(jì),總線接口可以實(shí)現(xiàn)流的傳輸(總線接口實(shí)現(xiàn)雙向傳輸,可以通過(guò)輪詢和中斷兩種方式實(shí)現(xiàn)),同時(shí)流傳輸接口也可以實(shí)現(xiàn)總線讀寫功能。可以根據(jù)具體的使用環(huán)境進(jìn)行設(shè)計(jì)。SERDES接口則是另一種數(shù)據(jù)流的傳輸接口,現(xiàn)在FPGA的serdes最高可以支持到28Gbps。實(shí)際上為了滿足減少板級(jí)連線,并且提高傳輸速率的需求。集成更多的SERDES也是FPGA發(fā)展的趨勢(shì)。上圖為SERDES的框圖,由PCS和PMA模塊構(gòu)成,PMA一般為硬核IP,PCS為軟核或者硬核模塊,收發(fā)獨(dú)立,且都為差分信號(hào)(serdes將在后續(xù)章節(jié)詳述)。值得一提的是,SERDES接口對(duì)FPGA邏輯的接口一般固定位同步并行接口,數(shù)據(jù)信號(hào)位寬都較大。這些接口如何做詳細(xì)設(shè)計(jì),一方面可根據(jù)其上述共性特點(diǎn),這能夠?qū)ζ涮攸c(diǎn)有大概的認(rèn)識(shí),另一方面則是FPGA連接的器件的DATASHEET。根據(jù)這些器件接口功能的描述和支持的特性。FPGA可根據(jù)需要和功能特性,進(jìn)行有選擇的實(shí)現(xiàn)(例如總線接口不需要brust操作,則可只實(shí)現(xiàn)單次的讀寫,就可以滿足業(yè)務(wù)的需求,進(jìn)行功能裁剪和簡(jiǎn)化等等)。接口設(shè)計(jì)完成,F(xiàn)PGA就要對(duì)設(shè)計(jì)進(jìn)行基本測(cè)試。對(duì)于流接口來(lái)說(shuō),能夠支持環(huán)回的功能的話(即將收到數(shù)據(jù)流再發(fā)回),就極大方便測(cè)試。對(duì)于總線接口則需要支持對(duì)FPGA內(nèi)部某地址的讀寫操作的測(cè)試。這就屬于可測(cè)性設(shè)計(jì)的范疇。(后續(xù)將專題詳述FPGA的可測(cè)性設(shè)計(jì))。如果一個(gè)模塊沒(méi)有任何的輸入輸出,其再?gòu)?fù)雜的功能也等同一塊石頭,或者只有輸入,沒(méi)有輸出也等同一塊石頭。因此輸入和輸出則是一個(gè)設(shè)計(jì)的第一步??蓽y(cè)性設(shè)計(jì)—從大數(shù)據(jù)開(kāi)始說(shuō)起當(dāng)下,最火的學(xué)問(wèn)莫過(guò)于《大數(shù)據(jù)》,大數(shù)據(jù)的核心思想就是通過(guò)科學(xué)統(tǒng)計(jì),實(shí)現(xiàn)對(duì)于社會(huì)、企業(yè)、個(gè)人的看似無(wú)規(guī)律可循的行為進(jìn)行更深入和直觀的了解。FPGA的可測(cè)性也可以對(duì)FPGA內(nèi)部“小數(shù)據(jù)”的統(tǒng)計(jì)查詢,來(lái)實(shí)現(xiàn)對(duì)FPGA內(nèi)部BUG的探查??蓽y(cè)性設(shè)計(jì)對(duì)于FPGA設(shè)計(jì)來(lái)說(shuō),并不是什么高神莫測(cè)的學(xué)問(wèn)。FPGA的可測(cè)性設(shè)計(jì)的目的在設(shè)計(jì)一開(kāi)始,就考慮后續(xù)問(wèn)題調(diào)試,問(wèn)題定位等問(wèn)題。要了解FPGA可測(cè)性設(shè)計(jì),只不過(guò)要回答幾個(gè)問(wèn)題,那就是:(1)設(shè)計(jì)完成如何進(jìn)行測(cè)試?(2)設(shè)計(jì)出現(xiàn)問(wèn)題,如何迅速定位?(3)如何在設(shè)計(jì)之初就能劃分故障的層次,進(jìn)行問(wèn)題隔離?一般情況下,在設(shè)計(jì)的調(diào)試階段,如果出現(xiàn)BUG,則需要通過(guò)嵌入式邏輯分析儀(chipscope/signaltap)對(duì)可能出現(xiàn)問(wèn)題的信號(hào)進(jìn)行抓取。這種方式,對(duì)于較大型的設(shè)計(jì)調(diào)試速度較慢(其編譯時(shí)間較長(zhǎng),迭代速度較慢,但是也是一種很有效的手段和FPGA的必備技能)。那么對(duì)于大型工程的可測(cè)試性,有什么行之有效的手段?(1)統(tǒng)計(jì)計(jì)數(shù)。FPGA設(shè)計(jì)中的統(tǒng)計(jì)計(jì)數(shù)不是不是什么《大數(shù)據(jù)》,只不過(guò)是些“小數(shù)據(jù)”,例如,對(duì)于網(wǎng)絡(luò)接口來(lái)說(shuō),收到多少包,發(fā)送多少包,收到多少字節(jié),發(fā)送多少字節(jié)。對(duì)于一個(gè)模塊來(lái)說(shuō),收到多少次調(diào)用,或者發(fā)起多少次操作。對(duì)于讀取FIFO的數(shù)據(jù)流操作,從FIFO中讀取多少frame(幀),向后級(jí)FIFO寫入多少幀。這些計(jì)數(shù),毫無(wú)疑問(wèn)都是需要占用資源的,但是占用這些資源是有價(jià)值的。通過(guò)這些計(jì)數(shù),設(shè)計(jì)可以通過(guò)總線接口供外部處理器讀出。于是一張F(tuán)PGA內(nèi)部設(shè)計(jì)的“大數(shù)據(jù)”圖形就顯現(xiàn)出來(lái)了”。從上圖可得,通過(guò)外部CPU可將各處理模塊中的計(jì)數(shù),分別讀出,于是得到其內(nèi)部的一張數(shù)據(jù)流圖。我們可以簡(jiǎn)化設(shè)計(jì)為(計(jì)數(shù)A計(jì)數(shù)B計(jì)數(shù)C計(jì)數(shù)D計(jì)數(shù)E)。實(shí)際使用中可根據(jù)占用的資源和實(shí)際需要的觀測(cè)點(diǎn)來(lái)確定。假設(shè),我們?cè)谡{(diào)試過(guò)程中發(fā)現(xiàn),有輸入突然沒(méi)有輸出,這是不需要再去內(nèi)嵌邏輯分析儀來(lái)抓取信號(hào),通過(guò)CPU的軟件,可以打印出所有計(jì)數(shù),在有輸入驅(qū)動(dòng)的情況下,假設(shè)計(jì)數(shù)C有變化,而計(jì)數(shù)D沒(méi)有變化,則直接定位處理模塊3,此時(shí)處理有問(wèn)題,簡(jiǎn)單直接而有效。令一種情形也可以迅速定位,輸入多,但是輸出少,比如正常輸入的碼流,但是輸出到顯示上確實(shí)缺幀少幀,完全不流暢。通過(guò)計(jì)數(shù)分析,原本幀計(jì)數(shù)C和D應(yīng)該一樣多,但是D卻計(jì)數(shù)較C少很多,說(shuō)明此時(shí)處理模塊3性能不夠,或者設(shè)計(jì)有缺陷。這樣就把整個(gè)設(shè)計(jì)的關(guān)鍵點(diǎn)定位到處理模塊3.通過(guò)FPGA內(nèi)部各模塊的關(guān)鍵計(jì)數(shù)分析,來(lái)定位分析問(wèn)題,在設(shè)計(jì)上沒(méi)有任何難度。不過(guò)需要外部CPU或者FPGA嵌入式CPU的配合使用。凡事有利就有弊,添加多的計(jì)數(shù),會(huì)增加資源的使用量,那么如何平衡?對(duì)這種分析計(jì)數(shù)進(jìn)行單獨(dú)位寬設(shè)定,在全局統(tǒng)一的宏定義中定位`defineREG_WIDTHN此時(shí)N的設(shè)定可以靈活多樣,8位/16位/32位等等??梢愿鶕?jù)項(xiàng)目中資源的剩余量,靈活添加所需的邏輯,畢竟這些計(jì)數(shù)的值提供分析試用。(2)狀態(tài)輸出。如果向上述問(wèn)題一樣,我們定位到某個(gè)模塊,那么如何再定位到模塊中那個(gè)邏輯的問(wèn)題?解決這個(gè)問(wèn)題的關(guān)鍵,就是狀態(tài)機(jī),向輸出計(jì)數(shù)一樣,一般的設(shè)計(jì)中,都會(huì)以狀態(tài)機(jī)為核心進(jìn)行設(shè)計(jì),將狀態(tài)機(jī)的CS(當(dāng)前狀態(tài))信號(hào)引出,如果沒(méi)有外部輸出的情況下,當(dāng)前狀態(tài)應(yīng)該為IDLE。比如上文中,我們定位到模塊3此時(shí)死機(jī),等待不再輸入外部信號(hào)時(shí),此時(shí)模塊3中的狀態(tài)機(jī)信號(hào)如不為IDLE,假如此時(shí)正處于狀態(tài)B_CS,則說(shuō)明此時(shí)模塊的錯(cuò)誤出現(xiàn)在狀態(tài)B。而B(niǎo)跳轉(zhuǎn)必須由信號(hào)X起效。因此可以直接定位到信號(hào)X的問(wèn)題。剩下就是要定位信號(hào)X為什么不起效。(也許你看看代碼就能知道**不離十,是不是一秒鐘變高手!開(kāi)個(gè)玩笑?。?)邏輯復(fù)位。劃分FPGA的問(wèn)題或者模塊問(wèn)題的另一種方式就是邏輯復(fù)位,上文講復(fù)位時(shí)(架構(gòu)設(shè)計(jì)漫談),邏輯復(fù)位,如果A模塊自身有邏輯復(fù)位,如果設(shè)計(jì)沒(méi)有輸出(通俗叫做“FPGA死了”),如果懷疑某個(gè)模塊,該模塊邏輯復(fù)位后,設(shè)計(jì)又正常工作,則需要定位的則是可以是該模塊、或者該模塊影響的與其連接模塊(該模塊的非正常輸出導(dǎo)致下一級(jí)模塊出錯(cuò))。本文將的FPGA可測(cè)性設(shè)計(jì),非ASIC講的通過(guò)插JTAG/BIST進(jìn)行的測(cè)試。其目的還是通過(guò)關(guān)注如何測(cè)試的設(shè)計(jì),來(lái)定位問(wèn)題,提高FPGA的可測(cè)性。除此之外,邏輯探針也是可以一個(gè)解決測(cè)試問(wèn)題的方向(專題另述)??蓽y(cè)性的提高,意味著調(diào)試手段的增加,調(diào)試速度加快,而不是一味的依賴嵌入式邏輯分析儀。能夠達(dá)到快速問(wèn)題定位能力,是FPGA研發(fā)能力一個(gè)重要的體現(xiàn),而可測(cè)性設(shè)計(jì)則是提升這一能力有力的助手?;睘楹?jiǎn)有個(gè)笑話說(shuō),有個(gè)病人感冒了,于是去看醫(yī)生,醫(yī)生診斷后說(shuō),你得了感冒,但是我只會(huì)治療肺炎,不如你回家再澆點(diǎn)涼水,把病惡化成肺炎,那我能治了。這個(gè)笑話展示了庸醫(yī)誤人。但是另一方面,從邏輯上來(lái)講,醫(yī)生則是一個(gè)把未知問(wèn)題轉(zhuǎn)化成已知問(wèn)題的高手。不說(shuō)笑話,下面出兩個(gè)題目,其分別是問(wèn)題1:運(yùn)用數(shù)字電路,如何將一個(gè)時(shí)鐘域的上升沿,轉(zhuǎn)換成另一個(gè)時(shí)鐘域的脈沖信號(hào)(單周期信號(hào))。問(wèn)題2:運(yùn)用數(shù)字電路,如何將一個(gè)時(shí)鐘域的脈沖信號(hào)(單周期信號(hào)),轉(zhuǎn)換成另一個(gè)時(shí)鐘域的上升沿??赡苷б豢?,這兩個(gè)題目?jī)?yōu)點(diǎn)難度,特別是第二個(gè)問(wèn)題,答上的就更少了。那再出第三道題目,會(huì)不會(huì)讓這個(gè)問(wèn)題變簡(jiǎn)單些那。問(wèn)題3:運(yùn)用數(shù)字電路,如何將一個(gè)時(shí)鐘域的上升沿,轉(zhuǎn)換成另一個(gè)時(shí)鐘域的上升沿。題目3,,就會(huì)讓人覺(jué)得太簡(jiǎn)單了,這既是異步信號(hào)的同步化,寄存兩拍就可以了。這CLKA信號(hào)就被同步到CLKB的方法,有一定數(shù)字電路知識(shí)的都會(huì)不論CLKA與CLKB時(shí)鐘頻率的高低。下面回到題目1,我們按照那個(gè)庸醫(yī)的做法,把未知問(wèn)題轉(zhuǎn)換成已知問(wèn)題,那這個(gè)問(wèn)題就轉(zhuǎn)化成了兩個(gè)部分,A時(shí)鐘域的上升沿轉(zhuǎn)換成B時(shí)鐘域的上升沿,然后B時(shí)鐘域的上升沿如何變成其單脈沖信號(hào)。所以問(wèn)題就很簡(jiǎn)單了,最后的輸出B amp。! B_r(B信號(hào)寄存一拍).電路如下所示。,而A信號(hào)的上升沿,再轉(zhuǎn)換成B信號(hào)的上升沿。那么,如何將已是時(shí)鐘信號(hào)的脈沖信號(hào),轉(zhuǎn)換成另一個(gè)時(shí)鐘的脈沖信號(hào)?呵呵。以上只是兩個(gè)簡(jiǎn)單的電路,實(shí)際設(shè)計(jì)中,有許多可以進(jìn)行設(shè)計(jì),可以化繁為簡(jiǎn)或者化未知為已知的方法。例如,實(shí)際設(shè)計(jì)中,經(jīng)常有設(shè)計(jì)變更的情況,比如,原來(lái)輸出的信號(hào)A,但是需要輸出信號(hào)B。那可能大多數(shù)情況,模塊不用重新設(shè)計(jì),只需要在原有輸出信號(hào)(或者數(shù)據(jù))A上,再添加相應(yīng)的輸出,或者封裝一層接口,就可以快速滿足需求。并且原有設(shè)計(jì)模塊也可以復(fù)用,并且已驗(yàn)證充分。通過(guò)化未知問(wèn)題為已知問(wèn)題的方式,簡(jiǎn)化設(shè)計(jì)和驗(yàn)證,能夠快速的設(shè)計(jì)需要。一方面,而這正是IP復(fù)用的好處,另一方面,原有設(shè)計(jì)如何達(dá)到IP復(fù)用的標(biāo)準(zhǔn),也是值得探索的部分。這個(gè)故事,其實(shí)還有另一版本,那就是錘子和釘子,那就是如果你已經(jīng)有一把錘子,那就看什么都是釘子。如何將未知問(wèn)題轉(zhuǎn)化成你的錘子可以解決的釘子,則是就是設(shè)計(jì)復(fù)用的問(wèn)題了?!氨晨看髽?shù)好乘涼”總線如果設(shè)計(jì)中有多個(gè)模塊,每個(gè)模塊內(nèi)部有許多寄存器或者存儲(chǔ)塊需要配置或者提供讀出那么實(shí)現(xiàn)方式有多種,主要如下:實(shí)現(xiàn)方式一:可以在模塊頂部將所有寄存器引出,提供統(tǒng)一的模塊進(jìn)行配置和讀出。這種方式簡(jiǎn)單是簡(jiǎn)單,但是頂層連接工作量較大,并且如果配置個(gè)數(shù)較多,導(dǎo)致頂層中寄存器的數(shù)目也會(huì)較多。實(shí)現(xiàn)方式二:通過(guò)總線進(jìn)行連接,為每個(gè)模塊分配一個(gè)地址范圍。這樣寄存器等擴(kuò)展就可以在模塊內(nèi)部進(jìn)行擴(kuò)展,而不用再頂層進(jìn)行過(guò)多的頂層互聯(lián)。如下圖所示:那如果進(jìn)行總線的選擇,那么有一種極為簡(jiǎn)單的總線推薦被使用,那就是AVALONMM的總線ALTERA提出兩種總線類型,分別是AVALONMM,AVALONST。分別用于連接memeory和數(shù)據(jù)流的傳送MM不是你想的意思,其英文為memory map。實(shí)現(xiàn)內(nèi)存映射是其主要目的。主要信號(hào)包括如下表所示:信號(hào)例子address地址read讀readdata讀數(shù)據(jù)write寫writedata寫數(shù)據(jù)waitrequest_n等待信號(hào)AVALONMM因此可以說(shuō)是最簡(jiǎn)單實(shí)用的總線形態(tài)了。對(duì)于其操作來(lái)說(shuō),總線為同步類型的總線,寫信號(hào)只需要在寫使能有效時(shí),同時(shí)提供寫數(shù)據(jù)即可,而讀數(shù)據(jù)等待信號(hào)無(wú)效時(shí),讀出數(shù)據(jù)有效。同樣數(shù)據(jù)類型讀數(shù)據(jù)(readdata)和寫數(shù)據(jù)(writedata)的寬度可以根據(jù)設(shè)計(jì)的需要靈活配置為(8,16,322561024)BIT等值。即可以支持非常大的位寬,但普通應(yīng)用,只需要(8,16,32,64)BIT等即可滿足應(yīng)用。那假設(shè)總線寬度32,基本上主流的數(shù)據(jù)總線的寬度。如果需要更細(xì)粒度的劃分,確定讀寫某個(gè)字節(jié)有效,那么byteenable信號(hào)也是必須的。其需要4bit來(lái)標(biāo)示32bit(4個(gè)byte)中那個(gè)有效,每一BIT表示一個(gè)字節(jié),因此如果要完全表示所有的字節(jié)有效,因此字節(jié)有效信號(hào)的寬度為(數(shù)據(jù)總線的寬度/8)。AVALON還可以有burst的操作。主設(shè)備可以通過(guò)burstcount設(shè)備確定brust的長(zhǎng)度,為2的n1次方。對(duì)于普通的應(yīng)用,通過(guò)上述表格中的基本操作即可滿足需求,這也正是AVALONmm總線的優(yōu)勢(shì)。此外模塊按此標(biāo)準(zhǔn)提供連接接口,各種模塊可以掛在NIOSII的片上系統(tǒng)上。如果模塊之間為點(diǎn)對(duì)點(diǎn)的連接,同時(shí)傳遞大數(shù)據(jù)量的操作,那么的AVALONmm總線就不太適合,因此AVALON_streaming總線就適合這種應(yīng)用場(chǎng)景。AVALON_streaming總線本質(zhì)上是一種同步并行總線,即在同步時(shí)鐘狀態(tài)下,使能有效代表傳遞數(shù)據(jù)有效。其基本信號(hào)如下表所示:信號(hào)例子valid主設(shè)備數(shù)據(jù)有效data數(shù)據(jù)信號(hào)ready從設(shè)備準(zhǔn)備好start of frame幀開(kāi)始end
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1