基于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效果图
相关推荐
乌恩大侠14 小时前
【OAI】 USRP 在conf文件中的配置,RU选项
fpga开发
qq_小单车2 天前
xilinx-DNA
fpga开发·xilinx
Flamingˢ2 天前
FPGA中的嵌入式块存储器RAM:从原理到实现的完整指南
fpga开发
Flamingˢ2 天前
FPGA中的存储器模型:从IP核到ROM的深度解析与应用实例
网络协议·tcp/ip·fpga开发
FPGA小c鸡2 天前
【FPGA深度学习加速】RNN与LSTM硬件加速完全指南:从算法原理到硬件实现
rnn·深度学习·fpga开发
Aaron15882 天前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理
博览鸿蒙3 天前
IC 和 FPGA,到底区别在哪?
fpga开发
思尔芯S2C3 天前
FPGA原型验证实战:如何应对外设连接问题
fpga开发·risc-v·soc设计·prototyping·原型验证
Flamingˢ3 天前
FPGA实战:VGA成像原理、时序详解与Verilog控制器设计与验证
fpga开发
FPGA_小田老师3 天前
xilinx原语:OSERDES2(并串转换器)原语详解
fpga开发·lvds·xilinx原语·oserdese·并串转换