新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在FPGA的編程語言里,這是你最容易犯的錯誤

        在FPGA的編程語言里,這是你最容易犯的錯誤

        作者: 時間:2018-05-15 來源:網絡 收藏

          我知道,我對與電子有關的所有事情都很著迷,但不論從哪個角度看,今天的現場可編程門陣列(),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個智能時代,在這個領域,想擁有一技之長的你還沒有關注,那么世界將拋棄你,時代將拋棄你。本公眾號作者ALI,多年FPGA開發經驗,所有文章皆為多年學習和工作經驗之總結。

        本文引用地址:http://www.104case.com/article/201805/379923.htm

          邏輯寫多了,有時候一些基本的錯誤忘了避免了。

          昨天設計邏輯的時候就不小心觸雷了,有個信號有激勵沒響應,后來看了時序報告,有這么一句話。

            

         

          這是什么呢?鎖存器啊!

          最容易產生的是在always(*)語句中,最后一定是所有分支條件都要描述并賦值。

          狀態機中,同樣如此,不但需要有default的狀態,每個狀態的都要有所有的分支都要賦值。

          如果設計很大,不容易查的話,可以打開綜合報告,搜索“LATCH”關鍵詞,查看是否有鎖存器的產生,有就趕緊更改設計。

          而時序邏輯綜合結果必然是觸發器,因此不用檢查時序邏輯的分支條件。所以還是那句話,能用時序邏輯,就盡量別用組合邏輯。

          當然如果是老鳥,這句話可忽略。

          阻塞和非阻塞,這件事情百分之九十九點九九是筆誤,沒見過開發者沒事非要冒險試一下“=”跟“<=”的區別。

          很多人說這兩個沒啥區別,這兩個符號啊,沒出事就好,出事了查起來就煩了。

          所以記好了,組合邏輯里面用=,時序邏輯里面用<=,肯定不會錯。

          硬件描述語言的坑還是很少的, 搞來搞去就是組合邏輯、時序邏輯,一些generat加for循環就算復雜的了,因此這塊能說的不多。

          編程語言不是語言本身,而是每句邏輯之后的電路,新手入門學習的初學者一定要注意。



        關鍵詞: FPGA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湘乡市| 行唐县| 景泰县| 从江县| 焦作市| 和林格尔县| 上林县| 北京市| 宣恩县| 耿马| 嘉善县| 灵宝市| 宁陕县| 星座| 东港市| 平江县| 于都县| 十堰市| 微山县| 广水市| 台山市| 义乌市| 安平县| 岳普湖县| 平谷区| 南华县| 云霄县| 本溪| 凤山县| 当涂县| 周至县| 肇东市| 叙永县| 中超| 休宁县| 尼玛县| 曲沃县| 大冶市| 普宁市| 麟游县| 邢台市|