状态机的练习:按键控制led灯

news2024/11/25 1:03:54

设计思路:

三个按键控制led输出。

三个按键经过滤波(消抖),产生三个按键标志信号。

三个led数据的产生模块(流水,跑马,闪烁模块),分别产生led信号。

这六路信号(三路按键信号,三路led信号),接入state_led_ctrl模块,进行led_out的控制。

状态机:

 

模块框图:

代码:

/*
    1位按键消抖
*/ 
module key_filter (
    input       wire            sys_clk     ,
    input       wire            sys_rst_n   ,
    input       wire            key_in      ,

    output      reg             key_flag    
);
    // 参数定义
    parameter   MAX_CNT_10MS = 500_000   ;
    localparam  IDLE         = 4'b0001   ,
                FILTER_UP    = 4'b0010   ,
                SAMPLING     = 4'b0100   ,
                FILTER_BACK  = 4'b1000   ;
    // reg signal define 
    reg                 key_in_r1 ;  
    reg                 key_in_r2 ;
    reg     [18:0]      cnt_core  ;
    reg     [3:0]       state_c   ;
    reg     [3:0]       state_n   ;
    // wire signal define 
    wire                nege                  ;
    wire                pose                  ;
    wire                IDLEtoFILTER_UP       ;
    wire                FILTER_UPtoIDLE       ;
    wire                FILTER_UPtoSAMPLING   ;
    wire                SAMPLINGtoFILTER_BACK ;
    wire                FILTER_BACKtoIDLE     ;
    wire                filter_done           ; 
    /******************************************************************/
    // reg                 key_in_r1 ; 
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            key_in_r1 <= 1'b1 ;
        else
            key_in_r1 <= key_in ;
    end 
    // reg                 key_in_r2 ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            key_in_r2 <= 1'b1 ;
        else
            key_in_r2 <= key_in_r1 ;
    end 
    // wire                nege      ;
    assign  nege = ~key_in_r1 &&  key_in_r2 ;
    // wire                pose      ;  
    assign  pose =  key_in_r1 && ~key_in_r2 ;
    // reg     [3:0]       state_c   ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            state_c <= IDLE ;
        else
            state_c <= state_n ;
    end
    // reg     [3:0]       state_n   ;
    always @(*) begin
        case(state_c)
        IDLE      : if(IDLEtoFILTER_UP)
                        state_n = FILTER_UP ;
                    else 
                        state_n = IDLE ;
        FILTER_UP : if(FILTER_UPtoIDLE)
                        state_n = IDLE ;
                    else if(FILTER_UPtoSAMPLING)
                        state_n = SAMPLING ;
                    else 
                        state_n = FILTER_UP ;
        SAMPLING  : if(SAMPLINGtoFILTER_BACK)
                        state_n = FILTER_BACK ;
                    else 
                        state_n = SAMPLING ;
        FILTER_BACK:if(FILTER_BACKtoIDLE)
                        state_n = IDLE ;
                    else
                        state_n = FILTER_BACK ;
        default   :     state_n = IDLE ;
        endcase
    end
    assign  IDLEtoFILTER_UP         = (state_c == IDLE)       && (nege) ;
    assign  FILTER_UPtoIDLE         = (state_c == FILTER_UP)  && (pose) ;
    assign  FILTER_UPtoSAMPLING     = (state_c == FILTER_UP)  && (filter_done) ;
    assign  SAMPLINGtoFILTER_BACK   = (state_c == SAMPLING)   && (pose) ;
    assign  FILTER_BACKtoIDLE       = (state_c == FILTER_BACK)&& (filter_done) ;
    // reg     [18:0]      cnt_core  ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_core <= 19'd0 ;
        else
        case (state_c)
        IDLE       :cnt_core <= 19'd0 ; 
        FILTER_UP  :if(filter_done)
                        cnt_core <= 19'd0 ;
                    else 
                        cnt_core <= cnt_core + 1'b1 ;
        SAMPLING   :cnt_core <= 19'd0 ; 
        FILTER_BACK:if(filter_done)
                        cnt_core <= 19'd0 ;
                    else 
                        cnt_core <= cnt_core + 1'b1 ;
        default    :    cnt_core <= 19'd0 ;
        endcase
    end
    // wire                filter_done
    assign  filter_done = (cnt_core == MAX_CNT_10MS - 1) ;
    // output reg key_flag
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            key_flag <= 1'b0 ;
        else if(FILTER_UPtoSAMPLING)
            key_flag <= ~key_in_r2 ;
        else 
            key_flag <= 1'b0 ;
    end

