FPGA project : inf_rcv

2023-11-01

module top (
    input       wire            sys_clk     ,
    input       wire            sys_rst_n   ,
    input       wire            inf_in      ,

    output      wire            led         ,
    output      wire            ds          ,
    output      wire            oe          ,
    output      wire            shcp        ,
    output      wire            stcp     
);


// 例化连线
    wire    [7:0]   data        ;
    wire            sign        ;
    wire    [19:00] data_w      ;
    assign          data_w = {12'd0,data} ;
    wire    [05:00] point_w     ;
    assign          point_w = 6'b000000 ;
    wire            sign_w      ;
    assign          sign_w = 1'b0 ;
    wire            seg_en_w    ;
    assign          seg_en_w = 1'b1 ;
inf_rcv inf_rcv_insert(
    .sys_clk                ( sys_clk   ) ,
    .sys_rst_n              ( sys_rst_n ) ,
    .inf_in                 ( inf_in    ) ,

    .data                   ( data      ) ,
    .sign                   ( sign      )        
);

led led_insert(
    .sys_clk                ( sys_clk   ) ,
    .sys_rst_n              ( sys_rst_n ) ,
    .key_in                 ( sign ) ,

    .led_out                ( led  )     
);

seg_595_dynamic seg_595_dynamic_insert(
    .sys_clk                ( sys_clk    ) ,
    .sys_rst_n              ( sys_rst_n  ) ,
    .data                   ( data_w     ) ,
    .point                  ( point_w    ) ,
    .sign                   ( sign_w     ) ,
    .seg_en                 ( seg_en_w   ) ,

    .ds                     ( ds         ) ,
    .oe                     ( oe         ) ,
    .shcp                   ( shcp       ) ,
    .stcp                   ( stcp       )    
);

endmodule
module inf_rcv (
    input       wire            sys_clk     ,
    input       wire            sys_rst_n   ,
    input       wire            inf_in      ,

    output      reg     [7:0]   data        ,
    output      reg             sign        
);
    // parameter degine
    parameter       T_9MS    = 19'd450_000 ,
                    T_4_5MS  = 18'd225_000 ,
                    T_2_225MS= 17'd112_500 ,
                    T_560US  = 15'd28_000  ,
                    T_1_69MS = 17'd84_500  ;

    // parameter degine
    localparam      IDLE     = 5'b0_0001 ,
                    TIME_9MS = 5'b0_0010 ,
                    ARBITE   = 5'b0_0100 ,
                    DATA     = 5'b0_1000 ,
                    REPEAT   = 5'b1_0000 ;

    // wire signal define 
    wire            nege        ;
    wire            pose        ;


    // reg signal define
    reg             inf_in_reg0 ;
    reg             inf_in_reg1 ;
    reg             inf_in_reg2 ;
    reg     [ 4:0]  state       ;
    reg     [19:0]  cnt         ; // 虽然最大计数9ms只需19位宽,但还是定义20位宽。
    reg             flag_9ms    ; // 由于设备制造精度与环境因素影响,这个标志信号在指定目标附近拉高即可。
    reg             flag_4_5ms  ;
    reg             flag_2_25ms ;
    reg             flag_560us  ;
    reg             flag_1_69ms ;
    reg     [ 5:0]  cnt_bit     ; // 32 bit 数据
    reg     [31:0]  data_reg    ;


    // // reg signal define
    // reg             inf_in_reg0 ;
    // reg             inf_in_reg1 ;
    // reg             inf_in_reg2 ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) begin
            inf_in_reg0 <= 1'b1 ;
            inf_in_reg1 <= 1'b1 ;
            inf_in_reg2 <= 1'b1 ;
        end else begin
            inf_in_reg0 <= inf_in      ;
            inf_in_reg1 <= inf_in_reg0 ;
            inf_in_reg2 <= inf_in_reg1 ;
        end
    end
    // // wire signal define 
    // wire            nege        ;
    // wire            pose        ;
    assign  nege = ~inf_in_reg1 &&  inf_in_reg2 ;
    assign  pose =  inf_in_reg1 && ~inf_in_reg2 ;
    // reg     [ 4:0]  state       ;
    always @(posedge sys_clk or negedge sys_rst_n)
        if(~sys_rst_n) 
            state <= IDLE ;
        else case (state)
        IDLE    :if (nege == 1'b1) 
                    state <= TIME_9MS ;
                 else 
                    state <= IDLE ;
        TIME_9MS:if(pose == 1'b1 && flag_9ms == 1'b1) //T_9MS - 19'd100
                    state <= ARBITE ;
                 else if(pose == 1'b1 && flag_9ms == 1'b0)
                    state <= IDLE ;
                 else 
                    state <= TIME_9MS ;
        ARBITE  :if(nege == 1'b1 && flag_4_5ms == 1'b1) // 说明是引导码
                    state <= DATA ;
                 else if(nege == 1'b1 && flag_2_25ms == 1'b1) // 说明是重复码
                    state <= REPEAT ;
                 else if(nege == 1'b1 && flag_4_5ms == 1'b0 && flag_2_25ms == 1'b0)
                    state <= IDLE ;
                 else 
                    state <= ARBITE ;
        DATA    :if((pose == 1'b1 && flag_560us == 1'b1 && cnt_bit == 6'd32) 
                    || (pose == 1'b1 && flag_560us == 1'b0) 
                    || (nege == 1'b1 && ( flag_560us == 1'b0 && flag_1_69ms == 1'b0)))
                    state <= IDLE ;
                 else
                    state <= DATA ;
        REPEAT  :if(pose == 1'b1 )
                    state <= IDLE ;
                 else
                    state <= REPEAT ;
        default : state <= IDLE ;
        endcase
    // reg     [19:0]  cnt         ; // 虽然最大计数9ms只需19位宽,但还是定义20位宽。
    // reg             flag_9ms    ; // 由于设备制造精度与环境因素影响,这个标志信号在指定目标附近拉高即可。
    // reg             flag_4_5ms  ;
    // reg             flag_2_25ms ;
    // reg             flag_560us  ;
    // reg             flag_1_69ms ;
    // reg     [ 5:0]  cnt_bit     ; // 32 bit 数据
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) begin
            cnt         <= 20'd0 ;
            flag_9ms    <= 1'b0  ;
            flag_4_5ms  <= 1'b0  ;
            flag_2_25ms <= 1'b0  ;
            flag_560us  <= 1'b0  ;
            flag_1_69ms <= 1'b0  ;
            cnt_bit     <= 6'd0  ;
        end else begin
            case (state)
            IDLE    :begin
                        cnt         <= 20'd0 ;
                        flag_9ms    <= 1'b0  ;
                        flag_4_5ms  <= 1'b0  ;
                        flag_2_25ms <= 1'b0  ;
                        flag_560us  <= 1'b0  ;
                        flag_1_69ms <= 1'b0  ;
                        cnt_bit     <= 6'd0  ;
                     end
            TIME_9MS:begin
                        if(pose == 1'b1) begin
                            cnt <= 20'd0 ;
                        end else begin
                            cnt <= cnt + 1'b1 ;
                        end

                        if(cnt >= T_9MS - 19'd8000 && cnt <= T_9MS + 19'd8000) // 9ms附近拉高。不能太“离谱”。
                            flag_9ms <= 1'b1 ;
                        else 
                            flag_9ms <= 1'b0 ;

                        flag_4_5ms  <= 1'b0  ;
                        flag_2_25ms <= 1'b0  ;
                        flag_560us  <= 1'b0  ;
                        flag_1_69ms <= 1'b0  ;
                        cnt_bit     <= 6'd0  ;
                     end
            ARBITE  :begin
                        if(nege == 1'b1)
                            cnt <= 20'd0 ;
                        else 
                            cnt <= cnt + 1'b1 ;
                        
                        if(cnt >= T_4_5MS - 18'd8000 && cnt <= T_4_5MS + 18'd8000)
                            flag_4_5ms <= 1'b1 ;
                        else 
                            flag_4_5ms <= 1'b0 ;

                        if(cnt >= T_2_225MS - 17'd8000 && cnt <= T_2_225MS + 17'd8000)
                            flag_2_25ms <= 1'b1 ;
                        else 
                            flag_2_25ms <= 1'b0 ;

                        flag_9ms    <= 1'b0  ;
                        flag_560us  <= 1'b0  ;
                        flag_1_69ms <= 1'b0  ;
                        cnt_bit     <= 6'd0  ;
                        end
            DATA    :begin
                        if(nege == 1'b1 || pose == 1'b1)
                            cnt <= 20'd0 ;
                        else 
                            cnt <= cnt + 1'b1 ;
                        
                        if(cnt >= T_560US - 15'd8000 && cnt <= T_560US + 15'd8000)
                            flag_560us <= 1'b1 ;
                        else 
                            flag_560us <= 1'b0 ;
                        
                        if(cnt >= T_1_69MS - 15'd8000 && cnt <= T_1_69MS + 15'd8000)
                            flag_1_69ms <= 1'b1 ;
                        else 
                            flag_1_69ms <= 1'b0 ;

                        flag_9ms    <= 1'b0  ;
                        flag_4_5ms  <= 1'b0  ;
                        flag_2_25ms <= 1'b0  ;

                        if(pose == 1'b1 && flag_560us == 1'b1 && cnt_bit == 6'd32)
                            cnt_bit <= 'd0 ;
                        else if(nege == 1'b1)
                            cnt_bit     <= cnt_bit + 1'b1 ;
                        else 
                            cnt_bit     <= cnt_bit ;
                     end
            REPEAT  :begin
                        cnt         <= 20'd0 ;
                        flag_9ms    <= 1'b0  ;
                        flag_4_5ms  <= 1'b0  ;
                        flag_2_25ms <= 1'b0  ;
                        flag_560us  <= 1'b0  ;
                        flag_1_69ms <= 1'b0  ;
                        cnt_bit     <= 6'd0  ;
                        end
            default:begin
                        cnt         <= 20'd0 ;
                        flag_9ms    <= 1'b0  ;
                        flag_4_5ms  <= 1'b0  ;
                        flag_2_25ms <= 1'b0  ;
                        flag_560us  <= 1'b0  ;
                        flag_1_69ms <= 1'b0  ;
                        cnt_bit     <= 6'd0  ;
                    end
            endcase
        end
    end

    // reg [31:0]       data_reg    ;
    always @(posedge sys_clk or negedge sys_rst_n)
        if(~sys_rst_n)
            data_reg <= 31'd0 ;
        else if(state == DATA && nege == 1'b1 && cnt_bit <= 6'd31 && flag_1_69ms == 1'b1)
            data_reg[cnt_bit] <= 1'b1 ;
        else if(state == DATA && nege == 1'b1 && cnt_bit <= 6'd31 && flag_560us == 1'b1)
            data_reg[cnt_bit] <= 1'b0 ;
        else 
            data_reg <= data_reg ;

    // output signal 
    // reg     [7:0]   data        ,
    always @(posedge sys_clk or negedge sys_rst_n)
        if(~sys_rst_n)
            data <= 8'd0 ;
        else if((data_reg[23:16] == ~data_reg[31:24]) && (data_reg[7:0] == ~data_reg[15:8]))
            data <= data_reg[23:16] ;
        else 
            data <= data ;
    // reg             sign   
    always @(posedge sys_clk or negedge sys_rst_n)
        if(~sys_rst_n) 
            sign <= 1'b0 ;
        else if(state == REPEAT)
            sign <= 1'b1 ; 
        else 
            sign <= 1'b0 ;
endmodule
module led(
    input           sys_clk ,
    input           sys_rst_n ,
    input           key_in      ,

    output    wire   led_out     
);
    reg   key_in_reg1 ;
    reg   key_in_reg2 ;
    wire  pose        ;
    reg   [24:0]    cnt_500ms   ; // 24_999_999
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) begin
            key_in_reg1 <= 1'b0 ;
            key_in_reg2 <= 1'b0 ;
        end else begin
            key_in_reg1 <= key_in ;
            key_in_reg2 <= key_in_reg1 ;
        end
    end
    assign pose = ~key_in_reg2 && key_in_reg1 ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) begin
            cnt_500ms <= 25'd0 ;
        end else begin
            if(cnt_500ms == 25'd0 && pose == 1'b1) begin
                cnt_500ms <= 25'd24_999_999 ;
            end else begin
                if(cnt_500ms == 25'd0) begin
                    cnt_500ms <= cnt_500ms ;
                end else begin
                    cnt_500ms <= cnt_500ms - 1'b1 ;
                end
            end
        end
    end
    assign led_out = (cnt_500ms == 0) ? 1'b1 : 1'b0 ;  // 低电平亮。
    
endmodule

 

`timescale 1ns/1ns
module test_inf_rcv();
    reg             sys_clk     ;
    reg             sys_rst_n   ;
    reg             inf_in      ;

    wire    [7:0]   data        ;
    wire            sign        ;

// Instantiation
inf_rcv inf_rcv_insert(
    .sys_clk        ( sys_clk    ) ,
    .sys_rst_n      ( sys_rst_n  ) ,
    .inf_in         ( inf_in     ) ,

    .data           ( data       ) ,
    .sign           ( sign       )        
);
    parameter CYCLE = 20 ;
    initial begin
        sys_clk    = 1'b1 ;
        sys_rst_n <= 1'b0 ;
        inf_in    <= 1'b1 ;
        #( CYCLE * 10 )   ;
        sys_rst_n <= 1'b1 ;
        #( CYCLE * 500  ) ;

// 引导码
        inf_in <= 1'b0 ;
        #(9_000_000)   ;
        inf_in <= 1'b1 ;
        #(4_500_000)   ;
// 地址码 8'h57 0101_0111 1110_1010
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
// 地址反码 8'hA8 1010_1000 0001_0101
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
// 数据码 8'h22 0010_0010 0100_0100
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
// 数据反码 8'hDD 1101_1101 1011_1011
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 0
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(560_000)     ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
        inf_in <= 1'b0 ; // 1
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1690_000)    ;
// 结束码 
        inf_in <= 1'b0 ;
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1_000_000)   ;
// 重复码 
        inf_in <= 1'b0 ;
        #(9_000_000)   ;
        inf_in <= 1'b1 ;
        #(2_250_000)   ;
// 结束码 
        inf_in <= 1'b0 ;
        #(560_000)     ;
        inf_in <= 1'b1 ;
        #(1_000_000)   ;
        $stop             ;
    end
    always #( CYCLE / 2 ) sys_clk = ~sys_clk ;


endmodule

 

 

其他模块是之前的。

已上板验证成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FPGA project : inf_rcv 的相关文章

  • PRBS笔记

    1 概述 PRBS 伪随机二进制序列 也称为伪随机码 通常被用来测试高速信号的信号质量 伪随机 也说明了该码流并不是真正的随机 而是具有特性属性 码流由 多项式 决定 具有重复周期 PRBS具有多种阶数 如PRBS7 PRBS15 PRBS
  • 【Xilinx Vivado时序分析/约束系列6】FPGA开发时序分析/约束-IO时序输入延时

    目录 源同步FPGA输入时序分析的模型 input delay约束 极限input delay 往期系列博客 源同步FPGA输入时序分析的模型 以下为源同步FPGA输入时序分析的模型的示意图 在之前的文章中介绍过 在此介绍一下各个时钟延时的
  • 8x8LED点阵

    点量这个只需要把9高电平 13低电平就可以了 共阳极点阵 行线是led的正极 列线是led的列线 左上角点亮 显示多个灯是动态扫描的 一个一个显示的 然后间隔速度要快就可以造成显示 点阵由两篇74Hc595级联在一起驱动的 只需要三个io口
  • MIPI D-PHY介绍(二) FPGA

    MIPI D PHY介绍 二 FPGA 随着移动设备的广泛普及 MIPI D PHY作为其最主要的物理层标准之一 被越来越多地使用在各种嵌入式系统中 本文将详细介绍MIPI D PHY的工作原理和在FPGA设计中的实现方法 MIPI D P
  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • DEBUG:Generate Bitstream失败

    问题 约束失败 解决 确保IO初始化引脚正确 和选择合适的电平
  • verilog中wire和reg类型的区别

    module counter parameter CNT MAX 25 d24 999 999 input wire sys clk input wire sys rst n output reg led out reg 24 0 cnt
  • 笔试

    文章目录 前言 40 复位电路设计 1 recovery time和removal time 2 同步复位和异步复位 3 异步复位同步释放 本文参考 往期精彩 前言 嗨 今天来学习复位电路设计相关问题 微信关注 FPGA学习者 获取更多精彩
  • FPGA project : water_led

    module water led parameter MAX CNT 25 d25 000 000 input wire sys clk input wire sys rst n output wire 03 00 led signal r
  • FIFO读写控制

    如果在两个模块之间传输数据 两个模块之间的处理速率不同 会导致采集数据的遗漏或错误 在他们之间加一个数据缓存器 所有数据先经过缓存器缓存 再输入数据接送模块 创建两个模块 一个 作为发送模块 一个作为接受模块 发送模块检测到 fifo为空开
  • Verilog之assign

    Verilog中的关键词assign主要用于如下两个地方 数据流建模 用于数据流建模的显示连续赋值语句语法格式如下
  • 关于xilinx BRAM IP的延迟以及流程

    关于RAM IP的延迟 1 选择了output registers 可以在RAM输出端口添加register 也可以在core的输出添加 在primitives添加 降低clock to out到primitive的延迟 在core添加re
  • IC数字后端

    在 innovus 里面 有时候我们需要控制 tie cell 的 fanout 和 net length 来避免 tie cell 可能出现 max transition 或者 max fanout 的违例 一般来说 只要 fanout
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • 蓝桥杯真题:迷宫

    目录 题目描述 运行限制 dfs bfs 结果 题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 11 的为障碍 标记为 00 的为可以通行的地方 010000 000
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 画时序图软件——TimeGen和Timing Designer下载

    在写实验报告的时候需要画波形图 但是手头没有很好的软件 就上网搜了一些 分享出来 这里分享的是TimeGen和Timing Designer两个软件 资源均来自网上 有侵权请联系 TimeGen使用和安装都比较简单 我发的应该里面有破解方法
  • 硬核 | 从零制作一个激光雷达需要多久?

    编辑 ADS智库 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 硬件交流 技术交流群 本文只做学术分享 如有侵权 联系删文 激光雷达 LiDAR 是激光探测及测距系统的简称 目前广泛应用在无
  • 时序约束理解

    异步配置信息 跨时钟域 配置信息一般set max delay按照3delay来约束 2 异步回读 rst clear信号 设置set false path 放松时序约束要求 不应分析设计中的逻辑路径 因为不关心点到点时序要求
  • 基于FPGA的简易BPSK和QPSK

    1 框图 2 顶层 3 m generator M序列的生成 输出速率为500Kbps 4 S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据 就有4个象限 5 my pll是生成256M的时钟作为载波 因为s

随机推荐

  • 目标检测——YOLOv3、YOLOv4、YOLOv5、YOLOv7正负样本匹配、YOLO3损失函数理解

    系列文章目录 目标检测 map概念 IoU汇总IoU GIoU DIoU CIoU SIoU EIoU Wiou Focal alpha 目标检测 YOLOv3 YOLOv4 YOLOv5 YOLOv7正负样本匹配 YOLO3损失函数理解
  • linux redhat 离线安装 mysql 8.0.20

    官方文档 https dev mysql com doc refman 8 0 en linux installation rpm html 以下操作都是用 root 用户操作 另配置文件是使用mysqld initialize 生成的 e
  • kafka消费主题和消费组总结

    1 查询kafka主题列表的命令 切换到kafka的安装目录bin目录下 执行如下代码 kafka topics sh list zookeeper zookeeprerIp zookeeperPort 比如 kafka topics sh
  • WSL 的安装、报错解决、使用技巧

    需要Windows10或以上系统版本 如果你的操作系统是Windows 10 版本 2004 及更高版本 内部版本 19041 及更高版本 或 Windows 11 并且你从来没有安装过WSL 你可以使用命令行简单的安装安装 WSL 使用管
  • linux Oops和Panic关系

    常在河边走 哪能不湿鞋 用Linux 总有死机的时候 如果运气好 会看到一些所谓 Oops 信息 在屏幕上或系统日志中 比如 Unable to handle kernel paging request at virtual address
  • 印象笔记、为知笔记、有道云笔记使用比较

    特点比较 印象笔记 为知笔记 有道云笔记 Bear Typora 特点比较 功能 印象笔记 为知笔记 有道笔记 费用 免费 有会员 60 元 年 免费 有会员 手机 PC 云同步 微信保存 网页剪藏 笔记内容加密 共享笔记本 快捷键 批量导
  • 完整LUT解释说明

    什么是LUT 我们业内在LUT的应用方面有着许多混乱的认识 很多人会把LUT看成是一种 黑魔法 然而实际上它们是再正常不过的东西 因此为了帮助大家了解LUT的定义和工作原理 本文将会尽可能详细地为大家讲述LUT以及它的应用 包括用于校准的技
  • 简介JSONObject的各种用法

    1 java对象转化成String String s JSONObject toJSONString javaObject class 2 java对象转化成Object Object str JSONObject toJSON javaO
  • SW-3配置文件

    CS6200 28X EI config hos SW 3 SW 3 config vlan 10 SW 3 config vlan10 name FB YX SW 3 config vlan10 vlan 20 SW 3 config v
  • 树莓派Raspbian Buster/Debian 10 安装ROS

    目录 一些补充 安装ROS 初始化rosdep 测试 平台 树莓派4B 系统版本 2020 05 27 raspios buster arm64 img 一些补充 系统安装参考 树莓派学习笔记 一 烧录系统 无屏幕 配置Wifi和SSH服务
  • QT 元对象解析 及和其他语言区别

    说Qt信号与槽是一个很好机制 不如说Qt的元对象系统很强大 这也是大家讲Qt就必须将信号与槽 讲信号与槽就要讲Qt的元对象系统 当然初学者知道怎么用就OK啦 当然随着你写的代码越多 接触的平台越多的时候 你就会好奇Qt是如何把两个 多个 任
  • Java程序——检索文件(含内容)

    项目说明 给定一个指定目录和关键字 扫描其中的文件名和文件内容 找到包含关键字的文件 完整代码 import java io File import java io FileInputStream import java io IOExce
  • 利用find命令进行批量操作

    前些天 我要把Linux上的几千个txt文档进行转码 需要用到iconv命令 可是我总不能 一个一个的去敲 文档转码命令 iconv f GBK t UTF 8 file1 o file2 将file1从GBK转为UTF 8 并输出为fil
  • Wireshark抓包体验

    1 嗅探器原理 嗅探技术是网络安全攻防技术中很重要的一种 通过它可以获取网络中的大量信息 与主动扫描相比 嗅探更难以被察觉 能够对网络中的活动进行实时监控 网络嗅探器实际上就是网络中的窃听器 其用途就是捕获分析网络中的数据包 帮助网络管理员
  • CMake方式配置PCL+VS开发环境

    PCL VS安装配置其他方式看下面博客 本文链接 win10 vs2019 pcl1 11 0安装教程 a zhua66的博客 CSDN博客 win10 安装pcl 考虑到配置属性表 xxx props 非常麻烦繁琐 换设备又得重新选择PC
  • 电源设计问题

    目录 一 电源器件 1 法拉电容 二 充电规则 1 充电限制 2 充电时间计算 三 有线充电 四 无线充电 一 电源器件 1 法拉电容 超级电容具有功率密度高 充放电时间短 循环寿命长 工作温度范围宽等显著的优点 适合应用在大功率能量流动的
  • 南京大学《软件分析》笔记01 - 静态分析的基本概念

    Rice s Theorem Any non trivial property of the behavior of programs in a r e language is undecidable r e recursively enu
  • 顺序表初始化

    文章目录 1 顺序表 2 顺序表的初始化 1 顺序表 顺序表 顺序存储结构 存储数据时 会提前申请一整块足够大小的物理空间 然后将数据依次存储到一整块连续的存储空间内 存储时做到数据元素之间不留一丝缝隙 使用顺序表存储集合 1 2 3 4
  • Cheat Engine 教程( 1 - 9 通关 )

    工具包 https down 52pojie cn Tools Debuggers Cheat Engine 官网 https www cheatengine org Cheat Engine v7 5 汉化 https pan aoe t
  • FPGA project : inf_rcv

    module top input wire sys clk input wire sys rst n input wire inf in output wire led output wire ds output wire oe outpu