word select

2023. 4. 24. 15:12· Verilog/i2s
반응형
module count #(
    parameter DATA_WIDTH=16
) (
    input i_sys_clk,
    input i_sys_rst,
    
    output reg [DATA_WIDTH-1:0] wr_count_o,
    output reg ws_o
);

//Count the number of bits to be transmitted
//It has to be same as the data width
always @ (negedge i_sys_clk or posedge i_sys_rst) begin
    if(i_sys_rst) begin
        wr_count_o <= DATA_WIDTH[1'b0];
    end else begin
        if(wr_count_o == DATA_WIDTH - 1) begin
            wr_count_o <= DATA_WIDTH[1'b0];
        end else begin
            wr_count_o <= wr_count_o + 1;
        end
    end
end

always @ (negedge i_sys_clk or posedge i_sys_rst) begin
    if(i_sys_rst) begin
        ws_o <= 1'b0;
    end else begin
        if(wr_count_o == DATA_WIDTH - 1) begin
            ws_o <= ~ws_o;
        end
    end
end

endmodule

 

TB

`timescale 1ns/1ps

module count_TB();
    reg i_sys_clk;
    reg i_sys_rst;
    wire [15:0] wr_count_o;
    wire ws_o;

    // Instantiate the coount module
    count #(
        .DATA_WIDTH(16)
    ) my_coount (
        .i_sys_clk(i_sys_clk),
        .i_sys_rst(i_sys_rst),
        .wr_count_o(wr_count_o),
        .ws_o(ws_o)
    );

    // Clock generation
    always begin
        #5 i_sys_clk = ~i_sys_clk;
    end

    // Testbench stimulus
    initial begin
        i_sys_clk = 0;
        i_sys_rst = 1;

        // Reset the module
        #10 i_sys_rst = 0;

        // Observe the output for multiple clock cycles
        #350;

        // Finish the simulation
        $finish;
    end
endmodule

sim

반응형
저작자표시 (새창열림)
'Verilog/i2s' 카테고리의 다른 글
  • shift register (parallel data -> serial data)
  • Serial Data
  • count
  • 보수 (complement)
kyw6416
kyw6416
kyw6416
kyw6416
kyw6416
전체
오늘
어제
  • 분류 전체보기 (103)
    • PCB 설계 (16)
    • C언어 (6)
    • FPGA (15)
    • 하드웨어_ETC (0)
    • 임베디드_ETC (2)
      • 임베디드_통신 (1)
    • Qt Creator (4)
    • Tool (1)
      • Verdi (1)
    • Verilog (9)
      • i2s (5)
      • hdlbits (0)
    • DRAM (15)
      • DDR2 SDRAM (8)
      • DDR3 SDRAM (0)
      • DDR5 SDRAM (3)
    • DDR PHY (6)
      • DDR PHY 2.1 (6)
    • Makefile (10)
    • Vim (17)
    • 노션 (2)
    • SoC 설계 (0)
반응형
kyw6416
word select
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.