在上一篇中詳細的介紹了怎樣創建原理圖工程,這篇同樣使用原理圖工程新建一個多路選擇器,目的是學習使用圖形輸入的仿真工具輸入仿真激勵。
新建工程,並繪制以下的原理圖。
編譯項目,會多出一個警告: Critical Warning (169085): No exact pin location assignment(s) for 4 pins of 4 total pins,其大致意思是在目標器件上有四個引腳沒有被分配,由於這次我們只用到仿真,不需要下載文件到板子上,因此沒有必要去分配管腳。
編譯成功后新建一個 University Program VWF (仿真波形文件),
雙擊主界面 Project Navigator Files 標簽下的 waveform.vwf 文件打開仿真波形文件編輯器,如下:
接下來在仿真波形文件編輯器中添加管腳,依次點擊 Edit –> Insert –> Insert Node or Bus,再點擊下圖中的 Node Finder...
點擊 List,圖為仿真引腳的選擇工具,這里我們需要添加所有的引腳。完成后點 OK。
再點一次 OK
完成引腳添加工作,接下來在 Edit --> Set End Time 中設定仿真時間,由於該編輯器的一個格子是 10 ns,這里我們設為 100 ns。
選擇需要修改的時間段,修改為需要的高低電平,修改到下面這個樣子就可以了(*^__^*)。
接下來點擊 Simulation –> Run Function Simulator 進行邏輯仿真。仿真結果如下:
可以看到,當 s = 0 時, y = a;當 s = 1 時,y = b。
仿真驗證了我們的設計是正確的。O(∩_∩)O 同樣還可以使用 verilog 語言描述一個多路選擇器,verilog 代碼如下,各位可以試試。
module mymux ( input wire a, //這里是逗號 input wire b, input wire s, output reg y //這里沒有逗號 ); //這里是分號 //**************************************************// always @ (*) //敏感信號列表,初學者打星號就可以了 begin if(s==1'b0) //兩個等號表示判斷是否相等 y = a; else y = b; end //*************************************************// endmodule