赞
踩
本文使用软件为vivado,其实用哪个软件都是一样的,主要是掌握核心编程思想。
如有需要下载vivado软件下载可以参考:
vivado及ISE各版本软件下载方法、链接及详细步骤,官方网页下载_ise软件下载_千寻xun的博客-CSDN博客
目录
1、双击打开软件(我使用的是2021版本,使用其他版本也一样)
2、新建工程
点击创建工程:
点下一步:
选择工程存放路径以及生成的工程名字:
可以选择先不定义源文件,后面进行添加即可,点下一步:
选择器件型号,如果有FPGA开发板,在这里选择自己FPGA对应的型号即可,如果没有开发板,可以随便选择一个,选好点击下一步:
点击完成即可:
2、添加工程文件
点击添加文件:
先添加设计文件,点击下一步:
点击新建:
定义新建的设计文件名字,建议和工程名字相同。点ok。
点击完成
点击ok。选择yes.。
在设计文件中可以看到我们新建的工程文件。
到这里,新建工程和设计文件以经完成了。
1、定义端口
LED流水灯主要需要定义时钟clk,和led。
我这里led灯有8个,定义信号名为【7:0】led。
-
- module LED(
- input clk,//输入信号定义为input
- output [7:0]led//输出信号定义为output
- );
- endmodule
如果添加一个输入复位信号rst,知道该怎么定义了吗
2、计数器设计。
流水灯如果频率太快看起来就和全部常亮一样。我这里设计一个1s周期的流水灯,频率f=1/T;频率为1hz。我这个板上时钟频率为25mhz,根据自己实际的时钟来。
- reg [31:0]cnt=0;//计数
- reg clk1hz=0;//1hz时钟
- always@(posedge clk)
- begin
- if(cnt==32'd12500000-1)
- begin
- cnt<=0;
- clk1hz<=!clk1hz;
- end
- else
- cnt<=cnt+1;
- end
cnt计数到12500000-1;这个值怎么算的?
时钟25Mhz,即25000000;
要得到的时钟为1hz,
及一个1hz的时钟周期需要25mhz时钟计数25000000/1次。
一个时钟包括高电平和低电平。一般时钟的占空比都为百分之50,
所以1hz时钟的高电平和低电平都需要25mhz时钟计数12500000次。
计数器是从0开始计数的,所以计数到12500000-1就相当于计数了12500000次;
给时钟定义一个初值0,计数到12500000-1就翻转一次,变为1。一直循环即可得到一个1hz的时钟。
3、led灯赋值
首先需要确定led灯是低电平点亮还是高电平点亮。
我这里是高电平点亮。
流水灯的设计有很多方法,我这里介绍一个代码相对简短的。
- reg[7:0]c1=8'd1;
- always@(posedge clk1hz)
- begin
- if(c1[7]==1)
- c1<=8'd1;
- else
- c1<=c1<<1'b1;
- end
- assign led=c1;
<<为移位符号。
原理为:c1信号赋初值为1,及8'b00000001;
在时钟clk1hz下进行移位,<<1'b1表示一次移1位;
当c1【7】==0,即=8‘b10000000时让它又回到8'b00000001。
重复循环就实现了一个简单的流水灯。
4、整体代码
- module LED(
- input clk,//25M
- output [7:0]led
- );
- reg [31:0]cnt=0;
- reg clk1hz=0;
- always@(posedge clk)
- begin
- if(cnt==32'd12500000-1)
- begin
- cnt<=0;
- clk1hz<=!clk1hz;
- end
- else
- cnt<=cnt+1;
- end
- reg[7:0]c1=8'd1;
- always@(posedge clk1hz)
- begin
- if(c1[7]==1)
- c1<=8'd1;
- else
- c1<=c1<<1'b1;
- end
- assign led=c1;
- endmodule
新建仿真文件
2、编写仿真代码
打开新建的文件
2、编写仿真的测试代码
代码如下:
- module tb_led();
- reg clk=0;
- wire [7:0]led;
-
- LED u1(
- .clk(clk),
- .led(led)
- );
-
- always #10 clk<=~clk;
- endmodule
3、运行仿真
用vivado自带的仿真比较慢。
可以看出led在按位变为1,即点亮。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。