题解 | 序列发生器

序列发生器

https://www.nowcoder.com/practice/1fe78a981bd640edb35b91d467341061

该模块用于生成一个预定义的6位序列信号110100。在时钟信号clk的驱动下,模块会循环输出这个序列,直到复位信号rst_n被拉低。参数说明

  • SEQUENCE:定义了要生成的6位序列,值为6'b110100
  • SEQUENCE_LENGTH:定义了序列的长度,值为6。

在 Verilog 中,数组索引是从 0 开始的,SEQUENCE 数组的有效索引范围是 0 到 5。

`timescale 1ns/1ns

module sequence_generator(
	input clk,
	input rst_n,
	output reg data
);

parameter SEQUENCE = 6'b110100;
parameter SEQUENCE_LENGTH = 6;

reg [2:0] cnt;

always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
        cnt <= 3'b0;    
        data <= 1'b0;    
    end    
    else begin
        if(cnt == SEQUENCE_LENGTH - 1'b1)
            cnt <= 3'd0;
        else
            cnt <= cnt + 1'b1;
        data <= SEQUENCE[cnt];
    end
end

endmodule

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务