(原創)一步一步學ZedBoard & Zynq(二):使用PL做流水燈


《一步一步學ZedBoard & Zynq》系列第二篇,目的是為了學習不使用ARM PS情況下,只對Zynq PL的編程方法,同時學習Xilinx PlanAhead工具的使用方法 

更多更新請關注我的博客:@超群天晴 http://www.cnblogs.com/surpassal/

 

硬件平台:Digilent ZedBoard

開發環境:Windows XP 32 bit

軟件: XPS 14.2 +PlanAhead 14.2 

 

新建工程LAB2

項目設置中,需要將芯片選為Zynq

選擇文件類型為verilog,名稱就ledwater

之后會提示引腳信息,默認空就可以,隨后可以通過verilog代碼來實現。

進入ISE后,添加源文件,內容如下

 1 /*
 2 《一步一步學ZedBoard & Zynq》些列第二篇:使用Zynq的PL做流水燈
 3 2012年9月11日10:31:13
 4 超群天晴
 5 */
 6 
 7 module ledwater(
 8     input BTNU,
 9     input GCLK,
10     output [7:0] LD
11     );
12 wire clk,rst;
13 reg [7:0]    LD_reg;
14 reg [31:0]     cnt;
15 
16 assign clk = GCLK;
17 assign rst = ~BTNU;
18 assign LD = LD_reg;
19 
20 always@(posedge clk or negedge rst) 
21 begin
22     if(rst==1'b0)begin
23         LD_reg <= 8'b1000_0000;
24         cnt <= 32'b0;
25     end
26     else begin 
27         if (cnt == 32'd25000000)begin        
28             cnt <= 32'b0;
29             LD_reg <=(LD_reg>>1)|(LD_reg<<7);
30         end 
31         else begin
32             cnt <= cnt + 32'b1;
33         end
34     end
35 end    
36     
37 endmodule

這里設定BTNU為復位,GCLK是時鍾

查看ZedBoard的原理圖,可以知道BTNU默認是低電平。

為了實現rst下降沿復位,第38句使用了一次取反

1 assign rst = ~BTNU;

小燈的移位采用“左移1位+右移N-1”模式,第29行可以看出來

1 LD_reg <=(LD_reg>>1)|(LD_reg<<7);

設定引腳約束,ucf內容如下。LOC表示引腳鎖定,IOSTANDARD表明引腳電平。完整的ucf文件可以從Diligent官方網站上下載

 1 NET LD[0] LOC = T22  | IOSTANDARD=LVCMOS33;  # "LD0"
 2 NET LD[1] LOC = T21  | IOSTANDARD=LVCMOS33;  # "LD1"
 3 NET LD[2] LOC = U22  | IOSTANDARD=LVCMOS33;  # "LD2"
 4 NET LD[3] LOC = U21  | IOSTANDARD=LVCMOS33;  # "LD3"
 5 NET LD[4] LOC = V22  | IOSTANDARD=LVCMOS33;  # "LD4"
 6 NET LD[5] LOC = W22  | IOSTANDARD=LVCMOS33;  # "LD5"
 7 NET LD[6] LOC = U19  | IOSTANDARD=LVCMOS33;  # "LD6"
 8 NET LD[7] LOC = U14  | IOSTANDARD=LVCMOS33;  # "LD7"
 9 
10 NET GCLK LOC = Y9   | IOSTANDARD=LVCMOS33;  # "GCLK"
11 NET BTNU LOC = T18  | IOSTANDARD=LVCMOS18;  # "BTNU"

 

 使用PlanAhead I/O pin planing(post synthesis)可以看到引腳約束的結果

下載之后能看到板子上LD0~LD7流水效果

 

完整工程下載:LAB2.rar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM