spartan-3e starter kit board 入門

來源:互聯網
上載者:User

本篇博文簡要介紹下通過ISE操作spartan-3e starter kit board上的4個滑動開關和8個led燈。

 

一、設計思路

1、板子上的led燈一端已經接低電平了,所以,要點亮的話就要向另一端輸出高電平即可。

2、板子上內建的50MHZ晶振以及reset鍵都是設計模組的輸入。以便能夠及時響應3中的輸入。

3、4個滑動開關中SW2、SW1、SW0作為另一組輸入。

4、SW2、SW1、SW0的編碼即是要被點亮的led燈。即其=000,則led0點亮、=001,led1點亮。

 

二、從ISE建立project到最終將.bit下載到板子

1、fire->new project

2、晶片的型號以及封裝必須選擇好

3、

4、按右鍵工程管理區,選擇new source,選擇verilog module,填入fire name

5、設定模組的輸入輸出口,就是verilog源碼中的input與output

6、

7、在客戶區輸入所要構建的模組的verilog源碼

8、源碼編輯好後,左鍵雙擊過程管理區的check syntax確認有沒有語法錯誤

9、左鍵雙擊synthesize-xst完成綜合

10、view選擇simulation,按右鍵工程管理區,選擇new source,選擇verilog test fixture,輸入file name

11、

12、

13、輸入測試代碼,本例就是在客戶區的紅線地區。其他例子不一定!

14、按右鍵simulate behavioral model,選擇properties設定模擬的一些參數。

15、

16、按右鍵工程管理區,選擇new source,選擇implementation constraints file

17、

18、輸入約束代碼

19、雙擊implement design,完成實現步驟

20、實現完成之後,通過design summary,查看pinout report。如果,引腳約束與你定義的一致,則正確;

否則,右鍵依次雙擊synthesize-xst與implement design,直到引腳約束正確方可進行下一步。

21、雙擊generate programming file,產生.bit檔案

22、雙擊configure target device,點擊ok,代開iMPACT準備下載.bit檔案到板子

23、雙擊boundary scan

24、

25、左鍵點擊initialize chain,檢測板子的存在

26、選擇要現下載的.bit檔案

27、

28、

29、

30、滑鼠放在表徵圖上(顏色會變深),點擊右鍵,選擇program,如果提示program successed,則說明

已成功下載。

31、操作板子,觀察實驗結果是否符合設計。

 

三、總結

1、博主的ISE版本是13.3。不同的版本操作可能會有所差異。

2、實驗代碼:

led代碼:

module led(CLK,RST,LED,MODE);     input CLK;    input RST;    input [2:0] MODE;    output [7:0] LED;  reg [7:0] LED = 8'b10101010; reg [24:0] cnt_clk;  reg div_clk;  always @ (posedge CLK or posedge RST)beginif(RST)begincnt_clk <= 25'd0;div_clk <= 1'b0;endelse beginif(cnt_clk == 25'd9999999)begincnt_clk <=25'd0;div_clk <= ~div_clk;endelse begincnt_clk <= cnt_clk + 1'b1;div_clk <= div_clk;endendendalways @ (posedge div_clk or posedge RST)beginif(RST)beginLED <= 8'b10101010;endelse begincase (MODE)3'b000 :LED <= 8'b1;3'b001 :LED <= 8'b10;3'b010 :LED <= 8'b100;3'b011 : LED <= 8'b1000;3'b100 : LED <= 8'b10000;3'b101 :LED <= 8'b100000;3'b110 : LED <= 8'b1000000;3'b111 : LED <= 8'b10000000;endcaseendendendmodule

ucf約束檔案:

NET "CLK" LOC = "C9" | IOSTANDARD = LVCMOS33;NET "CLK" PERIOD = 20ns HIGH 40%;NET "RST" LOC = "K17" | IOSTANDARD = LVTTL | PULLDOWN;NET "MODE<0>" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP;NET "MODE<1>" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP;NET "MODE<2>" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP;NET "LED<0>" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<1>" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<2>" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<6>" LOC = "E9"  | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;NET "LED<7>" LOC = "F9"  | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 4;

模擬代碼:

module led_test;// Inputsreg CLK;reg RST;reg [2:0] MODE;// Outputswire [7:0] LED;// Instantiate the Unit Under Test (UUT)led uut (.CLK(CLK), .RST(RST), .LED(LED), .MODE(MODE));always #5 CLK = ~CLK;initial begin// Initialize InputsCLK = 0;RST = 0;MODE = 0;// Wait 100 ns for global reset to finish#100;        // Add stimulus hereRST = 0;MODE = 3'b001;#10000;MODE = 3'b010;#10000;MODE = 3'b100;#1000 $stop;end      endmodule

3、以前學過cc2430的板子,現在開始學FPGA,純菜鳥一枚呀。不過總體感覺來說,硬體的東西,

那些晶片的資料是很重要的。一塊電路板上一般都是一個處理器外加若干外設,外設也和處理器有

串連了,但這都是坐在電路板上了。需要晶片資料來獲得一定的資訊,便於我們使用。

4、也期待大神們不吝賜教!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.