最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

換個姿勢學(xué)FPGA:《零基礎(chǔ)學(xué)FPGA設(shè)計—理解硬件編程思想》

2023-05-17 10:29 作者:杜勇FPGA  | 我要投稿



一、為什么要換個姿勢學(xué)FPGA?

? ? ? 大家好,我是杜勇,一名資深FPGA數(shù)字信號處理算法工程師,一名高校教師,也是一名UP主,業(yè)余時間喜歡看球賽、看電影、聽音樂、看書、慢跑,感覺快樂的生活狀態(tài)是一邊看球賽、一邊喝茶、一邊等待FPGA程序的運行結(jié)果。

? ? ? 在經(jīng)過多年的FPGA工程項目設(shè)計之后,感慨于當(dāng)初學(xué)習(xí)相關(guān)技術(shù)時找不到可用參考資料(主要是工程實現(xiàn)方面的可用資料缺乏)的無助,抱著減少后來者踩坑迷茫的微小愿望,又機緣巧合,剛好有一段較長的相對空閑的時間,于是開始編寫《數(shù)字濾波器的MATLAB與FPGA實現(xiàn)》等數(shù)字信號處理的系列圖書。驀然回一下首,已是11年前,2012年。后來陸續(xù)出版通信同步、調(diào)制解調(diào)、鎖相環(huán)技術(shù)、數(shù)字信號處理設(shè)計等FPGA設(shè)計與實現(xiàn)的圖書。

? ?? 很幸運,二十余年來一直在從事FPGA設(shè)計相關(guān)的工作,親身感受到FPGA技術(shù)的發(fā)展已成汪洋之勢。

? ? ?但是,很多人說,入門難!

? ? ?目前很多高校從本科開始開設(shè)FPGA課程,并且越來越多的學(xué)校開始將傳統(tǒng)的《數(shù)字電路技術(shù)》課程與FPGA技術(shù)課程融合起來講解。FPGA技術(shù)入門難,但其發(fā)展趨勢已不可逆轉(zhuǎn),一些課堂在認(rèn)真細(xì)致的講解繁雜的Verilog HDL語法時,且因語法與C語言長得相似,而寬慰學(xué)生那顆對硬件描述語言的畏難之心。

? ? ? 數(shù)字電路技術(shù)中組合邏輯簡單直接,很容易上手,但令學(xué)生頭疼的是隨之而來的時序邏輯設(shè)計,尤其是狀態(tài)方程的分析理解。解方程?這與數(shù)學(xué)問題好相似!然而,更難的還在后面,要用不太熟悉的狀態(tài)機描述不太熟悉的時序邏輯電路。老師,這種功能的電路要分成幾個狀態(tài)呢?如何畫狀態(tài)轉(zhuǎn)移圖呢?學(xué)生在經(jīng)歷了短暫愉快的組合邏輯電路設(shè)計之后,很快就遭遇到時序邏輯設(shè)計的無情阻礙。

? ? ??再用Verilog HDL語言,按照已訓(xùn)練成熟的C語言思維描述硬件電路,再次經(jīng)歷學(xué)習(xí)的迷茫。請問“=”和“<=”到底有什么區(qū)別?為什么叫阻塞賦值?為什么叫非阻塞賦值?什么叫立即執(zhí)行,什么叫順序執(zhí)行?“=”和“<=”什么時候相同,什么時候不同?為什么C語言可以這樣寫,Verilog HDL就不行?

? ? ? 或許,我們可以換個思路學(xué)FPGA!

? ? ?需要理解Verilog HDL的本質(zhì)是并行語言,C語言是順序語言,他們倆除長得像以外,也就僅僅是長得像而已!理解了D觸發(fā)器的時序波形,再用并行語言的思維去理解“=”和“<=”,就一切清晰明了,豁然開朗。

? ? ? 所謂時序,就是時間的先后關(guān)系,在時鐘的驅(qū)動下計數(shù),就可以生成各種與時間相關(guān)的信號。設(shè)計時序邏輯,本質(zhì)是設(shè)計計數(shù)器而已。計數(shù)器,誰還掌握不了呢?

? ? ? ?或許,我們可以換個姿勢學(xué)FPGA!

? ? ? 暫時放下狀態(tài)機的概念、放下對順序語言思維的執(zhí)著,按照數(shù)字電路的工作方法,從D觸發(fā)器、計數(shù)器入手,詳細(xì)闡述并行語言的精髓,打通硬件描述語言的學(xué)習(xí)關(guān)卡,跨入FPGA技術(shù)的大門。

