当前位置: 首页 > news >正文

DE2115实现4位全加器和3-8译码器(FPGA)

一、配置环境

1、Quartus 18.1安装教程

软件:Quartus版本:Quartus 18.1
语言:英文大小:5.78G
安装环境:Win11/Win10/Win8/Win7硬件要求:CPU@2.0GHz 内存@4G(或更高)

下载通道①百度网盘丨64位下载链接:

http://pan.baidu.com/s/1wYcHJkh2POLfLR7oohWzBw

提取码:h123

软件介绍

Quartus 是一款综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

安装步骤

下载安装文件之后,点击文件中的setup,进入安装界面,稍等一会儿。

选择【I accept the agreement】,点击Next。

修改路径地址中的首字符C可更改软件的安装位置

后面直接点Next,进入安装,等待时间会比较长.

1.1创建 Quartus 项目

  1. 打开 Quartus 软件。

  2. 点击 File -> New Project Wizard

  3. 设置项目路径和项目名称(例如 four_bit_adder)。

  4. 选择目标器件:

    • 在 Family 中选择 Cyclone IV E

    • 在 Device 中选择 EP4CE115F29C7(DE2-115 的 FPGA 型号)。

  5. 完成项目创建。

就欧克了

2、ModelSim安装教程

软件:ModelSim版本:ModelSim-Intel FPGA Starter Edition 10.5b
语言:英文大小:1.11G
安装环境:Win11/Win10/Win8/Win7硬件要求:CPU@2.0GHz 内存@4G(或更高)

下载通道①百度网盘丨64位下载链接:

http://pan.baidu.com/s/1wYcHJkh2POLfLR7oohWzBw

提取码:h123

软件介绍

ModelSim 是一种功能强大的硬件描述语言 (HDL,Hardware Description Language) 仿真和验证工具,可以单独仿真,也可以联合Quartus/ViIvado等软件联合仿真,仿真速度快,广泛应用于数字电路设计和验证领域。

安装步骤

下载安装文件之后,点击exe文件进入安装

点击Next,

点击Next,

accept后,点击Next,

修改路径地址中的首字符C可更改软件的安装位置(如:将C改为D表示安装到D盘),点击Next

完成安装之后退出,即可使用。

二、实现4位全加器

1、项目创建

  1. 打开 Quartus 软件。

  2. 点击 File -> New Project Wizard

  3. 设置项目路径和项目名称(例如 four_bit_adder)。

  4. 选择目标器件:

    • 在 Family 中选择 Cyclone IV E

    • 在 Device 中选择 EP4CE115F29C7(DE2-115 的 FPGA 型号)。

  5. 完成项目创建。

2. 编写 Verilog 代码

  1. 在 Quartus 中,点击 File -> New,选择 Verilog HDL File,然后点击 OK

  2. 编写 4位全加器的 Verilog 代码。

4位全加器代码如下,

