Vivado_8位流水灯

Design

代码中的计数器设置是因为我的开发板的时钟是100MHZ的,也就是1秒完成了100_000_000次时钟信号,所以我设置计数器为100_000_000次。

也就是说,我让流水灯的变化周期为1 s。

counter == 32'd100_000_000

Vivado_8位流水灯

代码

timescale 1ns / 1ps
module flow_led(
    clk,
    reset,
    led
);
input clk;
input reset;
output [7:0] led;

reg [7:0] led;
reg [31:0] counter;
reg [1:0] state;

always @(posedge clk or negedge reset)
    begin
        if(!reset)
            begin
                counter
</code></pre>
<p>Simulation</p>
<p>若在波形仿真中,我们想让与模拟的时钟信号也是100MHZ,让流水灯的周期也为1s,那样的话仿真是跑不完的。</p>
<p>所以我们先修改刚刚的计数周期:</p>
<p><code>counter == 32'd1_000_000</code></p>
<p>仿真中让时钟周期为1000 ns</p>
<p><code>parameter T=1000;</code></p>
<p>这样就可以很轻松的看到流水灯全周期的波形图了。</p>
<h3>代码</h3>
<pre><code class="language-verilog"> 1ns/1ns
module sim_dev1();
parameter T=1000;
reg clk;
reg reset;
wire [7:0] led;

initial
begin
clk=1'b0;
reset=1'b0;
#(T+1) reset=1'b1;
end

always #(T/2) clk=~clk;
flow_led u1(
.clk(clk),
.reset(reset),
.led(led)
);

endmodule

波形图

Vivado_8位流水灯

参考资料

Original: https://www.cnblogs.com/Az1r/p/16857029.html
Author: 江水为竭
Title: Vivado_8位流水灯

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685117/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球