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

文章目录

一新建一个工程

1打开quartus建立一个项目

注意打开settings在里面的Verilog HDL input选择System Verilog

二代码

1流水灯代码
c 复制代码
module led (
    input clk, // 时钟信号
    input rst_n, // 复位信号
    output reg [7:0] led // 输出信号
);

reg [3:0] cnt; // 计数器

// 时钟计数
always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin // 复位信号为低电平时清零计数器
        cnt <= 4'b0000;
    end else begin
        cnt <= cnt + 1; // 每个时钟周期计数器加一
    end
end

// 流水灯输出
always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin // 复位信号为低电平时清零输出
        led <= 8'b00000001;
    end else begin
        case (cnt)
            4'b0000: led <= 8'b00000001; // 第一位亮
            4'b0001: led <= 8'b00000010; // 第二位亮
            4'b0010: led <= 8'b00000100; // 第三位亮
            4'b0011: led <= 8'b00001000; // 第四位亮
            4'b0100: led <= 8'b00010000; // 第五位亮
            4'b0101: led <= 8'b00100000; // 第六位亮
            4'b0110: led <= 8'b01000000; // 第七位亮
            4'b0111: led <= 8'b10000000; // 第八位亮
            default: led <= 8'b00000001; // 默认第一位亮
        endcase
    end
end

endmodule

Testbench

c 复制代码
module tb_led;
    logic clk;
    logic rst;
    logic [7:0] leds;

    led_chaser uut (
        .clk(clk),
        .rst(rst),
        .leds(leds)
    );

    initial begin
        clk = 0;
        forever #5 clk = ~clk;
    end

    initial begin
        rst = 1;
        #10;
        rst = 0;
        #100;
        $stop;
    end
endmodule

三效果

1效果图
相关推荐
续写烂尾16 小时前
SD NAND vs SPI NAND:接口协议、坏块管理与开发成本全面对比
fpga开发
叶子野格17 小时前
《Verilog学习:数字系统设计基础》
学习·fpga开发
花 满 楼19 小时前
TPWM — PWM 测量模式(TIM PWM Measurement Mode)
单片机·嵌入式硬件·fpga开发
叶子野格19 小时前
《Verilog学习:前置知识》
学习·fpga开发
科恒盛远1 天前
RFSoC XCZU47DR 100G UDP高速数据传输的实现与调试(PCIE908 板卡技术系列三)
fpga开发
小麦嵌入式2 天前
FPGA入门(十一):受控线性序列机 UART 发送升级
stm32·单片机·嵌入式硬件·mcu·fpga开发·硬件工程
X_xcccc2 天前
2026硬核拆解:高性能异构计算板卡选型指南
fpga开发
tju新生代魔迷3 天前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发
aprilaaaaa4 天前
(TC397 学习笔记)二、ICU和TIM的时钟计算
笔记·学习·fpga开发
X_xcccc4 天前
2026高端FPGA开发平台权威评测与选型指南
fpga开发