重温FPGA设计流程三:(基于Verilog来设计流水灯)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37512669/article/details/90084432

软件:Vivado2017.4 板卡:Ego1 型号:xc7a35tcsg324-1

三、基于Verilog来设计流水灯

1、打开Vivado,创建一个名为design_test的空白工程。

2、点击Add source或者Sources中的+号来添加或者创建一个设计源文件,点击Next。


3、点击Create File来创建一个空白的源文件,类型选择为Verilog,文件名为flowing_light。

4、点击Finish后,弹出Define Module窗口,直接OK然后Yes跳过,端口我们后续在代码中进行写入,先不定义。

5、在.v文件中写入流水灯源代码。
module flowing_light(
input clk,
input rst,
output [15:0]led
);
reg [23:0]cnt_reg;
reg [15:0]light_reg;
always@(posedge clk)
begin
if(!rst)
cnt_reg<=0;
else
cnt_reg<=cnt_reg+1;
end
always@(posedge clk)
begin
if(!rst)
light_reg <=16'h0001;
else if(cnt_reg == 24'hffffff)
begin
if(light_reg==16'h8000)
light_reg<=16'h0001;
else
light_reg <=light_reg<<1;
end
end
assign led =light_reg;
endmodule

6、再次在Source中点击+号添加仿真文件,选择Add or create simulation sources,然后Create File,文件名为tb ,并且一样还是直接跳过Define Module。

7、仿真文件代码如下
`timescale 1ns / 1ps

module tb();
reg clk;
reg rst;
wire [3:0]led;
flowing_light u0(
.clk(clk),
.rst(rst),
.led(led));
parameter PERIOD =10;
always begin
clk=1'b0;
#(PERIOD/2)clk=1'b1;
#(PERIOD/2);
end
initial begin
clk =1'b0;
rst =1'b0;
#100;
rst= 1'b1;
#100;
rst =1'b0;
#100;
rst =1'b1;
end
endmodule

8、在Flow Navigator中,Run simulation,Run Behavioral Simulation。

9、添加约束。

10、最后generate bitstream,考到片上就可以了。
视频地址: https://www.bilibili.com/video/av52056515/

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37512669/article/details/90084432

最新文章

最新文章