// 1-bit 全加器模块
module full_adder_1bit (input  A,input  B,input  Cin,output Sum,output Cout
);assign Sum  = A ^ B ^ Cin; // 和输出assign Cout = (A & B) | (Cin & (A ^ B)); // 进位输出
endmodule// 按键消抖模块
module debounce (input clk,      // 50MHz 时钟input key_in,   // 按键输入(KEY0)output reg key_out // 消抖后的稳定信号
);reg [19:0] counter; // 20ms 延时计数器(50MHz → 1_000_000 计数)always @(posedge clk) beginif (counter == 20'd1_000_000) beginkey_out <= key_in;  // 采样稳定后的按键值counter <= 0;end else begincounter <= counter + 1;endend
endmodule// 4-bit 全加器顶层模块
module four_bit_adder (input  clk,       // 时钟信号input  [3:0] A,    // 输入 A(SW3-SW0)input  [3:0] B,    // 输入 B(SW7-SW4)input  Cin_raw,    // 原始按键输入(KEY0)output [3:0] Sum,  // 和输出(LEDR3-LEDR0)output Cout        // 进位输出(LEDR4)
);wire Cin_stable;debounce debounce_inst (.clk(clk),       // 时钟信号.key_in(Cin_raw),.key_out(Cin_stable));wire [3:0] carry;full_adder_1bit fa0 (A[0], B[0], Cin_stable, Sum[0], carry[0]);full_adder_1bit fa1 (A[1], B[1], carry[0],   Sum[1], carry[1]);full_adder_1bit fa2 (A[2], B[2], carry[1],   Sum[2], carry[2]);full_adder_1bit fa3 (A[3], B[3], carry[2],   Sum[3], carry[3]);assign Cout = carry[3];
endmodule

3. 编译和综合

  1. 在 Quartus 中,点击 Processing -> Start Compilation,开始编译。

左下角是编译过程,

编译结果如下,

4. 引脚分配

  1. 打开引脚分配工具:

    • 点击 Assignments -> Pin Planner

  2. 根据 DE2-115 开发板的引脚定义,分配输入输出信号到具体的引脚。

    • Cout 分配到另一个 LED(LEDR4)。

    • Sum[3:0] 分配到 4 个 LED(LEDR3-LEDR0)。

    • Cin 分配到一个按钮(KEY0)。

    • B[3:0] 分配到另外 4 个拨码开关(SW7-SW4)。

    • A[3:0] 分配到 4 个拨码开关(SW3-SW0)。

以下是具体的引脚分配表:

信号引脚名称硬件对应方向I/O 标准
clkPIN_Y250MHz 时钟Input3.3-V LVTTL
A[0]PIN_AB28拨码开关 SW0Input3.3-V LVTTL
A[1]PIN_AC28拨码开关 SW1Input3.3-V LVTTL
A[2]PIN_AC27拨码开关 SW2Input3.3-V LVTTL
A[3]PIN_AD27拨码开关 SW3Input3.3-V LVTTL
B[0]PIN_AB26拨码开关 SW4Input3.3-V LVTTL
B[1]PIN_AD26拨码开关 SW5Input3.3-V LVTTL
B[2]PIN_AC26拨码开关 SW6Input3.3-V LVTTL
B[3]PIN_AB25拨码开关 SW7Input3.3-V LVTTL
Cin_rawPIN_M23按键 KEY0Input3.3-V LVTTL
Sum[0]PIN_G19LEDR0Output3.3-V LVTTL
Sum[1]PIN_F19LEDR1Output3.3-V LVTTL
Sum[2]PIN_E19LEDR2Output3.3-V LVTTL
Sum[3]PIN_F21LEDR3Output3.3-V LVTTL
CoutPIN_F18LEDR4Output3.3-V LVTTL

保存引脚分配。

5、4位全加器在DE2-115开发板的实现

    下载程序到 FPGA

    1. 连接硬件

      • 使用 USB-Blaster 线连接 DE2-115 的 JTAG 接口

      • 打开开发板电源(电源开关位于右上角)。

    2. 打开编程工具

      • 点击 Tools -> Programmer

    3. 配置编程文件

      • 点击 Add File,选择生成的 .sof 文件(路径:output_files/four_bit_adder.sof)。

      • 确保 Program/Configure 选项被勾选。

    4. 下载程序

      • 点击 Start,等待进度条完成并显示 Programming Succeeded

    DE2115开发板上实现4位全加器前的基础测试

    基础测试

    基础测试-CSDN直播

    测试用例

    输入组合预期输出硬件验证方法
    A=0011B=0101Cin=0Sum=1000Cout=0SW3-SW0: 0011;SW7-SW4: 0101;KEY0弹起 → LEDR3亮,其余灭;LEDR4灭。
    A=1111B=0001Cin=0Sum=0000Cout=1SW3-SW0: 1111;SW7-SW4: 0001;KEY0弹起 → LEDR0-LEDR3全灭;LEDR4亮。
    A=1010B=0101Cin=1Sum=0000Cout=1SW3-SW0: 1010;SW7-SW4: 0101;KEY0按下 → LEDR0-LEDR3全灭;LEDR4亮。

    DE2115开发板上实现4位全加器

    对于第一组组合在开发板上进行验证

    DE2115实现4位全加器

    DE2115实现4位全加器-CSDN直播

    三、实现3-8译码器

    1、项目创建

    1.  打开 Quartus 软件。

    2. 点击 File -> New Project Wizard

    3. 设置项目路径和项目名称(例如 decoder_3to8 )。

    4. 选择目标器件:

      • 在 Family 中选择 Cyclone IV E

      • 在 Device 中选择 EP4CE115F29C7(DE2-115 的 FPGA 型号)。

    5. 完成项目创建。

    2. 编写 Verilog 代码

    在 Quartus 中,点击 Processing -> Start Compilation,开始编译。

    代码如下,

    module decoder_3to8 (input [2:0] in,  // 3-bit inputoutput reg [7:0] out // 8-bit output
    );always @(*) begincase (in)3'b000: out = 8'b00000001;3'b001: out = 8'b00000010;3'b010: out = 8'b00000100;3'b011: out = 8'b00001000;3'b100: out = 8'b00010000;3'b101: out = 8'b00100000;3'b110: out = 8'b01000000;3'b111: out = 8'b10000000;default: out = 8'b00000000; // Default caseendcaseend
    endmodule

    3. 编译和综合

    在 Quartus 中,点击 Processing -> Start Compilation,开始编译。

    如果没有语法错误,编译会成功完成。

    编译结果如下,

    4. 引脚分配

    1. 打开引脚分配工具:

      • 点击 Assignments -> Pin Planner

    2. 根据 DE2-115 开发板的引脚定义,分配输入输出信号到具体的引脚。

      • 例如:

        • in[2:0] 分配到 3 个拨码开关(SW2-SW0)。

        • out[7:0] 分配到 8 个 LED(LEDR7-LEDR0)。

    以下是具体的引脚分配表:

    信号引脚名称功能说明
    in[0]PIN_AB28SW0
    in[1]PIN_AC28SW1
    in[2]PIN_AC27SW2
    out[0]PIN_G19LEDR0
    out[1]PIN_F19LEDR1
    out[2]PIN_E19LEDR2
    out[3]PIN_F21LEDR3
    out[4]PIN_F18LEDR4
    out[5]PIN_E18LEDR5
    out[6]PIN_J19LEDR6
    out[7]PIN_H19LEDR7

    保存引脚分配。

    5、3-8译码器在DE2-115开发板的实现

    下载程序到 FPGA

    1. 连接硬件

      • 使用 USB-Blaster 线连接 DE2-115 的 JTAG 接口

      • 打开开发板电源(电源开关位于右上角)。

    2. 打开编程工具

      • 点击 Tools -> Programmer

    3. 配置编程文件

      • 点击 Add File,选择生成的 .sof 文件(路径:output_files/decoder_3to8.sof)。

      • 确保 Program/Configure 选项被勾选。

    4. 下载程序

      • 点击 Start,等待进度条完成并显示 Programming Succeeded

    功能验证

    输入(SW2-SW0)预期输出(LEDR7-LEDR0)现象
    00011111110LED0 亮,其余灭
    00111111101LED1 亮,其余灭
    01011111011LED2 亮,其余灭
    01111110111LED3 亮,其余灭
    10011101111LED4 亮,其余灭
    10111011111LED5 亮,其余灭
    11010111111LED6 亮,其余灭
    11101111111LED7 亮,其余灭

    在DE2115开发板上完成功能验证,如下。

    DE2115实现3-8译码器

    DE2115实现3-8译码器-CSDN直播

    四、心得体会

    1、理论复习与实践结合

    通过本次作业,我深刻体会到理论知识与实践操作的紧密关联。在复习组合逻辑电路设计时,我重新梳理了逻辑表达式化简(如卡诺图法、公式法)的重要性。
    关键收获

    • 组合逻辑电路设计需从问题抽象出发,明确输入输出关系,再通过真值表、逻辑表达式进行优化。


    2、Logisim与Verilog的对比

    在对比Logisim与Verilog实现3-8译码器的过程中,我发现了以下差异:

    设计方法

    Logisim:图形化界面设计,适合快速验证逻辑功能,但难以直接映射到硬件。

    Verilog:基于硬件描述语言(HDL),通过代码生成RTL电路,可直接适配FPGA硬件。

    仿真与实际硬件

    Logisim仿真结果仅验证逻辑正确性,而Verilog需考虑时序、信号传播延迟等实际硬件问题。

    灵活性与扩展性

    Verilog支持参数化设计和模块化复用,更适合复杂系统开发。


    3、DE2-115开发板实验

    四位全加器实现

    在开发板上实现四位全加器时,我遇到了以下挑战与解决方案:

    • 挑战1:LED显示异常(全灭或错误亮起)。

      • 原因:未考虑DE2-115的LED为低电平有效。

      • 解决:在代码中对输出信号取反(assign Sum = ~sum_raw;)。

    • 挑战2:按键输入不稳定(抖动)。

      • 解决:添加消抖模块(debounce),通过延时采样稳定信号。

     3-8译码器实现

    在3-8译码器实验中,我结合八段数码管实现了动态显示:

    • 挑战:数码管显示需将二进制码转换为七段码。

      • 解决:编写七段译码器模块,将3位输入映射到数码管段选信号。


    4、经验总结

    硬件设计的严谨性

    引脚分配、电平标准(如3.3V LVTTL)、信号方向需严格匹配开发板规格。实际硬件需考虑信号抖动、传播延迟等仿真中忽略的问题。

    代码与硬件的协同

    Verilog代码需兼顾功能正确性和硬件适配性(如低电平有效、消抖处理)。

    相关文章:

    DE2115实现4位全加器和3-8译码器(FPGA)

    一、配置环境 1、Quartus 18.1安装教程 软件&#xff1a;Quartus版本&#xff1a;Quartus 18.1语言&#xff1a;英文大小&#xff1a;5.78G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09; 下载通道①百度网盘丨64位下载…...

    大白话面试中应对自我介绍

    在面试中&#xff0c;自我介绍是开场的关键环节&#xff0c;它就像你递给面试官的一张“个人名片”&#xff0c;要让面试官快速了解你并对你产生兴趣。下面详细讲讲应对自我介绍的要点及回答范例。 一、自我介绍的时间把控 一般面试中的自我介绍控制在1 - 3分钟比较合适。时间…...

    【JavaScript—前端快速入门】JavaScript 综合案例 — 猜数字

    JavaScript 综合案例—猜数字 预期效果 需求 完成基本的页面布局在文本框输入数字后&#xff0c;点击"猜"按钮&#xff0c;结果那一行会显示"猜大了"或者"猜小了"每猜一次&#xff0c;就会增加一次猜的次数猜到数字后&#xff0c;结果显示要猜的…...

    X Window---图形接口

    摘抄自 鸟哥的linux私房菜 基础篇 第四版 有鉴于图形用户接口(Graphical User Interface, GUI) 的需求日益加重&#xff0c;在 1984 年由 MIT 与其他第三方首次发表了 X Window System &#xff0c;并且更在 1988 年成立了非营利性质的 XFree86 这个组织。所谓的XFree86 其实是…...

    CSS浮动详解

    1. 浮动的简介 浮动是用来实现文字环绕图片效果的 2.元素浮动后会有哪些影响 对兄弟元素的影响&#xff1a; 后面的兄弟元素&#xff0c;会占据浮动元素之前的位置&#xff0c;在浮动元素的下面&#xff1b;对前面的兄弟 无影响。 对父元素的影响&#xff1a; 不能撑起父元…...

    shell脚本编程实践第2天

    1 内容格式化 1.1 输出格式化 1.1.1 echo解读 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结、三个方面来学习。 基础知识 命令简介 echo命令的功能是将内容输出到默认显示设备&#xff0c;一般起到一个提示的作用。OPTIONS&#xff1a; -n 不要在最后自…...

    wgcloud-server端部署说明

    Wgcloud 是一款开源的轻量级服务器监控系统&#xff0c;支持多平台&#xff0c;可对服务器的 CPU、内存、磁盘、网络等指标进行实时监控。 以下是 Wgcloud Server端的详细部署步骤&#xff1a; 环境准备 服务器&#xff1a; 至少准备两台服务器&#xff0c;一台作为监控端&a…...

    AES/CBC/PKCS5Padding加密

    1、加密代码如下 public static String encryptAEs_CBC(String data,String key,byte[] iv) {Cipher cipher = null;try {cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");//位数不够,自动补一个长度int blocksize = cipher.getBlockSize();byte[] dataBytes …...

    9.8 Visual Studio 2022安装Qt 和安装graphic

    1.安装Qt 1. 安装Qt 首先打开Visual Studio&#xff0c;然后创建一个项目&#xff0c;再在最上面的一行依次打开“扩展-->管理扩展”&#xff0c;再在搜索框内搜索“QT”&#xff0c;显示如下界面&#xff1a; 再在右边QT右边有个“在浏览器中查看”&#xff0c;打开后出现…...

    【C++设计模式】第四篇:建造者模式(Builder)

    注意&#xff1a;复现代码时&#xff0c;确保 VS2022 使用 C17/20 标准以支持现代特性。 分步骤构造复杂对象&#xff0c;实现灵活装配 1. 模式定义与用途 核心目标&#xff1a;将复杂对象的构建过程分离&#xff0c;使得同样的构建步骤可以创建不同的表示形式。 常见场景&am…...

    Spring Boot如何利用Twilio Verify 发送验证码短信?

    Twilio提供了一个名为 Twilio Verify 的服务&#xff0c;专门用于处理验证码的发送和验证。这是一个更为简化和安全的解决方案&#xff0c;适合需要用户身份验证的应用。 使用Twilio Verify服务的步骤 以下是如何在Spring Boot中集成Twilio Verify服务的步骤&#xff1a; 1.…...

    制造业中的“大数据”:如何实现精准决策?

    在当今全球经济竞争日趋激烈、技术变革周期不断缩短的环境下&#xff0c;制造业面临着全新的挑战和机遇。随着信息技术的飞速发展&#xff0c;“大数据”正以前所未有的速度渗透到制造业的各个环节&#xff0c;帮助企业实现更精准的决策、更灵活的生产组织以及更敏捷的市场响应…...

    Linux cat 命令

    cat&#xff08;英文全拼&#xff1a;concatenate&#xff09;命令用于连接文件并打印到标准输出设备上&#xff0c;它的主要作用是用于查看和连接文件。 使用权限 所有使用者 语法格式 cat [选项] [文件] 参数说明&#xff1a; -n&#xff1a;显示行号&#xff0c;会在输…...

    CSS—flex布局、过渡transition属性、2D转换transform属性、3D转换transform属性

    ​ 1.flex布局 也叫弹性布局&#xff0c;是浏览器提倡的布局模型&#xff0c;非常适合结构化布局&#xff0c;提供了强大的空间分布和对齐能力&#xff0c;不会产生浮动布局中脱标现象&#xff0c;布局网页更简单&#xff0c;更灵活。 flex容器属性&#xff1a; 属性描述d…...

    Java UDP 通信:实现简单的 Echo 服务器与客户端

    在计算机网络编程中&#xff0c;UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接的传输层协议&#xff0c;它允许应用程序在不建立连接的情况下发送数据包。与 TCP 不同&#xff0c;UDP 不保证数据包的顺序、可靠性或完整性&#xff0c;但它具有低延迟和低开销…...

    使用GitLink个人建站服务部署Allure在线测试报告

    更多技术文章&#xff0c;访问软件测试社区 文章目录 &#x1f680;前言&#x1f511;开通GitLink个人建站服务1. 前提条件2. 登录GitLink平台&#xff08;https://www.gitlink.org.cn/login&#xff09;3. 进入设置>个人建站>我的站点4. 新建站点5. 去仓部进行部署6. 安…...

    Mybatis plus异常: type `java.time.LocalDateTime` not supported by default

    1、问题&#xff1a; Java数据库实体对象有字段如下&#xff1a; TableField(typeHandler JacksonTypeHandler.class) private Map<String, Object> dataDetail; 如果dataDetail中有LocalDateTime对象&#xff0c;在保存时会报如下异常&#xff1a; Caused by: com.…...

    Django:文件上传时报错in a frame because it set ‘X-Frame-Options‘ to ‘deny‘.

    即&#xff1a;使用Content-Security-Policy 1.安装Django CSP中间件&#xff1a; pip install django-csp 2.更改项目配置&#xff1a; # settings.py MIDDLEWARE [...csp.middleware.CSPMiddleware,... ]CSP_DEFAULT_SRC ("self",) CSP_FRAME_ANCESTORS (&q…...

    腾讯云 | 微搭低代码快速开发数据表单应用

    如上所示&#xff0c;登录腾讯云微搭低代码业务控制台&#xff0c;开始新创建一个应用&#xff0c;创建应用的方式包括&#xff0c;根据实际的业务需求&#xff0c;从模版列表中选择一个模板填入数据模型创建新应用&#xff0c;使用微搭组件自主设计数据模型创建新应用&#xf…...

    【RabbitMQ】RabbitMQ的核心概念与七大工作模式

    &#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【中间件】企业级中间件剖析 在现代分布式系统和微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09; 是解决服务间通信、系统解耦和流量削峰的关键技术之一。而 RabbitMQ 作为一…...

    金蝶ERP星空对接流程

    1.金蝶ERP星空OPENAPI地址&#xff1a; 金蝶云星空开放平台 2.下载金蝶云星空的对应SDK包 金蝶云星空开放平台 3.引入SDK流程步骤 引入Kingdee.CDP.WebApi.SDK 右键项目添加引用&#xff0c;在打开的引用管理器中选择浏览页签&#xff0c;点击浏览按钮&#xff0c;找到从官…...

    【C++】基于范围的for循环(range-based for loop)

    一. std::vector 元素排布顺序 在 C 中&#xff0c;std::vector 是一个动态数组&#xff0c;用于存储同类型元素的序列。当你向 std::vector 中添加元素时&#xff08;通常通过 push_back 方法&#xff09;&#xff0c;元素是按照你添加它们的顺序排列的。 具体来说&#xff…...

    下载b站视频音频

    文章目录 方案一&#xff1a;jjdown如何使用 方案二&#xff1a;bilibili哔哩哔哩下载助手如何使用进入插件网站插件下载插件安装 使用插件下载视频音频&#xff1a;复制音频下载地址 方案三&#xff1a;bat命令下载单个音频下载单个视频下载单个音视频 方案一&#xff1a;jjdo…...

    LabVIEW DataSocket 通信库详解

    dataskt.llb 是 LabVIEW 2019 内置的核心函数库之一&#xff0c;位于 vi.lib\Platform\ 目录下&#xff0c;专注于 DataSocket 技术的实现。DataSocket 是 NI 提供的网络通信协议&#xff0c;支持跨平台、跨设备的实时数据共享&#xff0c;广泛应用于远程监控、分布式系统集成等…...

    金融项目实战

    测试流程 测试流程 功能测试流程 功能测试流程 需求评审制定测试计划编写测试用例和评审用例执行缺陷管理测试报告 接口测试流程 接口测试流程 需求评审制定测试计划分析api文档编写测试用例搭建测试环境编写脚本执行脚本缺陷管理测试报告 测试步骤 测试步骤 需求评审 需求评…...

    初始网络编程

    什么是网络编程&#xff1f; 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行的数据传输。 应用场景&#xff1a;即时通信、网游对战、金融证券、 国际贸易、邮件、等等。 不管是什么场景&#xff0c;都是计算机跟计算机之间通过网络进行数据传输。 …...

    编译可以在Android手机上运行的ffmpeg程序

    下载代码 git clone gitgithub.com:FFmpeg/FFmpeg.git git checkout n7.0建立build目录 mkdir build cd build创建build.sh脚本 vim build.sh这段脚本的主要功能是配置和编译 FFmpeg&#xff0c;使其能够在 Android 平台上运行&#xff0c;通过设置不同的架构和 API 级别&am…...

    使用Kubernetes部署Spring Boot项目

    目录 前提条件 新建Spring Boot项目并编写一个接口 新建Maven工程 导入 Spring Boot 相关的依赖 启动项目 编写Controller 测试接口 构建镜像 打jar包 新建Dockerfile文件 Linux目录准备 上传Dockerfile和target目录到Linux 制作镜像 查看镜像 测试镜像 上传镜…...

    LC77. 组合

    LC77. 组合 题目要求(一)回溯1. 解决思路2. 具体步骤3. 代码实现4. 复杂度分析5. 示例解释示例 1&#xff1a;示例 2&#xff1a; 6. 总结 LC77. 组合 题目要求 (一)回溯 要解决这个问题&#xff0c;我们需要生成从 [1, n] 范围内选择 k 个数的所有可能组合。组合的顺序不重要…...

    Android中的ANR(Application Not Responding)现象

    Android中的ANR&#xff08;Application Not Responding&#xff09;现象是指应用程序未能在规定的时间内响应系统或用户的输入事件&#xff0c;从而触发系统弹出的无响应对话框。以下是关于ANR现象的详细解释&#xff1a; 一、ANR现象的定义 ANR通常发生在以下情况&#xff…...

    操作系统启动——前置知识预备

    文章目录 1. 理解冯诺依曼体系结构1.1 简单见一见冯诺依曼1.2 进一步认识1.3 为什么一定要有内存的存在&#xff1f; 2. 操作系统2.1 概念2.2 设计OS的目的2.3 OS的核心功能2.4 如何理解“管理”二字&#xff1f;(小故事版)2.5 系统调用和库函数概念 3. 进程简述3.1 基本概念3.…...

    Unity中VFX烟雾特效与场景中的碎片物体重叠时闪烁问题

    双击Unity项目中vfx特效文件&#xff0c;选中VFX编辑器中的Output Particle节点&#xff0c;看右侧的Inspector窗口 这个图的BlendMode是Alpha, 意味着渲染队列是3000要关闭Z Write Mode, 其值设置为off最后一个属性Sorting Priorty 设置为50&#xff0c;意味着渲染队列在3000…...

    [RN]React Native知识框架图详解

    React Native 是一个基于 React 的跨平台移动应用开发框架。以下是 React Native 知识框架图的详细解析&#xff1a; React Native 知识框架 1. 核心概念 JSX&#xff1a;JavaScript XML 语法&#xff0c;类似 HTML 的语法&#xff0c;用于描述 UI 组件。组件&#xff08;Com…...

    每日OJ_牛客_游游的字母串_枚举_C++_Java

    目录 牛客_游游的字母串_枚举 题目解析 C代码 Java代码 牛客_游游的字母串_枚举 游游的字母串 描述&#xff1a; 对于一个小写字母而言&#xff0c;游游可以通过一次操作把这个字母变成相邻的字母。a和b相邻&#xff0c;b和c相邻&#xff0c;以此类推。特殊的&#xff0…...

    解锁MacOS开发:环境配置与应用开发全攻略

    ✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 引言 一、MacOS 开发环境配置 &#xff08;一&#xff09;必备工具安装 &#xff08;二&#xff09;集成开发环境&#xff08;IDE&#xff09;选…...

    IDEA 2025最新版2024.3.3软件安装、插件安装、语言设置

    IntelliJ IDEA是一款由JetBrains公司开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于Java语言的开发&#xff0c;它通过提供丰富的功能如智能代码补全、代码分析、版本控制集成等来提高开发效率。 IDEA有社区版和专业版两个版本&#xff0c;社区版是免费开…...

    leetcode 0018 四数之和-medium

    1 题目&#xff1a;四数之和 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#x…...

    Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_add_dump

    ngx_conf_add_dump 定义在src\core\ngx_conf_file.c static ngx_int_t ngx_conf_add_dump(ngx_conf_t *cf, ngx_str_t *filename) {off_t size;u_char *p;uint32_t hash;ngx_buf_t *buf;ngx_str_node_t *sn;ngx_conf_dump_t *cd;has…...

    家政预约小程序用例图分析

    在和客户进行需求沟通的时候&#xff0c;除了使用常规的问答的形式&#xff0c;我还使用图形化工具更深入的沟通。比如借助UML的用例图来开展系统分析&#xff0c;并且按照角色详细拆解了家政预约小程序的各个用例。在分析阶段思考的越多&#xff0c;沟通的越多&#xff0c;在系…...

    unity学习62,尝试做第一个小游戏项目:flappy bird

    目录 学习参考 1 创建1个unity 2D项目 1.1 2D项目模板选择 1.1.1 2D(built-in-Render pipeline) 1.1.2 universe 2D 1.1.3 这次选择 2D(built-in-Render pipeline) 1.2 创建项目 1.2.1 注意点 1.2.2 如果想修改项目名 2 导入美术资源包 2.1 下载一个flappy bird的…...

    Windows10下本地搭建Manim环境

    文章目录 1. 简介2. Python环境3. uv工具4. Latex软件5. 安装Manim数学库6. 中文支持参考 1. 简介 manim是个一科普动画的库&#xff0c; 本文用到的是社区版本。 2. Python环境 这个不用多说&#xff0c;可以参考其他的文章。记得把pip也安上。 3. uv工具 上面的pip是老…...

    zabbix“专家坐诊”第277期问答

    在线答疑:乐维社区 问题一 Q&#xff1a;这个怎么解决呢&#xff1f; A&#xff1a;缺少这个依赖。 Q&#xff1a;就一直装不上。 A&#xff1a;装 zabbix-agent2-7.0.0-releasel.el7.x86 64 需要前面提示的那个依赖才可以装。 问题二 Q&#xff1a;大佬&#xff0c;如果agen…...

    解决git clone下载慢或者超时问题

    在网上找了很多办法&#xff0c;直接最简单的使用镜像网站下载。 国内可用的镜像网站有&#xff1a; https://github.com.cnpmjs.org # 服务器位于香港https://gitclone.com # 服务器位于杭州https://doc.fastgit.org # 服务器位于香港 例如&#xff1a;将 git clone https:…...

    机器学习:强化学习的epsilon贪心算法

    强化学习&#xff08;Reinforcement Learning, RL&#xff09;是一种机器学习方法&#xff0c;旨在通过与环境交互&#xff0c;使智能体&#xff08;Agent&#xff09;学习如何采取最优行动&#xff0c;以最大化某种累积奖励。它与监督学习和无监督学习不同&#xff0c;强调试错…...

    MySQL-高级查询

    查询处理 排序&#xff08;默认不是按主键排序的&#xff09; order by 字段1[&#xff0c;字段2] [asc|desc] 默认是升序排序也可以指定 select 列表中列的序号进行排序如果是多个字段&#xff0c;那么在上一个字段排序完的基础上排序下一个 限制数量 limit 行数&#xff0…...

    NModbus 连接到Modbus服务器(Modbus TCP)

    1、在项目中通过NuGet添加NModbus&#xff0c;在界面中添加一个Button。 using NModbus.Device; using NModbus; using System.Net.Sockets; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu…...

    value_counts()和unique()

    我今天发现一个很有意思的问题哈 import scanpy as sc import numpy as npX np.random.randn(10,3) adata1 sc.AnnData(X) adata1.obs["sample"] "H1" print(adata1)X np.random.randn(20,3) adata2 sc.AnnData(X) adata2.obs["sample"] &…...

    FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台

    文章目录 前言一、生态系统1. 金融AI代理&#xff08;Financial AI Agents&#xff09;2. 金融大型语言模型&#xff08;Financial LLMs&#xff09;3. LLMOps4. 数据操作&#xff08;DataOps&#xff09;5. 多源LLM基础模型&#xff08;Multi-Source LLM Foundation Models&am…...

    示例:在WPF中如何使用Segoe MDL2 Assets图标和使用该图标的好处

    一、目的&#xff1a;分享在WPF中如何使用Segoe MDL2 Assets图标和使用该图标的好处 在WPF中使用Segoe MDL2 Assets字体&#xff0c;可以通过设置控件的FontFamily属性来实现。Segoe MDL2 Assets是一个包含许多图标的字体&#xff0c;通常用于Windows应用程序的图标显示。 二、…...

    使用UA-SPEECH和TORGO数据库验证自动构音障碍语音分类方法

    使用UA-SPEECH和TORGO数据库验证自动构音障碍语音分类方法 引言 原文:On using the UA-Speech and TORGO databases to validate automatic dysarthric speech classification approaches 构音障碍简介 构音障碍是一种由于脑损伤或神经疾病(如脑瘫、肌萎缩侧索硬化症、帕金森…...