在FPGA工程設計中,加法器的身影隨處可見,加法器看似簡單在實際的應用中很容易出錯,尤其是在做定點數加法時往往會遇到沒有小數點位置對齊導致錯誤。加法器主要可分為半加器、全加器;按操作數不同可以分定點數加法器、浮點數加法器,針對有符號無符號數也要設計不同的加法器。學習是個由淺及深循序漸進的過程,一開始就從最簡單的半加器開始,這里用最簡單的加法器熟悉一下FPGA開發流程,建工程的一些規范及怎樣寫去仿真。
1.一位半加器: 電路是指對兩個輸入數據位相加,輸出一個結果位和進位,沒有進位輸入的加法器電路。 是實現兩個一位二進制數的加法運算電路。半加器不考慮低位的進位
module halfadder(cout,sum,a,b);
outputcout,sum; //不申明,默認是wire變量
input a,b;
assign{cout,sum}=a+b;//cout為進位,sum為和
endmodul
2.全加器 :是用門電路實現兩個二進制數相加并求出和的組合線路,稱為一位全加器。一位全加器可以處理低位進位,并輸出本位加法進位。多個一位全加器進行級聯可以得到多位全加器。
module fulladder(a,b,cin,cout,sum); inputa,b,cin; outputcout,sum; assign{cout,sum}=a+b+cin; endmodule 3.兩個半加器構成全加器 module fulladder(x,y,c_in,sum,c_out); inputx; inputy; inputc_in; outputsum; outputc_out; wirea_sum; wirea_out; wireb_out; assignc_out=a_out|b_out; halfadderhalf(x,y,a_sum,a_out); halfadderhalf1(c_in,a_sum,sum,b_out); endmodule 第一步新建一個文件夾 建工程文件夾盡量規范,文件夾下最要包含 doc prj RTL Testbench 文件夾 doc主要放一些工程文檔 前期沒有可以空著,prj文件夾放工程,及ip核文件,RTL放模塊代碼.v文件 ,Testbench文件夾放測試激勵文件。
51hei截圖20200111112428.png (49.52 KB, 下載次數: 124)
下載附件
工程文件夾模板
2020-1-11 11:28 上傳
2.打開quartus 軟件新建工程,
51hei截圖20200111114421.png (23.73 KB, 下載次數: 118)
下載附件
2020-1-11 12:10 上傳
選擇路徑 并給工程命名
51hei截圖20200111114631.png (30.39 KB, 下載次數: 134)
下載附件
選擇仿真工具和語言
2020-1-11 12:10 上傳
選擇仿真工具和 仿真語言
51hei截圖20200111114708.png (21.04 KB, 下載次數: 124)
下載附件
新建.v文件
2020-1-11 12:10 上傳
新建一個verilog文件
51hei截圖20200111114856.png (99.3 KB, 下載次數: 101)
下載附件
2020-1-11 12:10 上傳
編寫代碼并保存
51hei截圖20200111115016.png (21.85 KB, 下載次數: 125)
下載附件
2020-1-11 12:10 上傳
將代碼保存到RTL文件夾
再新建一個verilog文件 作為Tb文件 編寫tb文件后保存到TB文件下。
編寫完成后需要進行仿真設置。
仿真設置.png (65.31 KB, 下載次數: 106)
下載附件
2020-1-11 12:10 上傳
選擇設置菜單
添加Tb1.png (56.11 KB, 下載次數: 123)
下載附件
2020-1-11 12:10 上傳
選擇simulation設置
tb2.png (11.26 KB, 下載次數: 121)
下載附件
2020-1-11 12:10 上傳
添加TB文件
tb3.png (24.91 KB, 下載次數: 105)
下載附件
2020-1-11 12:10 上傳
仿真.png (57.91 KB, 下載次數: 115)
下載附件
2020-1-11 12:10 上傳
添加完成后進行仿真
51hei截圖20200111124415.png (6.19 KB, 下載次數: 103)
下載附件
2020-1-11 12:44 上傳
仿真結果
|