endmodule

 

module led_paoma (
    input		wire				sys_clk      ,
    input		wire				sys_rst_n    ,

    output		reg     [3:0]       led_out     
);

    parameter   MAX_CNT_500MS = 25_000_000 ;
    // reg signal define
    reg     [24:0]      cnt_500ms ;
    reg     [ 1:0]      cnt_state ;
    // wire signal define
    wire                add_cnt_500ms ;
    wire                end_cnt_500ms ;
    wire                add_cnt_state ;
    wire                end_cnt_state ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/
    // reg     [24:0]      cnt_500ms ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_500ms <= 25'd0 ;
        else if(add_cnt_500ms) begin
            if(end_cnt_500ms)
                cnt_500ms <= 25'd0 ;
            else 
                cnt_500ms <= cnt_500ms + 1'b1 ;
        end
        else 
            cnt_500ms <= 25'd0 ;
    end
    // reg     [ 1:0]      cnt_state ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_state <= 2'd0 ;
        else if(add_cnt_state) begin
            if(end_cnt_state)
                cnt_state <= 2'd0 ;
            else 
                cnt_state <= cnt_state + 1'b1 ;
        end 
        else 
            cnt_state <= cnt_state ;
    end
    // // wire signal define
    // wire                add_cnt_500ms ;
    assign  add_cnt_500ms = 1'b1 ;
    // wire                end_cnt_500ms ;
    assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;
    // wire                add_cnt_state ;
    assign  add_cnt_state = end_cnt_500ms ;
    // wire                end_cnt_state ;
    assign  end_cnt_state = ((add_cnt_state && (cnt_state == 2'b11 )) ) ; 
    // output reg [3:0]     led_out 
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            led_out <= 4'b0000 ;
        else 
        case (cnt_state)
        2'b00 :     led_out <= 4'b0001 ;
        2'b01 :     led_out <= 4'b0010 ;
        2'b10 :     led_out <= 4'b0100 ;
        2'b11 :     led_out <= 4'b1000 ;
        default:    led_out <= 4'b0000 ;
        endcase
    end
endmodule

 

module shanshuo (
    input		wire				sys_clk      ,
    input		wire				sys_rst_n    ,

    output		reg     [3:0]       led_out     
);

    parameter   MAX_CNT_500MS = 25_000_000 ;
    // reg signal define
    reg     [24:0]      cnt_500ms ;
    // wire signal define
    wire                add_cnt_500ms ;
    wire                end_cnt_500ms ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/
    // reg     [24:0]      cnt_500ms ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_500ms <= 25'd0 ;
        else if(add_cnt_500ms) begin
            if(end_cnt_500ms)
                cnt_500ms <= 25'd0 ;
            else 
                cnt_500ms <= cnt_500ms + 1'b1 ;
        end
        else 
            cnt_500ms <= 25'd0 ;
    end

    // // wire signal define
    // wire                add_cnt_500ms ;
    assign  add_cnt_500ms = 1'b1 ;
    // wire                end_cnt_500ms ;
    assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;

    // output reg [3:0]     led_out 
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            led_out <= 4'b0000 ;
        else if(end_cnt_500ms)
            led_out <= ~led_out ;
        else 
            led_out <=  led_out ;
    end
    
endmodule

 

module led_water (
    input		wire				sys_clk      ,
    input		wire				sys_rst_n    ,

    output		reg     [3:0]       led_out     
);

    parameter   MAX_CNT_500MS = 25_000_000 ;
    // reg signal define
    reg     [24:0]      cnt_500ms ;
    reg     [ 2:0]      cnt_state ; 
    // wire signal define
    wire                add_cnt_500ms ;
    wire                end_cnt_500ms ;
    wire                add_cnt_state ;
    wire                end_cnt_state ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/
    // reg     [24:0]      cnt_500ms ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_500ms <= 25'd0 ;
        else if(add_cnt_500ms) begin
            if(end_cnt_500ms)
                cnt_500ms <= 25'd0 ;
            else 
                cnt_500ms <= cnt_500ms + 1'b1 ;
        end
        else 
            cnt_500ms <= 25'd0 ;
    end
    // reg     [ 1:0]      cnt_state ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            cnt_state <= 2'd0 ;
        else if(add_cnt_state) begin
            if(end_cnt_state)
                cnt_state <= 2'd0 ;
            else 
                cnt_state <= cnt_state + 1'b1 ;
        end 
        else 
            cnt_state <= cnt_state ;
    end
    // // wire signal define
    // wire                add_cnt_500ms ;
    assign  add_cnt_500ms = 1'b1 ;
    // wire                end_cnt_500ms ;
    assign  end_cnt_500ms = add_cnt_500ms && (cnt_500ms == (MAX_CNT_500MS - 1)) ;
    // wire                add_cnt_state ;
    assign  add_cnt_state = end_cnt_500ms ;// && led_flag
    // wire                end_cnt_state ;
    assign  end_cnt_state = ((add_cnt_state && (cnt_state == 3'b101 )) ) ; 
    // output reg [3:0]     led_out 
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            led_out <= 4'b0000 ;
        else 
        case (cnt_state)
        3'b000 :     led_out <= 4'b0001 ;
        3'b001 :     led_out <= 4'b0010 ;
        3'b010 :     led_out <= 4'b0100 ;
        3'b011 :     led_out <= 4'b1000 ;
        3'b100 :     led_out <= 4'b0100 ;
        3'b101 :     led_out <= 4'b0010 ;
        default:     led_out <= 4'b0000 ;
        endcase
    end
endmodule

 

module state_led_ctrl (
    input		wire				sys_clk         ,
    input		wire				sys_rst_n       ,
    input       wire                water_flag      ,
    input       wire                paoma_flag      ,
    input       wire                shanshuo_flag   ,
    input       wire    [3:0]       led_water       ,
    input       wire    [3:0]       led_paoma       ,
    input       wire    [3:0]       led_shanshuo    ,

    output	    reg     [3:0]       led_out         
);

    localparam          IDLE        = 4'b0001 ,
                        WATER       = 4'b0010 ,
                        PAOMA       = 4'b0100 ,
                        SHANSHUO    = 4'b1000 ;

    // reg signal define
    reg     [3:0]       state_c ;
    reg     [3:0]       state_n ;
    // wire signal
    wire                IDLEtoWATER         ;
    wire                IDLEtoPAOMA         ;
    wire                IDLEtoSHANSHUO      ;
    wire                WATERtoPAOMA        ;
    wire                WATERtoSHANSHUO     ;
    wire                PAOMAtoWATER        ;
    wire                PAOMAtoSHANSHUO     ;
    wire                SHANSHUOtoPAOMA     ;
    wire                SHANSHUOtoWATER     ;
/******************************************************************************************
********************************************main code**************************************
*******************************************************************************************/
    // // reg signal define
    // reg         state_c ;
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            state_c <= IDLE ;
        else
            state_c <= state_n ;
    end
    // reg         state_n ;
    always @(*) begin
        case(state_c)
        IDLE     :  if(IDLEtoWATER)
                        state_n = WATER ;
                    else if(IDLEtoPAOMA)
                        state_n = PAOMA ;
                    else if(IDLEtoSHANSHUO)
                        state_n = SHANSHUO ;
                    else 
                        state_n = IDLE ;
        WATER    :  if(WATERtoPAOMA)
                        state_n = PAOMA ;
                    else if(WATERtoSHANSHUO)
                        state_n = SHANSHUO ;
                    else 
                        state_n = WATER ;
        PAOMA    :  if(PAOMAtoWATER)
                        state_n = WATER ;
                    else if(PAOMAtoSHANSHUO)
                        state_n = SHANSHUO ;
                    else 
                        state_n = PAOMA ;
        SHANSHUO :  if(SHANSHUOtoPAOMA)
                        state_n = PAOMA ;
                    else if(SHANSHUOtoWATER)
                        state_n = WATER ;
                    else 
                        state_n = SHANSHUO ;
        default  :  state_n = IDLE ;
        endcase
    end

    assign  IDLEtoWATER         = (state_c == IDLE      ) && (water_flag   ) ;
    assign  IDLEtoPAOMA         = (state_c == IDLE      ) && (paoma_flag   ) ;
    assign  IDLEtoSHANSHUO      = (state_c == IDLE      ) && (shanshuo_flag) ;
    assign  WATERtoPAOMA        = (state_c == WATER     ) && (paoma_flag   ) ;
    assign  WATERtoSHANSHUO     = (state_c == WATER     ) && (shanshuo_flag) ;
    assign  PAOMAtoWATER        = (state_c == PAOMA     ) && (water_flag   ) ;
    assign  PAOMAtoSHANSHUO     = (state_c == PAOMA     ) && (shanshuo_flag) ;
    assign  SHANSHUOtoPAOMA     = (state_c == SHANSHUO  ) && (paoma_flag   ) ;
    assign  SHANSHUOtoWATER     = (state_c == SHANSHUO  ) && (water_flag   ) ;

    // led_out
    always @(posedge sys_clk or negedge sys_rst_n) begin
        if(~sys_rst_n) 
            led_out <= 4'hf ;
        else 
        case (state_c)
        IDLE    :   led_out <= 4'hf ;
        WATER   :   led_out <= led_water    ;
        PAOMA   :   led_out <= led_paoma    ;
        SHANSHUO:   led_out <= led_shanshuo ;
        default:    led_out <= 4'hf ;
        endcase
    end

endmodule

 

module top (
    input		wire				sys_clk         ,
    input		wire				sys_rst_n       ,
    input       wire                key_water       ,
    input       wire                key_paoma       ,
    input       wire                key_shanshuo    ,

    output		wire    [3:0]       led_out         
);

    // inst wire
    wire                water_flag      ;
    wire                paoma_flag      ;
    wire                shanshuo_flag   ;
    wire    [3:0]       led_water       ;
    wire    [3:0]       led_paoma       ;
    wire    [3:0]       led_shanshuo    ;

    // inst
key_filter key_filter_inst_water(
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,
    .key_in                 ( key_water     ) ,

    .key_flag               ( water_flag    )  
);

key_filter key_filter_inst_paoma(
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,
    .key_in                 ( key_paoma     ) ,

    .key_flag               ( paoma_flag    )  
);

key_filter key_filter_inst_shanshuo(
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,
    .key_in                 ( key_shanshuo  ) ,

    .key_flag               ( shanshuo_flag )  
);

led_water led_water_isnt (
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,

    .led_out                ( led_water     )  
);

led_paoma led_paoma_inst(
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,

    .led_out                ( led_paoma     )  
);

shanshuo shanshuo_inst(
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,

    .led_out                ( led_shanshuo  )  
);

state_led_ctrl state_led_ctrl_inst(
    .sys_clk                ( sys_clk       ) ,
    .sys_rst_n              ( sys_rst_n     ) ,
    .water_flag             ( water_flag    ) ,
    .paoma_flag             ( paoma_flag    ) ,
    .shanshuo_flag          ( shanshuo_flag ) ,
    .led_water              ( led_water     ) ,
    .led_paoma              ( led_paoma     ) ,
    .led_shanshuo           ( led_shanshuo  ) ,

    .led_out                ( led_out       )  
);

endmodule

 

仿真:

`timescale 1ns/1ns
module test_top ();
    reg 				sys_clk         ;
    reg 				sys_rst_n       ;
    reg                 key_water       ;
    reg                 key_paoma       ;
    reg                 key_shanshuo    ;

    wire    [3:0]       led_out         ;

top top_inst(
    .sys_clk            ( sys_clk       ) ,
    .sys_rst_n          ( sys_rst_n     ) ,
    .key_water          ( key_water     ) ,
    .key_paoma          ( key_paoma     ) ,
    .key_shanshuo       ( key_shanshuo  ) ,

    .led_out            ( led_out       )  
);

    defparam    top_inst.key_filter_inst_water.MAX_CNT_10MS     = 50 ;
    defparam    top_inst.key_filter_inst_paoma.MAX_CNT_10MS     = 50 ;
    defparam    top_inst.key_filter_inst_shanshuo.MAX_CNT_10MS  = 50 ;
    defparam    top_inst.led_water_isnt.MAX_CNT_500MS           = 50 ;
    defparam    top_inst.led_paoma_inst.MAX_CNT_500MS           = 50 ;
    defparam    top_inst.shanshuo_inst.MAX_CNT_500MS            = 50 ;
    parameter   CYCLE = 20 ;

    initial begin
        sys_clk      = 1'b1 ;
        sys_rst_n   <= 1'b1 ;
        key_water   <= 1'b1 ;
        key_paoma   <= 1'b1 ;
        key_shanshuo<= 1'b1 ;
        #( CYCLE * 10 )     ;
        sys_rst_n <= 1'b0   ;
        #( 200 )            ;
        sys_rst_n <= 1'b1   ;
        #( CYCLE * 10 )     ;

        key_water <= 1'b0   ;
        #( CYCLE * 100 )    ;
        key_water <= 1'b1   ;
        #( CYCLE * 1000 )   ;

        key_paoma <= 1'b0   ;
        #( CYCLE * 100 )    ;
        key_paoma <= 1'b1   ;
        #( CYCLE * 1000 )   ;

        key_shanshuo <= 1'b0;
        #( CYCLE * 100 )    ;
        key_shanshuo <= 1'b1;
        #( CYCLE * 1000 )   ;
        
        $stop               ;
    end

    always #( CYCLE / 2 ) sys_clk = ~sys_clk ;


endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1292526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java网络编程——Socket用法解析

在客户/服务器通信模式中&#xff0c;客户端需要主动创建与服务器连接的Socket&#xff0c;服务器端收到了客户的连接请求&#xff0c;也会创建与客户连接的Socket。Socket可以被看作是通信连接两端的收发器&#xff0c;服务器与客户都通过套接字来收发数据。 1、构造Socket …

企业数字化转型的七个成功案例

尽管经济形势严峻&#xff0c;但60%的企业告诉波士顿咨询公司&#xff0c;他们将在2023年增加数字化转型投资。根据Precedence Research最近的一份报告&#xff0c;到2025年&#xff0c;数字化转型市场预计将达到1.458万亿美元。 成长型股权公司PSG的董事总经理安东尼爱德华兹…

【hacker送书第10期】AI时代系列丛书(五选一)

AI时代系列丛书 AI时代程序员开发之道✨内容简介参与方式 AI时代项目经理成长之道✨内容简介参与方式 AI时代架构师修炼之道✨内容简介参与方式 AI时代产品经理升级之道✨内容简介参与方式 AI时代Python量化交易实战✨内容简介参与方式 AI时代程序员开发之道✨ 内容简介 本书是…

C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)

目录 一、创建Graphics对象 1.创建Pen对象 2.创建Brush对象 &#xff08;1&#xff09;SolidBrush类 &#xff08;2&#xff09;HatchBrush类 ​​​​​​​&#xff08;3&#xff09;LinerGradientBrush类 用户界面上的窗体和控件非常有用&#xff0c;且引人注目&#…

优雅提效:Guava的字符串处理工具

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天咱们要聊一聊Google Guava这个超棒的Java库&#xff0c;尤其是它的字符串处理工具。对于Java程序员来说&#xff0c;字符串处理是日常工作的一部分&#xff0c;而Guava在这方面提供了非常强大的支持。使用Gu…

Unity中Batching优化的GPU实例化(3)

文章目录 前言一、UNITY_SETUP_INSTANCE_ID(v);二、在UnityInstancing.cginc文件中&#xff0c;看一下Unity这句话做了什么1、使用了该 .cginc 后&#xff0c;会自动预定义该函数2、需要满足GPU实例化条件&#xff0c;才会执行对应语句3、满足GPU实例化后&#xff0c;主要执行的…

Python Tornado 框架的终极指南!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python Tornado框架是一个高性能的异步Web框架&#xff0c;被广泛应用于构建实时Web应用和API服务。本文将深度解析Tornado框架&#xff0c;介绍其核心概念、异步特性、路由系统、模板引擎以及WebSocket支持等方…

通过Powershell远程控制windows服务器

1、被测服务器5985、5986端口开启&#xff0c;在网络设置中&#xff0c;点击“更改连接属性”。 2、网络配置文件中选择“专用”。 3、以管理员权限运行Powershell&#xff0c; 4.通过powershell命令在本地电脑上添加远端信任主机 winrm set winrm/config/client {TrustedHos…

世微 AP3266 大功率同步降压恒流芯片 过EMC 车灯驱动

产品描述 AP3266 是高效率、外围简单、内置功率管的同步降压恒流芯片&#xff0c;适用于4-40V输入的降压LED恒流驱动芯片。输出最大功率可达 40W&#xff0c;最大电流3.6A。AP3266 可通过调节 OVP 端口的分压电阻&#xff0c;设定输出空载电压 保护&#xff0c;避免高压 空载上…

如何搭建一套完整的智能安防视频监控平台?关于设备与软件选型的几点建议

安防视频监控系统主要由前端摄像机设备、视频显示设备、视频存储设备、安防应用软件/平台以及其它传输、辅助类设备组成。一般来说&#xff0c;安防监控系统具有可扩展和开放性&#xff0c;以方便未来的扩展和与其他系统的集成。今天我们就来介绍一下&#xff0c;搭建一套完整的…

JAVA全栈开发 MySql详解

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…

搜维尔科技:Varjo XR-4 系列-专为极致沉浸感而打造!

Varjo 的新一代头显将世界上最先进的混合现实技术与顶尖的图形处理能力连接起来&#xff0c;满足最高级别的视觉保真度和沉浸感至关重要的工业用例。 光学设计的根本性突破 体验全新的沉浸感。大幅扩展的视野&#xff0c;跨越 120 x 105 度&#xff0c;打破了受人尊敬的“全双眼…

跨域的多种方案详解

浏览器的同源策略是为了保护用户的安全&#xff0c;限制了跨域请求。同源策略要求请求的域名、协议和端口必须完全一致&#xff0c;只要有一个不同就会被认为是跨域请求。 本文列举了一些处理跨域请求的解决方案&#xff1a; JSONPCORS跨域资源共享http proxynginx反向代理web…

第七次作业

1&#xff0c; 给定一个包含n1个整数的数组nums&#xff0c;其数字在1到n之间&#xff08;包含1和n)&#xff0c;可知至少存在一个重复的整数&#xff0c;假设只有一个重复的整数&#xff0c;请找出这个重复的数 arr input("") num [int(n) for n in arr.split()]…

嵌入式板级系统设计【课设】

笔记【嵌入式板级系统设计】 前言版权笔记【嵌入式板级系统设计】资料学习面包板焊接注意焊接教程 焊接电路板基础代码GPIO 外部中断 定时中断 三合一串口 综合实验 风扇控制系统下板三合一窗口综合实验 最后 前言 2023-11-20 08:49:57 以下内容源自《【创作模板五】》 仅供学…

通过K8S安装人大金仓数据库

1. 离线下载镜像&#xff0c;请点击 2. 官网下载镜像 https://www.kingbase.com.cn/xzzx/index.htm&#xff0c;根据自己的需求下载对应版本。 3. K8S需要的yaml清单 cat > kingbase.yaml << EOF apiVersion: apps/v1 kind: Deployment metadata:name: kingbase-…

将图像增广应用于Mnist数据集

将图像增广应用于Mnist数据集 不用到cifar-10的原因是要下载好久。。我就直接用在Mnist上了&#xff0c;先学会用 首先我们得了解一下图像增广的基本内容&#xff0c;这是我的一张猫图片&#xff0c;以下为先导入需要的包和展示图片 import time import torch from torch im…

javaTCP协议实现一对一聊天

我们首先要完成服务端&#xff0c;不然出错&#xff0c;运行也要先运行服务端&#xff0c;如果不先连接服务端&#xff0c;就不监听&#xff0c;那客户端不知道连接谁 服务端 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.Actio…

超越GPT-4!谷歌发布最强多模态大模型—Gemini

12月7日凌晨&#xff0c;谷歌在官网发布了全新最强多模态大模型——Gemini。 据悉&#xff0c;Gemini有Ultra、Pro、Nano三个版本&#xff0c;可自动生成文本、代码、总结内容等&#xff0c;并能理解图片、音频和视频内容。在MMLU、DROP 、HellaSwag、GSM8K等主流评测中&#…

JVM虚拟机(已整理,已废弃)

# JVM组成 ## 简述程序计数器 线程私有&#xff0c;内部保存class字节码的行号。用于记录正在执行的字节码指令的地址。 线程私有-每个线程都有自己的程序计数器PC&#xff0c;用于记录当前线程执行哪个行号 ## 简述堆 ## 简述虚拟机栈 ## 简述堆栈区别 ## 方法内局部变量是…