数字电子技术基础(五十)——硬件描述语言简介
目录
1 硬件描述语言简介
1.1 硬件描述语言简介
1.2 硬件编程语言的发展历史
1.3 两种硬件描述的比较
1.4 硬件描述语言的应用场景
1.5 基本程序结构
1.5.1 基本程序结构
1.5.2 基本语句和描述方法
1.5.3 仿真
1 硬件描述语言简介
1.1 硬件描述语言简介
硬件描述语言(Hardware Description Language, HDL)是一种用于描述电子系统(尤其是数字电路)结构、行为和功能的专用编程语言。它允许工程师以文本形式对硬件(如集成电路、FPGA、ASIC等)进行建模、设计和验证,是电子设计自动化(EDA)流程的核心工具之一。
相较于传统的编程语言,例如C、Java等,硬件描述更加注重硬件之间的连接关系、时序运行以及并行操作等物理特性。主流的硬件描述语言包括Verilog HDL和VHDL,如下所示:

1.2 硬件编程语言的发展历史
上世纪1970s开始,随着电路的复杂度的提升,传统的手工绘图的方式开始变得低效,学术界开始研究文本硬件描述方法。1972年,美国南加州大学 D. D. Gajski开始研究AHDL(A Hardware Programing Lauguage),这是早期的数字电路描述语言。
目前主流的两种硬件描述语言均诞生在20世纪80年代,在上世纪80年代时,已经有上百种硬件描述语言,是硬件描述语言快速发展的时代。其中,Verilog HDL是由Gateway Design Automation公司开发的,后来被Cadence公司收购。VHDL是上世界80年代美国国防部资助开发的,作为ADA语言的一部分,用于规范文档和设计。VHDL和Verilog HDL分别在1985年和1997年成为IEEE标准。
2000年以后,衍生了更加高级的HDL,支持系统级验证和混合信号建立。
1.3 两种硬件描述的比较
Verilog HDL和VHDL之间都有相同点:
- 两种语言都支持层次化设计。
- 都支持并发执行,都是基于硬件的特点。
- 都支持行为级描述和结构级描述。
- 都支持相同的数据类型,并且都支持组合逻辑和时序逻辑。
除了相同点之外,Veriilog HDL和VHDL之间也存在不同点,对于Verilog HDL语言来说,相对于VHDL,优点为:
- Verillog语言语法简洁,易于学习。
- Verilog语言被广泛支持。
- Verilog语言仿真速度快。
- Verilog语言发展较快。
缺点为:
- Verilog语言不适合大型复杂设计。
- Verilog语言的类型系统较弱。
- Verilog语言对低层次的描述较弱。
对于VHDL语言,其优势为:
- VHDL的语法较为严谨。
- VHDL适合用于大型设计。
- VHDL标准化程度高。
- VHDL对于低层次描述支持。
- VHDL可以应用高可靠性系统。
而其劣势为:
- VHDL语法复杂。
- 仿真速度通常很慢。
将上面内容进行总结得:

1.4 硬件描述语言的应用场景
硬件描述语言的应用十分广泛,涵盖范围如下所示:

