FPGA使用入門實驗報告示例

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(clk),

  .reset(reset),

  .seq(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波形

最近訪問