版主: 51FPGA

分享到:
共1条 1/1 1   

一步一步学ZedBoard & Zynq(二):使用PL做流水灯(转帖)

    [您是本帖的第1095位阅读者]
南盗
我是GG
高级会员

最后登陆时间:2015-01-28 12:03:43

直达楼层
1# 发表于 2014-11-12 09:48:36

《一步一步学ZedBoard & Zynq》系列第二篇,目的是为了学习不使用ARM PS情况下,只对Zynq PL的编程方法,同时学习XilinxPlanAhead工具的使用方法

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

硬件平台:Digilent ZedBoard

开发环境:Windows XP 32 bit

软件: XPS 14.2 +PlanAhead 14.2

新建工程LAB2

项目设置中,需要将芯片选为Zynq

选择文件类型为verilog,名称就ledwater

之后会提示引脚信息,默认空就可以,随后可以通过verilog代码来实现。

进入ISE后,添加源文件,内容如下

复制代码
 
/*
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流水效果




关键词:ZedBoard    流水灯    pl    

快乐生活,快乐学习。

共1条 1/1 1   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]