下面对于各个方面基进行简答介绍。
(1)人工智能
人工智能是当下火热的研究内容,HDL可以显著提升了深度学习中的神经网络计算,特别是图像识别中的卷积运算。通过硬件并行性,HDL可以有效地处理大量的图像数据,减少计算资源的浪费。同时,随着物联网(IoT)的发展,边缘计算是相对热门的话题,FPGA在边缘计算中可以提供快速、高效的数据处理能力,减少数据传输到云端的需求,降低延迟和带宽消耗。
(2)智能驾驶
CAN(Controller Area Network)总线是一种广泛应用于汽车电子、工业控制、航空航天等领域的可靠串行通信协议。CAN协议的数据帧结构包括帧起始位、仲裁字段、控制字段、数据字段、校验字段等多个部分。VHDL可以通过行为级描述来实现对这些字段的解析和生成,同时利用其并行处理能力来处理多个字段的同步操作。VHDL的高抽象性和模块化设计使得CAN协议的实现具有很高的灵活性和可扩展性。设计者可以根据不同的应用场景和需求,对CAN协议进行定制和优化。
(3)通信领域
HDL在通信领域同样也有应用。例如,在基带信号处理方面,完成各种调制方式,如相移键控(PSK)、正交幅度调制(QAM)等。HDL可根据不同的通信标准和需求,灵活实现调制和解调算法,将数字信号转换为适合在信道中传输的模拟信号。在射频信号处理方面,在发射端将基带信号上变频到射频频段以便通过天线发射,在接收端,将射频信号下变频到基带频段进行后续处理。FPGA 可以生成各种频率的本振信号,并与基带信号进行混频,实现频谱搬移。
(4)集成电路(IC)设计
在 IC 设计的早期阶段,设计人员通常使用 HDL 进行行为级描述。这种描述方式侧重于对电路功能的抽象表达,而不涉及具体的硬件结构。在 IC 设计过程中,需要对设计的功能进行验证,确保其符合设计要求。HDL 可以用于搭建测试平台,生成激励信号并监测电路的输出响应。例如,对于一个设计好的存储器芯片,使用 HDL 编写测试平台可以模拟不同的读写操作,检查存储器的读写功能是否正常。
(5)数字信号处理
HDL在数字信号处理有很多应用。例如在滤波器的设计方面,如果想设计一个FIR(有限冲击响应)滤波器,可以通过HDL代码在FPGA中实现。HDL代码可以定义滤波器的系数存储、乘法累加运算等逻辑,从而实现对输入信号的滤波处理。在快速傅里叶变化的应用中,FFT是数字信号处理中的重要算法,用于将时域信号转换为频域信号。HDL可以在FPGA中实现FFT算法的硬件加速。通过编写HDL代码,可以定义蝶形运算单元、数据存储和调度等逻辑,实现高效的FFT运算。
(6)医疗领域
HDL在医疗领域也有较多的应用,例如在医疗成像领域,在 MRI、CT 等医学成像设备中,HDL 可用于设计图像重建算法模块。通过对采集到的大量原始数据进行快速处理和运算,利用 HDL 实现如反投影算法、迭代重建算法等,能够在短时间内重建出高质量的人体内部器官图像,为医生提供准确的诊断依据。在医疗监护领域,DL 可用于设计生理信号采集与处理模块。可以对心电、血压、血氧等多种生理信号进行实时采集、放大、滤波和模数转换等处理。
(7)航空航天
HDL在高性能、高可靠性和和复杂系统设计方面有很多应用。例如,在航空发动机系统设计中,基于模型的系统工程(MBSE)方法结合HDL工具,可以实现需求驱动的正向设计流程,快速搭建系统模型,并与多学科联合仿真验证程序融合。HDL工具通过内置的设计规则集合(包括DO-254等安全关键设计规则集),能够确保设计满足航空航天行业的严格标准。
(8)消费电子
消费电子是普通人接触较多的领域,HDL在消费电子也有很大的应用。例如,在显示驱动方面实现屏幕控制和显示优化,在智能手机、平板电脑、智能手表等各类显示屏设备中,HDL 可用于设计显示驱动芯片。它能精确控制屏幕的像素点发光,实现不同分辨率、刷新率和色彩模式的显示。在音视频处理方面对于高清视频的解码,在智能电视、机顶盒、蓝光播放器等设备中,HDL 可用于设计专用的视频解码芯片。
1.5 基本程序结构
1.5.1 基本程序结构
和其他编程类似,Verilog HDL也是采用模块化的结构,以模块化的形式来描述数字电路系统。模块(module)是Verilog HDL语言中描述电路的基本单元。模块的基本语法如下所示:
module<模块化>(<端口列表>)
<定义>
<模块条目>
endmodule
最基本的模块如下所示:
module module_name (input [width] input1, // 输入端口input [width] input2,output [width] output1, // 输出端口output [width] output2
);// 模块内部逻辑
endmodule
上面的端口定义两个输入端口和两个输出端口。
1.5.2 基本语句和描述方法
对于组合逻辑来说,使用assign实现组合逻辑:
assign output = input1 & input2; // 逻辑与操作
组合逻辑是输出信号仅依赖于当前输入信号的逻辑。例如,设计一个简单的2输入与门:
module and_gate (input wire a,input wire b,output wire y
);assign y = a & b; // 组合逻辑
endmodule
而对于时序逻辑电路来说,使用always块实现时序逻辑,通常与clock
信号结合。如下所示:
always @(posedge clk) beginif (reset) beginreg_out <= 0;end else beginreg_out <= input;end
end
时序逻辑的输出不仅依赖于当前输入,还依赖于过去的输入。例如,设计一个D触发器:
module d_ff (input wire clk, // 时钟信号input wire reset, // 异步复位信号input wire d, // 数据输入output reg q // 数据输出
);always @(posedge clk or posedge reset) beginif (reset) beginq <= 0; // 异步复位end else beginq <= d; // 数据锁存endend
endmodule
生成结构是Verilog中一种强大的功能,允许在编译时根据参数条件创建或重复模块实例、寄存器、线网或其他Verilog元素。它主要用于创建可配置和可重用的设计。主要的生产结果包括generate-for循环、generate-if循环、generate-case循环:
例如generate-for循环:
generateif (WIDTH > 4) begin : wide_block// 当WIDTH>8时包含的代码reg [WIDTH-1:0] wide_reg;endelse begin : narrow_block// 否则包含的代码reg [7:0] narrow_reg;end
endgenerate
Verilog中一种编译时循环结构,主要用于在硬件描述中创建重复的电路结构。
1.5.3 仿真
仿真用于验证Verilog代码的功能是否正确。通常使用仿真工具(如ModelSim、Vivado Simulator等)进行仿真。仿真工具会生成波形图,显示输入和输出信号随时间的变化。设计人员可以根据波形图判断是否设计正确。
因为本系列主要讲的是数字电子技术内容,在这里对于Verilog HDL和VHDL不进行更加细致的讲解,以后有机会的话可能对于这编程语言进行讲解。
相关文章:
数字电子技术基础(五十)——硬件描述语言简介
目录 1 硬件描述语言简介 1.1 硬件描述语言简介 1.2 硬件编程语言的发展历史 1.3 两种硬件描述的比较 1.4 硬件描述语言的应用场景 1.5 基本程序结构 1.5.1 基本程序结构 1.5.2 基本语句和描述方法 1.5.3 仿真 1 硬件描述语言简介 1.1 硬件描述语言简介 硬件描述语…...
【PCIE配置空间】
1 PCIE配置空间 1.1 软件如何知道PCIE设备是Swith,RC还是EP? –软件通过读取寄存器信息。 PCIE配置空间• PCIE寄存器;--PCIE配置协议规定必须实现的空间。--PCIE存在两种配置空间Type0/Type1;--Type0配置空间EP设备必须实现;-…...
Python爬虫实战:获取网易新闻数据
一、引言 随着互联网的飞速发展,网络上蕴含着海量的信息资源。新闻数据作为其中的重要组成部分,对于舆情分析、市场研究、信息传播等多个领域具有重要价值。网易新闻作为国内知名的新闻平台,拥有丰富多样的新闻内容。使用 Python 的 Scrapy 框架进行网易新闻数据的爬取,可…...
哲学家就餐问题(避免死锁)
解决方案: 策略:奇偶哲学家拿筷子顺序不同,破坏循环等待。 流程: 偶数哲学家先左后右。 奇数哲学家先右后左。 分析: 无死锁,哲学家交替进餐,不同拿筷顺序避免循环等待。 实验总结 遇到的…...
下采样(Downsampling)
目录 1. 下采样的定义与作用 2. 常见下采样方法 (1) 池化(Pooling) (2) 跨步卷积(Strided Convolution) (3) 空间金字塔池化(SPP) 3. PyTorch 实现示例 …...
OrbisGIS:基于Java开发的开源GIS软件
大家好,今天为大家介绍的软件是OrbisGIS:一款基于JAVA开发的开源的地理信息系统软件。下面,我们将从软件的主要功能、支持的系统、软件官网等方面对其进行简单的介绍。 OrbisGIS官网网址为:http://orbisgis.org/,Orbis…...
linux socket编程之udp(实现客户端和服务端消息的发送和接收)
目录 一.创建socket套接字(服务器端) 二.bind将prot与端口号进行绑定(服务器端) 2.1填充sockaddr_in结构 2.2bind绑定端口 三.直接通信(服务器端) 3.1接收客户端发送的消息 3.2给客户端发送消息 四.客户端通信 4.1创建socket套接字 4.2客户端bind问题 4.3直接通信即可…...
八大排序之直接插入排序
今天我们来学习八大排序中的直接插入排序。话不多说,直接上动图。 直接插入排序的主要思想是:当数组只有一个元素的时候,我们可以认为该数组是有序的。所以我们可以选择一个元素放进数组(一般为待排数据的第一个元素)…...
二级评论列表-Java实现
二级评论列表是很常见的功能,文章记录了新手用Java实现的具体逻辑。 整体实现逻辑是先用2个sql,分别查出两层数据。然后用java在service中实现数据组装,返给前端。这种实现思路好处是SQL简洁,逻辑分明,便于维护。 一…...
如何基于区块链进行虚拟电厂运营平台建设?
本项目旨在基于区块链技术建设虚拟电厂运营平台,以提升省内大用户及工业企业和工业园区的需求响应能力,优化能源结构配置,并推动能源交易、需求响应和现货交易等新型业态的发展。通过建设虚拟电厂,项目将实现工业企业及园区各供用…...
大学英语四级选词填空练习题解析
一、引言 大学英语四级考试中的选词填空部分,一直是不少同学的 “拦路虎”。它不仅要求我们有扎实的词汇基础,还需要具备良好的语境分析能力。今天,我们就通过一道练习题来深入剖析这类题型的解题思路。 二、题目内容 Leisure activities …...
基于控制台的小车导航游戏开发详解(C++实现)
本文将详细讲解一个基于C控制台的小车导航游戏项目。通过该项目可以学习二维数组操作、队列数据结构应用以及游戏循环控制等核心编程概念,特别适合刚接触游戏开发的初学者学习。 一、项目概述 1.1 游戏规则 玩家可创建多辆具有不同初始位置和移动速度的小车 每辆…...
详讲Linux下进程等待
3.进程等待 引言:什么是进程等待 想象有两个小伙伴,一个是 “大强”(父进程 ),一个是 “小强”(子进程 )。大强给小强安排了任务,比如去收集一些石头。 …...
数字孪生火星探测车,星际探索可视化
运用图扑构建数字孪生火星探测车,高精度还原外观与内部构造。实时映射探测车在火星表面的移动、探测作业及设备状态,助力科研人员远程监测、分析数据,为火星探索任务提供可视化决策支持。...
《JVM考古现场(二十三):归零者·重启奇点的终极奥义》
目录 楔子:归零者文明觉醒 上卷十维弦理论破译 第一章:JVM弦论代码考古 第二章:超膜引用解析算法 第三章:量子真空涨落监控 中卷归零者心法实战 第四章:宇宙重启倒计时引擎 第五章:内存奇点锻造术 第…...
设计测试用例模板
面试时问你一个场景,要你设计测试用例,你会怎么回答? 面试官让你设计一个功能的测试用例,比如“上传文件功能”,其实就是想考你: 思维是否全面能不能抓住重点会不会分类和使用测试方法有没有考虑异常情况…...
java怎么找bug?Arthas原理与实战指南
Arthas原理与实战指南 1. Arthas简介 Arthas是阿里巴巴开源的Java诊断工具,其名字取自《魔兽世界》的人物阿尔萨斯。它面向线上问题定位,被广泛应用于性能分析、定位问题、安全审计等场景。Arthas的核心价值在于它能够在不修改应用代码、不重启Java进程…...
2024年国考
数学 一,逻辑符号表示(3 分) 1,只有获得奥运会资格的运动员才可以参加奥运会,参加奥运会的云动员不一定获奖。 设: ( Q(x) ):运动员 ( x ) 获得奥运会资格( P(x) ):运动员 ( x )…...
fastlio用mid360录制的bag包离线建图,提示消息类型错误
我用mid360录制的bag包,激光雷达的数据类型是sensor_msgs::PointCloud2,但是运行fast_lio中的mid360 launch文件,会报错(没截图),显示无法从livox_ros_driver2::CustomMsg转换到sensor_msgs::PointCloud2。…...
015-C语言字符函数和字符串函数
C语言字符函数和字符串函数 文章目录 C语言字符函数和字符串函数1. 字符分类函数2. 字符转换函数3. strlen4. strcpy5. strcat6. strcmp7. strncpy8. strncat9. strncmp10. strstr11. strtok12. strerror 1. 字符分类函数 C语言中有一系列函数是专门做字符分类的,也…...
docker 搭建nacos 2.2.1版本单机版
通过docker-compose搭建 services:nacos:image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.2.1container_name: nacosenvironment:- PREFER_HOST_MODEhostname- MODEstandalone- NACOS_AUTH_ENABLEtrue- NACOS_AUTH_IDENTITY_KEYxiaogang- N…...
stack,queue和priority_queue
1. stack 1.1 stack 的介绍 栈是一种容器适配器,专门设计用于LIFO环境(后进先出),其中元素仅从容器的一端插入和提取。 容器适配器,也就是使用特定容器类的封装对象作为其底层容器,提供一组特定的成员函…...
服务治理-搭建Nacos注册中心
运行nacos.sql文件。 将准备好的nacos目录和nacos.tar包上传。 192.168.59.101是我的虚拟机ip,8848是我们设置的访问端口号。...
《Operating System Concepts》阅读笔记:p738-p747
《Operating System Concepts》学习第 63 天,p738-p747 总结,总计 10 页。 一、技术总结 1.network structure local-area networks (LAN)、wide-area networks (WAN). 2.communication structure naming and name resolution、communication proto…...
【Datawhale AI春训营】Java选手初探数据竞赛
自然语言处理基础: 自然语言处理(Natural Language Processing,NLP) 是计算机科学与人工智能领域中的一个极具挑战性和应用前景的研究方向。 它旨在使计算机能够理解、生成和处理人类的自然语言,从而实现人机高效交互。 NLP技术在搜索引擎、…...
React-useRef
如果我们想在hooks里面获同步取最新的值,那么则可以使用useRef, 关键源码如下: function mountRef<T>(initialValue: T): {|current: T|} {const hook mountWorkInProgressHook();const ref {current: initialValue};hook.memoizedState ref;re…...
得物官网sign签名逆向分析
打开得物官网,点击鞋类,可以看到请求 直接搜sign function p(e) {return f()("".concat(e ? s()(e).sort().reduce(function(t, n) {return "".concat(t).concat(n).concat(e[n])}, "") : "", "048a9…...
网络爬虫和前端相关知识
一 爬虫发展历史,概念与反爬机制 (一)爬虫发展历史 早期爬虫(1990s)起源 :早期的爬虫主要是为了构建搜索引擎。典型案例: Yahoo!人工目录 → 谷歌PageRank算法驱动的自动化爬虫。功能特点 :这些爬虫的功能比较单一,主要以抓取网页的文本内容为主,采用简单的广度优先…...
山东科技大学人工智能原理考试回忆复习资料
全部资料:https://mbd.pub/o/around_01 考试回忆版 简答题 人工智能定义 图灵测试基本思想 人工智能主要研究领域写八个以上 专家系统是什么及其特点 遗传算法流程图 综合题 语义网络表示 书上习题 证明S不满足性 用归结原理求问题 谁说真话假话的 书上例题…...
单元测试的一般步骤
Qt Test Qt Test 是 Qt 开发人员发布的一个单元测试框架,用于测试基于 Qt 框架的应用程序或库。它提供了单元测试框架中常见的所有功能以及用于测试图形用户界面的扩展。 1.自动化测试包络ui测试>接口测试>单元测试;现问如何使用Qt进行单元测试&…...
c++题目_P1443 马的遍历
P1443 马的遍历 # P1443 马的遍历 ## 题目描述 有一个 $n \times m$ 的棋盘,在某个点 $(x, y)$ 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。 ## 输入格式 输入只有一行四个整数,分别为 $n, m, x, y$。 ## 输出格式 …...
并发网路通信-套接字通信
套接字通信就是网络通信 在网络通信时,客户端和服务器的比例是N:1 服务器如何处理多个客户端的请求 并发处理方式 1.多线程并发处理->线程池并发处理,线程池可以对多个线程进行管理 2.多进程->进程池 3.io多路转接,使用select或者epoch进行处理,使用io转接函数…...
STM32N6如何调试下载代码
关键词:STM32N6、调试代码、开发者模式、外部Flash模式 文章目录 前言一、开发者模式调试1.1 CubeIDE调试1.2 IAR调试 二、如何下载代码(外部FLASH模式)2.1 准备工作2.2 编译下载2.2.1 Appli编译头文件下载2.2.2 FSBL编译头文件下载 2.3 运行…...
【2025】Datawhale AI春训营-蛋白质预测(AI+生命科学)-Task2笔记
【2025】Datawhale AI春训营-蛋白质预测(AI生命科学)-Task2笔记 本文对Task2使用的代码进行理解。 任务描述 Task2的任务仍然是通过对反应中包含的蛋白质残基信息,运用深度学习模型构建蛋白质3D结构的隐式模型,从而达成准确预测…...
Python基于知识图谱的医疗问答系统【附源码、文档说明】
博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...
Unreal 从入门到进阶 之 如何实现Pixel Streaming
文章目录 前言核心概念工作原理主要应用场景Pixel Streaming和Pixel Streaming2部署准备编辑器推流打包推流最后前言 Unreal Engine 5 (UE5) 的 Pixel Streaming 是一项基于云端的实时流媒体技术,允许将 UE5 应用的高质量图形渲染结果通过 WebRTC 协议传输到用户的浏览器或轻…...
作业2 CNN实现手写数字识别
# 导入必要库 import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 用于高级可视化 from tensorflow import keras from tensorflow.keras import layers from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import time # 用于…...
Linux驱动开发--阻塞、非阻塞I/O
2. 阻塞、非阻塞I/O IO 指的是 Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将应用程序对应的线程挂起,直到…...
运筹学之模拟退火
目录 一、历史二、精髓思想三、案例与代码实现 一、历史 问:谁在什么时候提出模拟退火?答:模拟退火算法(Simulated Annealing,SA)是由斯图尔特柯尔斯基(Scott Kirkpatrick) 等人在 …...
JavaScript 的演变:2023-2025 年的新特性解析
随着Web技术的飞速发展,ECMAScript(简称ES)作为JavaScript的语言标准,也在不断进化。 本文将带你学习 ECMAScript 2023-2025 的新特性。 一、ECMAScript 2023 新特性 1.1 数组的扩展 Array.prototype.findLast()/Array.protot…...
CSS继承
CSS继承 CSS继承是一种机制,允许子元素自动继承父元素的某些样式属性,从而减少重复代码。 以下是一些常见的具有继承性的CSS属性: color : 文字颜色 font-family : 字体族名称 font-size : 字体大小 font-weight &am…...
游戏引擎学习第236天:GPU 概念概述
回顾并展望通过视频采集卡进行流媒体传输的未来 昨天,我们迈出了大胆的一步,决定初始化硬件的 3D 加速,因为我有点厌倦了我们的游戏没有垂直同步(vsync)。如今,在 Windows 上,我找不到一种可靠…...
HFSS3(limy)——建模学习记录
前言——笔者使用的是21版HFSS 1.基本模型 为什么没有环形的天线 2.创建基本模型方法 常用:先粗略建好模型再编辑输入准确坐标和大小尺寸(这里长方体起始点是左上角下方的点,也就是说要输入模型起点相对于坐标原点的位置尺寸就可以确定具体…...
php实现zip压缩
可以使用ZipArchive类来创建ZIP压缩文件。ZipArchive是PHP内置的一个类,提供了创建、打开、读取、写入和关闭ZIP文件的功能。 示例:压缩单个文件 <?php$fileToZip path/to/your/file.txt; $zipFileName compressed.zip;$zip new ZipArchive(); …...
【STM32单片机】#10 USART串口通信
主要参考学习资料: B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…...
goc命令大全
颜色0黑1红2蓝3浅绿4浅蓝5淡黄6棕7深蓝8灰9粉10深绿11紫12蓝绿13黄14橙15白 绘图命令功能pen笔.fd()前进.rt()右转.c()颜色.up()抬笔.o(,)圆.e(,)椭圆.r(,,)长方形.picL(,)调图片.text(,,)文字.hide()隐藏.moveTo(,)移动wait();等待.soundL()调声音pause();暂停 绘图命令功能…...
Linux | 软件仓库管理
一. 软件包 1.1 软件包的分类 DEB:主要用于基于 Debian 的系统,如 Ubuntu。这种软件包格式具有良好的依赖管理机制,方便用户安装、升级和卸载软件。RPM:广泛应用于 Red Hat、CentOS、Fedora 等系统。RPM 包将软件打包成一个文件…...
Python实现对目标Word文档进行自动化排版【4万字精讲】(14)
前言 本文是该专栏的第14篇,后面会持续分享Python办公自动化干货知识,记得关注。 注意:本文涵盖4万字以及实战操作代码的精讲攻略,带你轻松掌握一键式“文档自动化排版”程序功能。 如果说当你在工作项目中,遇到这样的需求,需要如何处理——假设,现在有大批量的docx格…...
LeetCode每日一题4.19
2563. 统计公平数对的数目 题目 问题分析 输入:一个整数数组 nums 和两个整数 lower 和 upper。 输出:返回满足条件的公平数对的数目,即对于所有 0 < i < j < n,lower < nums[i] nums[j] < upper 的数对 (i, j)…...
Spring AI 开发 - 快速入门
先看效果 项目搭建 Spring AI 是 Spring 推出的一个项目,目标是提供统一的API抽象层,屏蔽不同AI模型和服务的底层差异,实现跨平台兼容性。 演示使用的模型是阿里的 qwq-32b。 环境要求: JDK :17以上(包括…...