基于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效果图
相关推荐
dai8910118 小时前
使用紫光同创FPGA实现HSSTLP IP支持的线速率
fpga开发
s09071369 小时前
XIlinx FPGA使用LVDS的电源与电平关键指南
fpga开发·xilinx·lvds
Joshua-a18 小时前
FPGA基于计数器的分频器时序违例的解决方法
嵌入式硬件·fpga开发·fpga
尤老师FPGA18 小时前
LVDS系列38:Xilinx 7系 AD9253 LVDS接口设计仿真(五)
fpga开发
史蒂芬_丁19 小时前
PG分频_CLB
fpga开发
博览鸿蒙21 小时前
嵌入式是否如传说中那么简单?
fpga开发
Aaron15881 天前
全频段SDR干扰源模块设计
人工智能·嵌入式硬件·算法·fpga开发·硬件架构·信息与通信·基带工程
洋洋Young1 天前
【Xilinx FPGA】DDR3 SDRAM 控制器
fpga开发·xilinx
碎碎思2 天前
在 FPGA 里跑 SDR 和 FT8:一个 32 MHz 全频谱无线电的硬核实现
fpga开发
EVERSPIN2 天前
USB3.0接口转换高性能图像传感和数据采集方案
fpga开发·usb3.0·接口转换·usb3.0接口转换