FPGA学习知识(汇总)

  1. wire与reg理解,阻塞与非阻塞

  2. 时序取值,时钟触发沿向左看

  3. ip核/setup debug 添加 ila

一、ila使用小技巧

二、同步复位、异步复位和异步复位同步释放

设计复位设计,尽量使用 **异步复位同步释放;**尽管该方法仍然对毛刺敏感,但原本的毛刺复位信号也是一个不定态,无法得知该毛刺是否对工程产生负面影响,那么针对该毛刺,放大了之后更好便于处理问题。

1.项目工程复位时钟产生:

外部晶振时钟经过pll的ip核,通过locked信号,引入计数器cnt对复位信号进行展宽,以便后续的多时钟域进行打拍寄存。例如在后续的ddr设计中,在mig核使用同步复位时,现将复位进行展宽,在进行打两拍寄存,实现对ui_clk的同步

2.多时钟域下同步复位设计

三、呼吸灯实验(PWM调制)

复制代码
`timescale 1ns / 1ps
//
// Description:呼吸灯
//
module top(
    input   clk_50M ,    
    output  led     
);

    reg [15:0] cnt_T;
    reg [15:0] cnt_duty ;
    reg        flag ;

    wire  clk_sys_50M  ;
    wire  clk_sys_100M ;
    wire  rst_sys      ;


assign led = (cnt_duty > cnt_T) ? 'd1 : 'd0;
//时钟和复位
clock_and_reset u0(
    .clk_50M        (clk_50M     ),
    .clk_sys_50M    (clk_sys_50M ),
    .clk_sys_100M   (clk_sys_100M),
    .rst_sys        (rst_sys     )
);

always @(posedge clk_sys_50M or posedge rst_sys) begin
    if(rst_sys)
        cnt_T <= 'd0;
    else if(cnt_T >= 'd50_000)
        cnt_T <= 'd0;
    else
        cnt_T <= cnt_T + 'd1;
end

//默认上电复位从暗到亮
always @(posedge clk_sys_50M or posedge rst_sys) begin
    if(rst_sys)begin
        cnt_duty <= 'd0;
        flag <= 'd1;
    end
    else if(cnt_T >= 'd50_000)begin
        //flag = 1,亮度递增;佛增递减  
        if(flag)begin
            if(cnt_duty == 'd50_000)
                flag <= ~flag;
            else
               cnt_duty <= cnt_duty + 'd25;
        end
        else begin
            if(cnt_duty == 'd0)
                flag <= ~flag;
            else               
                cnt_duty <= cnt_duty - 'd25;  
        end
    end
    else
        flag <= flag;
end

endmodule

相关推荐
風清掦2 分钟前
【STM32学习笔记-15】FLASH 闪存(Claude)
笔记·stm32·单片机·嵌入式硬件·学习
新时代牛马2 分钟前
内核调试方法
linux·学习
我想我不够好。12 分钟前
贝利亚 扎克
学习
MartinYeung535 分钟前
[论文学习]CAMIA:基于上下文感知的成员资格推断攻击:针对预训练大型语言模型的深度分析
人工智能·学习·语言模型
Monkey of Semi39 分钟前
ARTIX-7 FPGA 核心板学习之FPGA Xilinx 7 series 命名规则
fpga开发
chase。43 分钟前
【学习笔记】Unified World Models:基于视频-动作耦合扩散的机器人预训练新范式
笔记·学习·音视频
ALINX技术博客1 小时前
【黑金云课堂】FPGA技术教程Vitis开发:TCP以太网通信
网络协议·tcp/ip·fpga开发
一锅炖出任易仙1 小时前
创梦汤锅学习日记day32
学习·ai·游戏引擎
影寂ldy2 小时前
C# 事件完整学习笔记(发布订阅 + 自定义事件 + 内置 EventHandler)
笔记·学习·c#
fox_lht2 小时前
15.4.循环和迭代器的性能比较
开发语言·后端·学习·rust