ZYNQ_project:led

本次实验完成:led流水间隔0.5s

闪烁间隔0.25s。

名词解释:

analysis分析:对源文件进行全面的语法检查。

synthesis综合:综合的过程是由 FPGA 综合工具箱 HDL 原理图或其他形式源文件进行分析,进而推演出由 FPGA 芯片中底层基本单元表示的电路网表的过程。通俗的讲就是将自己的设计映射到 FPGA 中。

Implementation设计实现:加入一些约束文件。然后可以进行后仿真。

bitstream生成bit流文件:下载进开发板。

时序图:

代码:

分为流水与闪烁。

复制代码
// led闪烁实验,间隔0.25s
module led(
    input       wire            sys_clk     ,
    input       wire            sys_rst_n   ,

    output      reg     [1:0]   led_out     
);
    parameter   MAX_CNT25MS = 1_250_0000 ;

    reg     [23:0]  cnt_25ms ;
    wire            cnt_25ms_flag ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_25ms <= 24'd0 ;
        else if(cnt_25ms == MAX_CNT25MS - 1)
            cnt_25ms <= 24'd0 ;
        else 
            cnt_25ms <= cnt_25ms + 1'b1 ;
    end
    assign  cnt_25ms_flag = (cnt_25ms == MAX_CNT25MS - 1) ;
    // led_out  
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            led_out <= 2'd0 ;
        else if(cnt_25ms_flag)
            led_out <= ~led_out ;
    end

endmodule

// 流水
module led(
    input       wire            sys_clk     ,
    input       wire            sys_rst_n   ,
    output      reg     [1:0]   led_out     
);
    parameter MAX_CNT500MS = 25_000_000 ; // 0.5s 5000_0000 1s

    reg     [25:0]      cnt_1s ;
    // reg     [25:0]      cnt_1s
    always @(posedge sys_clk or negedge sys_rst_n) begin // �첽��λ����Ϊ���������¼���
        if(!sys_rst_n)
            cnt_1s <= 26'd0 ;
        else if(cnt_1s == MAX_CNT500MS - 1)
            cnt_1s <= 26'd0 ;
        else 
            cnt_1s <= cnt_1s + 1'b1 ;
    end

    // reg     [1:0]   led_out  
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(!sys_rst_n) 
            led_out <= 2'b01 ;
        else if(cnt_1s == MAX_CNT500MS - 1)
            led_out <= ~led_out ;
        else
        	led_out <=  led_out ;
    end
ila_0 your_instance_name (
	.clk        ( sys_clk       ) , // input wire clk


	.probe0     ( led_out   ) , // input wire [1:0]  probe0  
	.probe1     ( cnt_1s    ) // input wire [25:0]  probe1
);
endmodule

仿真代码:

复制代码
`timescale 1ns/1ns
module test_led();
    reg             sys_clk     ;
    reg             sys_rst_n   ;

    wire    [1:0]   led_out     ;

led led_inst(
    .sys_clk        ( sys_clk   ) ,
    .sys_rst_n      ( sys_rst_n ) ,
    .led_out        ( led_out   ) 
);

    parameter CYCLE = 20 ;
    defparam  led_inst.MAX_CNT500MS = 25 ;
    initial begin
        sys_clk = 1'b1 ;
        sys_rst_n <= 1'b0 ;
        #(CYCLE * 5 )  ;
        sys_rst_n <= 1'b1 ;
    end
    always #(CYCLE / 2) sys_clk = ~sys_clk ;

endmodule
相关推荐
我送炭你添花6 小时前
电子世界的奇妙冒险:从一个电阻开始(系列目录)
人工智能·单片机·嵌入式硬件·fpga开发
知识充实人生8 小时前
FPGA设计杂谈之九:HRIO/HPIO/HDIO
fpga开发·xilinx·hr i/o·hp i/o·hd i/o·io类型
maverick_11117 小时前
【FPGA】 在Verilog中,! 和 ~ 的区别
fpga开发
黄埔数据分析2 天前
QDMA把描述符当数据搬移, 不用desc engine
fpga开发
南檐巷上学2 天前
基于FPGA的正弦信号发生器、滤波器的设计(DAC输出点数受限条件下的完整正弦波产生器)
fpga开发·数字信号处理·dsp·dds
嵌入式-老费2 天前
Linux Camera驱动开发(fpga + csi rx/csi tx)
fpga开发
ALINX技术博客3 天前
【202601芯动态】全球 FPGA 异构热潮,ALINX 高性能异构新品预告
人工智能·fpga开发·gpu算力·fpga
JJRainbow3 天前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
s9123601013 天前
FPGA眼图
fpga开发
北京青翼科技3 天前
【PCIe732】青翼PCIe采集卡-优质光纤卡- PCIe接口-万兆光纤卡
图像处理·人工智能·fpga开发·智能硬件·嵌入式实时数据库