这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 企业专区» Xilinx» 一步一步学ZedBoard & Zynq(二):使用PL做流水灯(转帖)

共1条 1/1 1 跳转至

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

专家
2014-11-12 09:48:36 打赏

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

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

硬件平台:DigilentZedBoard

开发环境:Windows XP 32 bit

软件:XPS 14.2 +PlanAhead 14.2

新建工程LAB2

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

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

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

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

复制代码 1/*
2《一步一步学ZedBoard & Zynq》些列第二篇:使用Zynq的PL做流水灯
32012年9月11日10:31:13
4超群天晴
5*/
6
7moduleledwater(
8inputBTNU,
9inputGCLK,
10output[7:0] LD
11);
12wireclk,rst;
13reg[7:0] LD_reg;
14reg[31:0] cnt;
15
16assignclk =GCLK;
17assignrst = ~BTNU;
18assignLD =LD_reg;
19
20always@(posedgeclkornegedgerst)
21begin
22if(rst==1'b0)begin
23LD_reg <=8'b1000_0000;
24cnt <=32'b0;
25end
26elsebegin
27if(cnt ==32'd25000000)begin
28cnt <=32'b0;
29LD_reg <=(LD_reg>>1)|(LD_reg<<7);
30end
31elsebegin
32cnt <= cnt +32'b1;
33end
34end
35end
36
37endmodule

复制代码

这里设定BTNU为复位,GCLK是时钟

查看ZedBoard的原理图,可以知道BTNU默认是低电平。

为了实现rst下降沿复位,第38句使用了一次取反


1assignrst = ~BTNU;

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


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

设定引脚约束,ucf内容如下。LOC表示引脚锁定,IOSTANDARD表明引脚电平。完整的ucf文件可以从Diligent官方网站上下载

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

复制代码

使用PlanAhead I/O pin planing(post synthesis)可以看到引脚约束的结果

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




关键词: ZedBoard 流水灯 pl

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]