? ? 《零基礎(chǔ)學(xué)FPGA設(shè)計——理解硬件編程思想》是我于2023年4月由電子工業(yè)出版社出版的圖書,專為FPGA初學(xué)者編著,希望能夠幫助大家快速跨入FPGA技術(shù)的門檻。


二、為什么要用國產(chǎn)FPGA?

??? ? 近年來,國際國內(nèi)的芯片產(chǎn)業(yè)正經(jīng)歷大的變革時期。AMD和Intel兩家的FPGA仍然占據(jù)全球FPGA的絕大部分市場,但你經(jīng)歷過買不到芯片的困境嗎?或者經(jīng)歷過設(shè)計好的開發(fā)板,在要量產(chǎn)時,供貨商的價格傲嬌到高攀不起的情況?

? ? ? 更重要的是,或許正是由于米國的一頓兇猛操作,國產(chǎn)芯片的崛起已是大勢所趨,不可阻擋。作為一名長期從事FPGA設(shè)計的從業(yè)者,明顯體會到近年來采用國產(chǎn)FPGA開發(fā)的項目越發(fā)呈快速增長之勢。

? ? ? 又是機緣巧合,剛好,有機會和高云FPGA合作,推出國產(chǎn)FPGA開發(fā)平臺的入門級圖書。

? ? ? 坦誠來講,高云的云源軟件,以及其它國產(chǎn)FPGA開發(fā)軟件,與ISE、Vivado、Quartus相比還存在明顯的差距,但這主要體現(xiàn)在高階的應(yīng)用方面。對于初學(xué)者來講,國產(chǎn)FPGA開發(fā)環(huán)境卻反而友好得不是一點點,是很多很多。從安裝過程到使用步驟都更具親和力,初學(xué)者反而不用為學(xué)習(xí)繁雜的開發(fā)工具使用方法花費過多的時間。而學(xué)習(xí)FPGA的核心,一定是理解硬件編程思想,掌握硬件編程方法。開發(fā)環(huán)境的使用大同小異。相信我,相信成千上萬的FPGA開發(fā)工程師的切身體會,在你熟悉FPGA開發(fā)方法后,學(xué)習(xí)其它開發(fā)環(huán)境一定是一件輕松愜意的事。就正如,如果你掌握了Verilog HDL語言,即使從未編寫過VHDL代碼,人生第一次看見一段VHDL代碼也會感到無比的親切。因為,他們并沒有本質(zhì)上的不同。


三、確認(rèn)視頻是完備的?認(rèn)真錄制的?完全免費的?

? ? ???

? ? ? 是完備的,是認(rèn)真錄制的,是完全免費的。我于2022底~2023年初完成了42集配套視頻的錄制,已在B站(UP主:杜勇FPGA)發(fā)布完畢。在你觀看視頻的過程中,或許會感覺到有幾期視頻的聲音有一點特別,就是有點沙啞,好像感冒了?或許你已經(jīng)猜到了。在那場席卷全球的疫情面前,我也榮幸的經(jīng)歷了一次洗禮。

? ? ? 春回大地,萬物復(fù)蘇。五一節(jié)的人海,讓那場疫情恍如隔世!


四、章節(jié)編排的理由

? ? ??全書分四篇:基礎(chǔ)篇、初識篇、入門篇和提高篇。

? ? ? 基礎(chǔ)篇中只用一章的篇幅介紹與FPGA設(shè)計相關(guān)的,數(shù)字電路課程的核心內(nèi)容,另外二章討論邏輯電路基礎(chǔ)知識和環(huán)境安裝方法。

? ? ? 初識篇先用流水燈電路體驗FPGA的開發(fā)流程,你會發(fā)現(xiàn)其實比想象中簡單很多,尤其采用云源軟件開發(fā)時。再多角度闡述D觸發(fā)器這個靈魂,和計數(shù)器這個精華。這兩個簡單的內(nèi)容講得太多了嗎?不,不,不。根據(jù)“換個姿勢”的出發(fā)點,編寫FPGA程序不過是反復(fù)寫D觸發(fā)器和計數(shù)器而已,無論是后面講的秒表電路、串口電路、還是音樂放器,莫不如此。在講D觸發(fā)器和計數(shù)器時,注意融合FPGA并行設(shè)計思想,簡潔明了徹底理解“=”“<=”等與C語言截然不同的概念。

