FPGA入门练习
+ -

一段状态机示例

2025-03-02 4 0
`timescale 1ns / 1ps

module mystate(input clk,input rst,output [2:0] out);

reg[2:0] state;

always@(posedge clk)
begin
    if(!rst)
        state <= 2'b00;
    else if(state == 2'b00)
        state <= 2'b01;
     else if(state == 2'b01)
        state <= 2'b10;
     else if(state == 2'b10)
        state <= 2'b11;
     else 
        state <= 2'b00;
end

assign out = state;

endmodule

测试示例:

`timescale 1ns / 1ps

module Hellotmystate();

    wire[2:0] myout;
    reg rst;
    reg clk;

    mystate myinstance(
    .clk(clk),
    .rst(rst),
    .out(myout)
    );

    initial begin
        rst = 0;
        clk = 0;
        #10
        rst = 1;
    end

    always #5 clk =~clk;

endmodule

仿真结果:
16181524716

输出为reg类型:

module mystate(input clk,input rst,output reg[10:0] count );

always@(posedge clk)
begin
    if(!rst)
        count<=10'b0;
     else
        count<= count+3;
end

endmodule

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!