【FPGA】Robei EDA 常見問題解決 (3)——— include 問題 和模塊例化問題

#懸崖上的花,越芬芳越無常。

今天來解決Robei EDA使用的時候遇到的問題的解決辦法,這個有我自己遇到的,也有別人問我然後我幫着解決的。這幾天剛好有學長來找我寫代碼,要仿真FPGA代碼,結果電腦上的Modelsim好死不死出問題了,於是用了Robei 自帶的仿真給了學長。學長還覺得挺方便的,至少對於初學者來說,很容易上手,不像我當年學FPGA,那叫一個淚流滿面。

include 包含文件

在常見的Verilog代碼中,會遇到包含 include 文件的寫法,這樣類似於定義一些全局的常量,方便調用。在quartus 裏的寫法是這樣的:

`include “sdram_para.v”

而在Robei EDA裏,include 無法直接寫在Code 部分,而是在定義欄的地方添加。
在這裏插入圖片描述
在右側的定義欄,可以看到 “include” 的框子,將文件名稱和後綴添加進去,在代碼編譯的時候就可以自動包含這個文件了。(注意,這個文件必須要放到Robei 模塊的文件路徑下,不然編譯的時候軟件會因爲找不到文件而報錯)

PS: 這裏有一個問題,我在寫SDRAM 的 子模塊的時候,用到了這個sdram_para.v這個文件,但是我在上層文件綜合的時候,並沒有把這個文件加進去,它會報這樣一個錯誤,就是告知你綜合的時候,沒有找到這個文件的聲明。錯誤如下:
在這裏插入圖片描述
報這個錯誤的時候,就是我子模塊裏包含了這個文件,但是top文件裏沒有這個文件。
在這裏插入圖片描述
我解決這個問題的辦法就在top文件的include裏也加入這個文件,就不會報錯了。

模塊例化的問題

Robei EDA 裏對於每一個模塊被上層模塊例化,信號線的連接方式有兩種,一個是連線,另一個是通過connect連接內部信號。

但是,事實上在FPGA裏,例化方式稀奇古怪,就導致了有一些信號,不能直接像quartus的習慣那樣連接。比如一下這類情況。

  1. 對信號取反一下在連接的。
    在這裏插入圖片描述
  2. 幾個信號邏輯或、與一下的。
    在這裏插入圖片描述
  3. 有數字還有乘法的
    在這裏插入圖片描述
  4. 一個多位信號分開好幾位的。(二值化的時候)
    在這裏插入圖片描述
    遇到這類隨心所欲的數值例化,就很尷尬,一開始就不知道該怎麼整。後來選擇了一個辦法,就是把這些信號再過一個模塊,做一個初步的處理。
  5. 取反+邏輯或模塊
    ze_16,color_FFFFFF,t_70)
    在這裏插入圖片描述
    在這裏插入圖片描述
  6. 取反模塊
    在這裏插入圖片描述
  7. 信號分割模塊
    在這裏插入圖片描述
    在這裏插入圖片描述

就是通過這樣的簡單的組合邏輯模塊,有時候也可以是時序的,把原本的信號轉換一下,改成符合要求的例化的信號線。因爲其實在代碼綜合好後生成的RTL圖裏,在例化上的操作其實和我們現在定義模塊是一個作用。

————————————————————正文結束的分割線———————————————

比賽馬上要結束了,我們也在做最後的系統調試和綜合,無論結果如何,都坦然面對。只是說,求仁得仁吧,這個對於我們來說也是成長。當我把人臉檢測(僞)做出來的時候,我的一個學長和我說,我已經比他當年畢業的時候還厲害了,他的畢業設計也只是做了我前一部分而已。這是一個大我3屆的學長,保研電科的大佬,算是我一入大學給我指引方向的人生導師,也是我一直追求的目標。他這麼說很大程度上只是鼓勵我,畢竟我和他的差距還是非常大的,但是不得不說我從比賽上卻是學到了非常多,即使過程再艱辛,心之所向,九死不悔。(以後也要加油啊~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章