? ? ? 入門篇就開始起飛了。秒表電路幾乎人人都在設(shè)計,網(wǎng)上充斥很多學(xué)習(xí)的代碼。什么樣的代碼才是簡潔、美觀的呢?如果你發(fā)現(xiàn)了和書中類似風(fēng)格的代碼,如果代碼是在2019年以前發(fā)布的(我于2019年通過開發(fā)板發(fā)布了秒表、按鍵消抖、串口通信這類基礎(chǔ)代碼),只能說發(fā)布者和我的審美相差無幾吧,如果全都是2019年后發(fā)布的,希望大家能夠在使用的時候注明出處啊。密碼鎖、電子琴電路的設(shè)計問題,已初步超越了FPGA語法的范圍,其實只是訓(xùn)練學(xué)習(xí)者的邏輯思維能力罷了。串口通信是一個應(yīng)用非常廣泛的功能電路。經(jīng)??吹綄W(xué)生從網(wǎng)上找到用狀態(tài)機寫的串口代碼。為什么要用狀態(tài)機呢?用計數(shù)器的方法無論從理解的角度,還是實現(xiàn)的角度都更為簡單清晰。雖然不提倡用狀態(tài)機的思路寫代碼,但還是用一章的內(nèi)容對此進(jìn)行了討論,并以序列檢測器的程序為例進(jìn)行了對比分析。用D觸發(fā)器的思想寫序列檢測器是多么多么的簡單??!

? ? ? 提高篇討論了時序約束、IP核設(shè)計、在線邏輯分析儀和常用設(shè)計技巧。其實在經(jīng)歷過前面三篇的學(xué)習(xí)之后,如果初學(xué)者已經(jīng)能夠在不參考任何代碼的前提下,從頭開始寫完整個的“串口控制秒表電路”,相信已經(jīng)基本跨入了FPGA設(shè)計的大門,已經(jīng)具備順利自學(xué)這一篇內(nèi)容的條件和能力了。


五、學(xué)無止境

? ? ? 沒有一本書能夠把FPGA設(shè)計的方方面面都講到,通過學(xué)習(xí)一本書就能完全掌握FPGA設(shè)計的所有技巧只是一個美好的愿望而已。熟練的應(yīng)用需要學(xué)習(xí)者大量的練習(xí)和思考?!读慊A(chǔ)學(xué)FPGA設(shè)計——理解硬件編程思想》只是采用另一種姿勢,給大家提供另一種學(xué)習(xí)的方法,幫助大家快速、順利的跨入FPGA設(shè)計的大門而已。

? ? ? 一定要有CGD100開發(fā)板,一定要用云源軟件才能使用這本書嗎?不,不,不。

? ? ? 重要的事說三篇:開發(fā)環(huán)境是次要的,核心是理解硬件編程思想,思想,思想!

?

?圖書配套開發(fā)板CGD100實物圖


六、圖書目錄??? ? ? ??

?? ?第一篇?基礎(chǔ)篇

? ? 第 1 章 必備的數(shù)字邏輯電路知識

? ??第 2 章 可編程邏輯器件基礎(chǔ)

? ??第 3 章 準(zhǔn)備好設(shè)計環(huán)境

??

? ? 第二篇 初識篇

? ? 第 4 章 FPGA 設(shè)計流程—LED 流水燈電路

? ??第5章 從組合邏輯電路學(xué)起

? ??第 6 章 時序邏輯電路的靈魂——D 觸發(fā)器

? ? 第 7 章?時序邏輯電路的精華—計數(shù)器

? ??

? ?第三篇:入門篇

?? 第 8 章 設(shè)計簡潔美觀的秒表電路

? ?第 9 章 數(shù)字密碼鎖電路設(shè)計

? ?第 10 章??簡易電子琴電路設(shè)計

???第 11 章 應(yīng)用廣泛的串口通信電路

? ?第 12 章 對狀態(tài)機的討論

??

? ?第四篇:提高篇

?? 第 13 章 基本的時序約束方法

?? 第 14 章 采用 IP 核設(shè)計

? ?第 15 章 采用在線邏輯分析儀調(diào)試程序

? ?第 16 章 常用 FPGA 設(shè)計技巧


? ?祝大家學(xué)習(xí)愉快,工作順利!

?


換個姿勢學(xué)FPGA:《零基礎(chǔ)學(xué)FPGA設(shè)計—理解硬件編程思想》的評論 (共 條)

分享到微博請遵守國家法律
龙州县| 崇信县| 新田县| 三原县| 绥德县| 平凉市| 阳谷县| 特克斯县| 祁门县| 沈阳市| 杭州市| 新泰市| 晋江市| 宣武区| 永德县| 方正县| 翁牛特旗| 鸡东县| 拉萨市| 阿合奇县| 军事| 七台河市| 绿春县| 乐昌市| 临海市| 泊头市| 桐庐县| 邢台县| 金阳县| 洞口县| 通海县| 龙井市| 商都县| 东丽区| 辽阳县| 西盟| 阳朔县| 章丘市| 清镇市| 棋牌| 常熟市|