網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

FPGA使用入門實驗報告示例

欄目: 實驗報告 / 釋出於: / 人氣:2.44W

一.實驗目的

FPGA使用入門實驗報告示例

(1) 掌握ISE 13.2整合開發環境和Modelsim軟體的使用方法;

(2) 熟悉S6 Card實驗板的使用方法。

(3) 掌握使用Verilog HDL語言實現常用組合邏輯和時序邏輯的方

法。

(4) 瞭解Chipscope的功能與使用方法。

二. 實驗內容

(1) 熟悉S6 CARD實驗板;

(2) 熟悉ISE整合開發環境;

(3) 3位元加法器模擬與上板實驗

(4)m序列產生器模擬與在板Chipscope除錯。

三. 實驗過程依照指導書進行

四. 實驗程式碼分析

(1)3bit加法器(見註釋)

module m_seq_gen(

//埠I/O定義

input clk,//定義clk為輸入型別

input reset,//定義resert為輸入型別

output seq//定義seq為輸出型別

);

//內部訊號說明

reg [3:0] state;//定義變數state,為暫存器型,位寬為4

//功能定義

always @(posedge clk or negedge reset)//當clk上升沿來到或者reset下降沿來到,//觸發敏感事件,執行以下程式

begin

if(!reset)//如果不是reset下降沿來到

state <= 4'b1111;//state輸出結果為4位的二進位制數字1111

else

begin

state[3:1] <= state[2:0];//state從第二位到第四位輸出結果為其第一位//到第三位的數值

state[0] <= ^(state & 4'b1001);//state第一位輸出結果為state原來的//值與二進位制數1001相與的結果

end

end

assign seq = state[0]; //連續賦值,將state第一位值賦給seqEndmodule

(2)m序列測試檔案程式碼分析(見註釋)

module test_m;

// Inputs,將clk和reset定義為暫存器型別

reg clk;

reg reset;

// Outputs

wire seq;//將seq定義為連線型別

// Instantiate the Unit Under Test (UUT)

m_seq_gen uut (

(clk),

t(reset),

(seq)

);

initial begin

// Initialize Inputs,將初始值均設為0

clk = 0;

reset = 0;

// Wait 100 ns for global reset to finish

#100;

reset = 0;

#50 reset = 1;

// Add stimulus here

end

always #10 clk = ~clk;//產生測試時鐘,延時10s後使時鐘取反endmodule

五. 實驗模擬結果分析

1.3位元加法器(見註釋)

(1)功能模擬波形

由上圖可知加法器功能正常,且當a、b之和大於7時產生進位

(2)時序模擬波形

板子上撥碼開關的6、7、8和1、2、3分別作為加法器的輸入,D1-D4 LED燈分別表示cout和sum,撥動撥碼開關,觀察

LED

的變化。

實驗板實照

由上圖可證程式執行正常,3位元加法成功

2. m序列產生器

(1)產生原理:每一個週期內,第一個和第四個暫存器的值作異或

運算後,暫存器移位,運算出的值賦給第一個暫存器,構成新的系統暫存器狀態值。

(2)功能模擬波形

第一行為時鐘訊號,第二行為重置訊號,第三行為輸出的m序列。

(3)Chipscope波形