hdlverilog語言的編譯過程
① 請大神幫忙解釋,VerilogHDL語言
用普通語音的方式解釋一下程序運行的順序和規則:
首先定義了一個字元串指針數組,最後一個指向的字元串是"end"
主函數調用DisplayNames顯示這個數組指向的所有字元串(不包括最後的那個end)
DisplayNames函數:
判斷當前提供的字元串指針指向的字元串是否逗end地,如果是,直接返回,什麼也不做;
否則用當前字元串指針的下一位置指針調用另一個DisplayNames函數,等它返回後將當前不等於end的字元串printf出來並等待鍵盤輸入一個字元後返回調用者
結果就是,會倒序輸出所有字元串,最終返回主函數並結束運行
這里會調用多個DisplayNames函數,每個函數調用時調用者不同,但處理相同而已。你可以簡單理解為,調用基礎DisplayNames你就寫幾遍DisplayNames函數,第1次取名並調用的是DisplayNames1,...,第n次調用的是DisplayNamesN,每個函數的運行除返回值以外(DisplayNames沒有返回值)不互相影響
② 如何用Quartus II對用Verilog HDL語言編寫的源碼進行模擬
要使用QuartusII 進行模擬,首先進行代碼編譯。
代碼輸入完成後,點擊start compilation按鈕開始編譯,編譯完畢後,點擊新建按鈕,新建一個WaveForm文件。
然後打開Node Finder,將Pin選擇為 All,然後點擊 find 按鈕,將會將你的代碼中的所有輸入輸出管腳都顯示出來,用滑鼠選擇所有管腳,拖動到WaveForm文件的波形顯示框中,每個管腳的狀態就都出來了,在你想要輸入的管腳上設置高低電平,完畢後,點擊 Start Simulation 按鈕開始模擬,結束後輸出管腳會顯示結果。
③ 用verilog hdl語言編寫一個8—3解碼器程序
首先要糾正一下,相對多的輸入轉化成為相對少的輸出,一般叫編碼器;相對少的輸入轉化成為相對多的輸出,一般叫解碼器。所以,確切地說你要做的應該是8-3編碼器(還是3-8解碼器)。//8-3編碼器verilog代碼mole enc_83(datain, dataout, en); input [7:0] datain; input en; output [2:0] dataout; reg [2:0] dataout; always @* if (~en) dataout = 3'b0; else case(datain) 8'b0000_0001: dataout = 3'b000; 8'b0000_0010: dataout = 3'b001; 8'b0000_0100: dataout = 3'b010; 8'b0000_1000: dataout = 3'b011; 8'b0001_0000: dataout = 3'b100; 8'b0010_0000: dataout = 3'b101; 8'b0100_0000: dataout = 3'b110; 8'b1000_0000: dataout = 3'b111; default: dataout = 3'b000; endcaseendmole//關於上述代碼的說明1) 上述實現的是8-3普通編碼器,即同一時刻輸入保證只有一位有效;2) 上述代碼沒有輸出編碼有效的標識位,如果需要的話可自行添加。④ 每個Verilog HDL程序包括哪4個主要部分
每個Verilog程序包括四個主要部分:埠定義、I/O說明、內部信號聲明、功能定義。Verilog HDL是一種用於數字邏輯電路設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型。
Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種:
1、系統級(system):用高級語言結構實現設計模塊的外部性能的模型。
2、演算法級(algorithm):用高級語言結構實現設計演算法的模型。
3、RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理這些數據的模型。
4、門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。
5、開關級(switch-level):描述器件中三極體和儲存節點以及它們之間連接的模型。

(4)hdlverilog語言的編譯過程擴展閱讀
一個復雜電路系統的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊交互的現存電路或激勵信號源。
利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,並對所作設計的邏輯電路進行嚴格的驗證。Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合於演算法級和RTL級的模型設計。
Verilog的設計初衷是成為一種基本語法與C語言相近的硬體描述語言。這是因為C語言在Verilog設計之初,已經在許多領域得到廣泛應用,C語言的許多語言要素已經被許多人習慣。一種與C語言相似的硬體描述語言,可以讓電路設計人員更容易學習和接受。
不過,Verilog與C語言還是存在許多差別。另外,作為一種與普通計算機編程語言不同的硬體描述語言,它還具有一些獨特的語言要素,例如向量形式的線網和寄存器、過程中的非阻塞賦值等。總的來說,具備C語言的設計人員將能夠很快掌握Verilog硬體描述語言。
⑤ 學習verilog HDL是什麼步驟要多久才能應用
我建議你邊學邊理解邊練習。
首先,Verilog語言本身並不難,跟C語言非常的類似。你要做的工作就是比較Verilog和C的相同點和不同點,注意並總結,加深印象,同時要注意Verilog是硬體描述語言,所以編程的時候要結合數字電路的基本原理來編程。
學完Verilog,首先遍一些簡單的組合或者時序電路來加深對Verilog語言的掌握,同時多看實例多積累經驗。
像初學者剛學完Verilog,編個計數器,時鍾什麼的,(時鍾可以用數碼管顯示,這個簡單)都是可以的,不要太復雜,算是練練手。
也可以純粹的在軟體上模擬即可。
開始的時候,推薦先在軟體上模擬,然後再進行硬體模擬,這樣的順序比較合理。
其次,學習FPGA不建議用筆記本,因為工程量大的時候,運行起來是非常費時的!建議電腦配置至少採用「奔騰雙核+512M獨顯+2G內存」的模式,這個配置現在對筆記本也不算太高,但是真正做項目的時候,估計配置還是得提高。
⑥ verilog編譯指令是什麼
編譯器指令在指令之後的整個編譯過程中有效(可跨越多個文件)
可以理解為對編譯器進行「指示」 告訴編譯器一些用戶定義的規則
VHDL沒有編譯器指令(但是有EDA工具編譯器指令)
某些EDA工具提供只有該工具可識別的編譯器指令(不是標准 可以同時支持verilog和VHDL)
電子設計流程中 rtl到網表(以及各層次網表之間)的轉換叫「綜合」 這種說法是准確的
編譯是軟硬體通用的 意思是把編程語言轉換成機器碼(包括語法檢查)
平時基本上可以理解為一個意思
