基于System-Verilog的FPGA设计与仿真

@TOC

一、System-Verilog实现流水灯

1.流水灯代码

led_flow.sv

c 复制代码
module led_flow (
    input logic clk,       // 时钟信号
    input logic rst_n,     // 复位信号(低有效)
    output logic [7:0] led // 8位LED输出
);

    logic [23:0] counter;  // 24位计数器,用于产生慢时钟信号

    // 计数器逻辑
    always_ff @(posedge clk or negedge rst_n) begin
        if (!rst_n)
            counter <= 24'd0;
        else
            counter <= counter + 1;
    end

    // LED流水灯逻辑
    always_ff @(posedge counter[23] or negedge rst_n) begin
        if (!rst_n)
            led <= 8'b0000_0001;
        else
            led <= {led[6:0], led[7]};
    end
endmodule

testbench

c 复制代码
module led_flow_tb;
    logic clk;
    logic rst_n;
    logic [7:0] led;

    // 实例化待测试的流水灯模块
    led_flow uut (
        .clk(clk),
        .rst_n(rst_n),
        .led(led)
    );

    // 时钟信号生成
    initial begin
        clk = 0;
        forever #10 clk = ~clk; // 50MHz时钟周期为20ns
    end

    // 测试逻辑
    initial begin
        // 初始化信号
        rst_n = 0;
        #100;
        rst_n = 1;

        // 仿真运行一段时间后结束
        #1000000;
        $stop;
    end
endmodule

2.实验结果

3.testbench

二、参考资料

System Verilog实现流水灯

相关推荐
fei_sun15 小时前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto15 小时前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安20 小时前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈20 小时前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun21 小时前
【Verilog】第二章作业
fpga开发·verilog
碎碎思1 天前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望1 天前
fpga-状态机的设计及应用
fpga开发
晓晓暮雨潇潇1 天前
Xilinx IP核(3)XADC IP核
fpga开发·vivado·xadc·ip核
CWNULT1 天前
AMD(Xilinx) FPGA配置Flash大小选择
fpga开发
碎碎思2 天前
很能体现FPGA硬件思维的一道面试题
fpga开发