当前位置:首页 > FPGA > 正文内容

Verilog实现串并转换

chanra1n2年前 (2022-04-21)FPGA3684

项目文件:SIPO.zip

//------------------------------------------------------
// File Name        : SIPO.v
// Author           : ChanRa1n
// Description      : A easy SIPO code
// Called by        : TopModule
// Revision History : 2022-04-21
// Revision         : 1.0
// Email            : chenyu@myfpga.cn
// Copyright(c) 2018-Now, MYFPGA.CN, All right reserved.
//------------------------------------------------------

module SIPO (
    input   wire   [0:0]   Sys_clk,
    input   wire   [0:0]   Sys_rst_n,
    input   wire   [0:0]   Sig_si,
    input   wire   [0:0]   Sig_si_en,
    output  wire   [7:0]   Sig_po
);
    reg   [7:0]   Sig_po_reg;
    assign Sig_po = Sig_po_reg;
   
    always@(posedge Sys_clk or negedge Sys_rst_n)begin
        if(~Sys_rst_n)begin
            Sig_po_reg <= 8'd0;
        end
        else begin
            if(Sig_si_en)begin
                Sig_po_reg <= {Sig_po_reg[6:0],Sig_si} ;
            end
            else begin
                Sig_po_reg <= Sig_po_reg ;
            end
        end
    end

endmodule


//------------------------------------------------------
// File Name        : SIPO_TB.v
// Author           : ChanRa1n
// Description      : Testbench file for SIPO_TB
// Called by        : Simulation
// Revision History : 2022-04-21
// Revision         : 1.0
// Email            : chenyu@myfpga.cn
// Copyright(c) 2018-Now, MYFPGA.CN, All right reserved.
//------------------------------------------------------

`default_nettype wire
`timescale 1ns/1ns

module SIPO_TB ();
    reg Sys_clk;
    reg Sys_rst_n;
    localparam CLK_PERIOD = 10;

    always #(CLK_PERIOD/2) Sys_clk=~Sys_clk;

    reg   [0:0]   Sig_si;
    reg   [0:0]   Sig_si_en;
    wire  [7:0]   Sig_po;

    SIPO SIPO (
    .Sys_clk(Sys_clk),
    .Sys_rst_n(Sys_rst_n),
    .Sig_si(Sig_si),
    .Sig_si_en(Sig_si_en),
    .Sig_po(Sig_po)
    );

    initial begin
        #1 Sys_rst_n<=1'b0;Sys_clk<=1'b0;
        #(CLK_PERIOD*3) Sys_rst_n<=1;
        repeat(100)begin
            Sig_si <= {$random} % 2;
            Sig_si_en <= {$random} % 2;
            #(CLK_PERIOD);
        end
        $stop;
    end

endmodule

image.png

image.png

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://myfpga.cn/index.php/post/243.html

分享给朋友:

“Verilog实现串并转换” 的相关文章

Intel FPGA初级考试模拟试题 四套含答案

Intel FPGA初级考试模拟试题 四套含答案

*1.下列对异步信号进行同步的描述错误的是(使用锁存器)。采用保持寄存器加握手信号的方法特殊的具体应用电路结构,根据应用的不同而不同使用锁存器异步 FIFO *2.FPGA 的可编程是主要基于什么结构(查找表(LUT))。查找表(LUT)ROM 可编程PAL 可编程与或阵列可编程解析:FP...

基础实验十三,DS18B20温度传感器

基础实验十三,DS18B20温度传感器

//==========================================================================// Author     : ChanRa1n// Description: Training for Intel FPGA/...

Verilog实现时钟分频(奇数分频,偶数分频)二分频 三分频 四分频 五分频

Verilog实现时钟分频(奇数分频,偶数分频)二分频 三分频 四分频 五分频

完整工程文件:clkdiv.zip//------------------------------------------------------// File Name        : clkdiv.v// Author     &nb...

Xilinx FIFO和ILA学习

Xilinx FIFO和ILA学习

`timescale 1ns / 1ps//-------------------------------------------------------//Filename       ﹕ FIFO_TOP.v//Author      ...

CDC 单脉冲信号处理

CDC 单脉冲信号处理

代码中的Sys_clk其实是没有用到的,项目文件:cdc_single.zip//------------------------------------------------------// File Name        : cdc.v// Autho...