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

小梅哥Xilinx FPGA学习笔记18——专用时钟电路 PLL与时钟向导 IP

目录

一:IP核简介(具体可参考野火FPGA文档)

二: 章节导读

三:PLL电路原理

3.1 PLL基本实现框图

3.2 PLL倍频实现

3.3 PLL分频实现

四: 基于 PLL 的多时钟 LED 驱动设计

4.1 配置 Clocking Wizard 核

4.2 led 闪烁控制

4.2.1 LED闪烁代码设计

4.3 顶层模块代码设计

4.4 仿真测试文件

4.5 仿真结果

4.6 管脚约束文件

4.7 上板验证结果


一:IP核简介(具体可参考野火FPGA文档)

IP Intellectual Property)即知识产权, 简言而之,IP 即电 路功能模块。 IP 核在数字电路中常用于比较复杂的功能模块(如 FIFO RAM FIR 滤波 器、 SDRAM 控制器、 PCIE 接口等)设计成参数可修改的模块,让其他用户可以直接调用 这些模块。
IP 核有三种不同的存在形式:

HDL 语言形式---(软核)
        硬件描述语言;可进行参数调整、复用性强;布局、布线灵活;设计周期短、设计投入少
网表形式---(固核)
        完成了综合的功能块;可预布线特定信号或分配特定的布线资源。
版图形式---(硬核)
        硬核是完成提供设计的最终阶段产品-掩膜(Mask);缺乏灵活性、可移植性差;更易于实现IP核的保护。

IP核缺点:

  • IP核往往不能跨平台使用
  • IP核不透明,看不到内部核心代码
  • 定制IP需额外收费

二: 章节导读

       在 verilog 设计中,程序的运行往往都是围绕着时钟展开,越是复杂的设计往往会涉及越多不同的时钟。 而对于开发板来说,通常都只设计有一个晶振, 以 ACZ702 开发板的 PL 端为例,就板载了一个 50MHz 的有源晶振。通过开发板 内部逻辑,虽然能够基于该时钟分频倍频,产生不同频率的时钟,但是这些时 钟往往质量较差,并不适合应用。
       FPGA 厂商为了解决这个问题,会在器件内部加入专用的时钟电路,也就是 我们常说的锁相环(PLL)。通过该专用时钟电路分频倍频产生的时钟,不仅质 量好,精度也会更高。本章我们将带大家学习锁相环的工作机理,并结合 xilinx 提供的 clocking wizard 软核,通过一个简单的应用来带领大家熟悉锁 相环的基础使用方法。   

三:PLL电路原理

       锁相环(PLL Phase-Locked Loop ),是一种反馈控制电路,常常用于利用 外部输入的参考信号控制环路内部振荡信号的频率和相位。锁相环在工作时, 当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,因此得名锁相环。 PLL是最常用的IP核之一,其性能强大,可以对输入到FPGA的时钟信号进行 任意分频、倍频、相位调整、占空比调整,从而输出一个期望时钟。
锁相环通常由 下图 所示的架构组成:

其中,输入分频、输出分频、反馈分频为三个分频计数器,对时钟分频以满足需求。其余四个模块的功能分别如下:
  • 鉴相鉴频器 PFD(Phase Frequency Detector):对输入的基准信号(通常是来自频率稳定的晶振)和反馈回路的信号进行频率的比较,输出一个代表两者相位差异的信号。若相同则输出0 。参考时钟大于对比时钟频率会输出变大的成正比的值,小于就变小的成正比的值。
  • 电荷泵(CP): 根据 PFD 输出的信号,产生对应电压。
  • 环路滤波器 LF(Loop Filter): 用于控制噪声的带宽,滤掉高频噪声, 保留直流部分。
  • 压控振荡器 VCO(Voltage Controlled Oscillator): 根据滤波器输入的电压,输出对应频率的周期信号。环路滤波器输入的电压越大 VCO 输出 的频率越高,进而产生 N 倍于输入时钟的新时钟。
       其中,VCO 输出的时钟经过反馈分频后传回 PFD 这一电路我们称之为 反馈回路 PLL 在工作时,压控振荡器输出的时钟信号在经过反馈回路后输入到 PFD 中, PFD 会将其与输入的基准时钟比较,从而得到二者间的频率和相位差。 频率和相位差会以信号的方式输出,驱动 CP 产生电压,经过低通滤波后转换为 直流脉冲电压,作为 VCO 的控制电压,驱动 VCO 改变输出时钟。输出时钟又 会经由反馈回路,输入到 PFD 与基准时钟对比,如此往复,最终输出稳定的满足需求的时钟。
       因此,PLL 输出的时钟并不是由输入的基准时钟直接分频倍频得来,而是 基于基准时钟,通过内部的震荡电路生成新的时钟,再经由反馈电路将时钟环 回给 PFD ,通过不断将新产生的时钟与基准时钟作比较,最终输出频率和相位 稳定的时钟。 也正是因为如此,在使用 PLL 时,当基准时钟输入进 PLL 之后,我们并不 能立马得到输出时钟,即使得到也不能立马使用。因为此时的时钟还并不稳定, 需要等待一段时间之后,才能得到精确且稳定的时钟。

3.1 PLL基本实现框图

下图中鉴相鉴频器 PFD(Phase Frequency Detector)是用来比较输入参考信号与反馈信号的频率与相位的。最终它们会趋近于相同,及输出为0。

3.2 PLL倍频实现

       从下图可以看出倍频多出了一个DIV倍频环节,如果输入信号是50MHz的频率,因为鉴相鉴频器 PFD的两端最终归趋近于相等,则经过DIV之后的频率会变成50MHz。即如果是2倍频,则pll_out会变成100MHz输出。实现倍频输出。

3.3 PLL分频实现

       从下图可以看出分频多出了一个DIV分频环节放在输入信号那里,如果输入信号是50MHz的频率,如果分频器DIV是5倍分频,则输入PFD的频率是10M,因为鉴相鉴频器 PFD的两端最终归趋近于相等,则经过反馈回路输出的频率也为10MHz。则pll_out会变成10MHz输出。实现5分频输出。

四: 基于 PLL 的多时钟 LED 驱动设计

       本次设计我们将通过 PLL 产生 4 个不同的时钟,这四个时钟分为两个频率,同一频率之间的时钟在相位或占空比上存在差异。通过仿真,对比输出时钟波 形间的关系,验证 PLL 的基础功能。同时,为了验证 PLL 输出的时钟能否稳定 用于其他模块, PLL 输出的时钟还将被用于驱动 LED

4.1 配置 Clocking Wizard

       首先,通过 IP Catalog 为设计添加 clocking wizard 核。为了与大多数使用情况一致,本次设计使用的 PLL 结构,输入时钟使用的 50M 板载晶振,输出时钟 频率为常见的 100MHz 200MHz ,复位类型为低电平复位。因此, IP 核的时钟 配置界面如下图 所示:

为了观察输出时钟相位和占空比的变化,我们分别对 clk_out2 的相位和clk_out4 的占空比进行了修改,以方便仿真时对照波形。

4.2 led 闪烁控制

        基于“视觉暂留”现象,当人眼被中等强度的光刺激以后,人眼看到的图像会短暂停留 0.1~0.4 秒。而如果我们直接使用生成的时钟驱动 led 闪烁,其变 化速率便会远远超过人眼的识别速度,因此,我们需要设计一个分频计数模块, 对输入的时钟分频,控制 LED 的闪烁频率。

4.2.1 LED闪烁代码设计

module led_ctrl(input clk,input reset_n,output reg led);parameter MCNT = 1000_0000;reg [29:0]cnt;//led翻转计数逻辑always@(posedge clk or negedge reset_n)if(!reset_n)cnt <= 0;else if(cnt >= MCNT-1)    cnt <= 0;else cnt <= cnt + 1;always@(posedge clk or negedge reset_n)if(!reset_n)led <= 0;else if(cnt >= MCNT-1)    led <= ~led;else led <= led;       endmodule

4.3 顶层模块代码设计

module pll_led(input sys_clk,input reset_n,  output [3:0]led
);wire locked            ;wire clk_100m          ;wire clk_100m_s90      ;wire clk_200m          ;wire clk_200m_d20      ;led_ctrl #(.MCNT (5000_0000))led_ctrl_inst0(.clk        (clk_100m),.reset_n    (locked),//当locked信号为高电平时方可使用,其输出的才是稳定的时钟信号。.led        (led[0]));led_ctrl #(.MCNT (5000_0000))led_ctrl_inst1(.clk        (clk_100m_s90),.reset_n    (locked),.led        (led[1]));led_ctrl #(.MCNT (5000_0000))led_ctrl_inst2(.clk        (clk_200m),.reset_n    (locked),.led        (led[2]));led_ctrl #(.MCNT (5000_0000))led_ctrl_inst3(.clk         (clk_200m_d20),.reset_n     (locked),.led         (led[3]));clk_wiz_0 clk_wiz_0_inst(// Clock out ports.clk_100m(clk_100m),     // output clk_100m.clk_100m_s90(clk_100m_s90),     // output clk_100m_s90.clk_200m(clk_200m),     // output clk_200m.clk_200m_d20(clk_200m_d20),     // output clk_200m_d20// Status and control signals.resetn(reset_n), // input resetn.locked(locked),       // output locked// Clock in ports.sys_clk(sys_clk));      // input sys_clk
endmodule

4.4 仿真测试文件

`timescale 1ns / 1ps
module pll_led_tb();reg     sys_clk       ;
reg     reset_n       ;
wire    clk_100m      ;
wire    clk_100m_s90  ;
wire    clk_200m      ;
wire    clk_200m_d20  ;
wire    [3:0]led      ;pll_led pll_led(.sys_clk     (sys_clk)  ,.reset_n     (reset_n)  ,.clk_100m    (clk_100m)  ,.clk_100m_s90(clk_100m_s90)  ,.clk_200m    (clk_200m)  ,.clk_200m_d20(clk_200m_d20)  ,.led         (led)
);//重定义,缩短仿真时间defparam pll_led.led_ctrl_inst0.MCNT = 26'd500;defparam pll_led.led_ctrl_inst1.MCNT = 26'd500;defparam pll_led.led_ctrl_inst2.MCNT = 26'd500; defparam pll_led.led_ctrl_inst3.MCNT = 26'd500;initial sys_clk = 1'b1;always #10 sys_clk = ~sys_clk;initialbeginreset_n = 0;#201;reset_n = 1;#20000; $stop;endendmodule

4.5 仿真结果

4.6 管脚约束文件

set_property IOSTANDARD LVCMOS33 [get_ports reset_n]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property PACKAGE_PIN U18 [get_ports sys_clk]
set_property PACKAGE_PIN F20 [get_ports reset_n]
set_property PACKAGE_PIN G17 [get_ports {led[0]}]
set_property PACKAGE_PIN G19 [get_ports {led[1]}]
set_property PACKAGE_PIN G18 [get_ports {led[3]}]
set_property PACKAGE_PIN G20 [get_ports {led[2]}]

4.7 上板验证结果

至此PLL的IP核调用实验完美成功。

相关文章:

小梅哥Xilinx FPGA学习笔记18——专用时钟电路 PLL与时钟向导 IP

目录 一&#xff1a;IP核简介&#xff08;具体可参考野火FPGA文档&#xff09; 二&#xff1a; 章节导读 三&#xff1a;PLL电路原理 3.1 PLL基本实现框图 3.2 PLL倍频实现 3.3 PLL分频实现 四: 基于 PLL 的多时钟 LED 驱动设计 4.1 配置 Clocking Wizard 核 4.2 led …...

低代码平台在金融银行中的应用场景

随着数字化转型的推进&#xff0c;商业银行越来越重视技术在业务发展中的作用。在这个背景下&#xff0c;白码低代码平台作为一种新型的开发方式&#xff0c;正逐渐受到广大商业银行的关注和应用。白码低代码平台能够快速构建各类应用程序&#xff0c;提高开发效率&#xff0c;…...

Css基础内容

<!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <title>CSS</title> <!-- <link rel"stylesheet" href"Html5与Css3\CSS\my.css"> --> <!-- link引入外部样式表&#xff1a;rel&…...

微服务(11)

目录 51.pod的重启策略是什么&#xff1f; 52.描述一下pod的生命周期有哪些状态&#xff1f; 53.创建一个pod的流程是什么&#xff1f; 54.删除一个Pod会发生什么事情&#xff1f; 55.k8s的Service是什么&#xff1f; 51.pod的重启策略是什么&#xff1f; 可以通过命令kub…...

连锁门店管理需要信息化系统

连锁门店管理的信息化系统可以提供以下功能&#xff0c;以满足连锁企业日常管理的需求&#xff1a; 1. 连锁线下收银&#xff1a;信息化系统可以提供线下收银功能&#xff0c;包括商品扫码、价格结算、支付方式选择等。通过系统记录每笔交易数据&#xff0c;方便对销售情况进行…...

UTF-8编码:打破字符编码的国界

UTF-8编码&#xff1a;打破字符编码的国界 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同探讨编程世界中一项至关重要的技术——“UTF-…...

HTML进阶

列表、表格、表单 文章目录 列表、表格、表单01-列表无序列表有序列表定义列表 02-表格表格结构标签-了解合并单元格 03-表单input 标签input 标签占位文本单选框上传文件多选框下拉菜单文本域label 标签按钮 04-语义化无语义的布局标签有语义的布局标签 05-字符实体 01-列表 …...

基于策略模式和简单工厂模式实现zip、tar、rar、7z四种压缩文件格式的解压

推荐语 这篇技术文章深入探讨了基于策略模式和简单工厂模式实现四种常见压缩文件格式的解压方法。通过阅读该文章&#xff0c;你将了解到如何利用这两种设计模式来实现灵活、可扩展的解压功能&#xff0c;同时适应不同的压缩文件格式。如果你对设计模式和文件处理感兴趣或刚好…...

修改jenkins的目录(JENKINS_HOME)

默认JENKINS_HOME是/var/lib/jenkins/ 现要修改为/home/jenkins_data/jenkins 最开始 sudo cp -a /var/lib/jenkins/ /home/jenkins_data/ 然后如下操作&#xff1a; 1、首先 /etc/sysconfig/jenkins&#xff1a;jenkins配置文件&#xff0c;“端口”&#xff0c;“JENKIN…...

Bytebase:统一数据库 CI/CD 解决方案 | 开源日报 No.128

bytebase/bytebase Stars: 7.9k License: NOASSERTION Bytebase 是一个数据库 CI/CD 解决方案&#xff0c;为开发人员和 DBA 提供统一的工具来管理不同数据库系统的开发生命周期。其主要功能包括标准化操作流程、SQL 代码审查、GitOps 集成以及数据访问控制等。关键特性和核心…...

History对象常用方法

文章目录 一、什么是History对象二、使用History对象 一、什么是History对象 history 对象来保存浏览器历史记录信息&#xff0c;也就是用户访问的页面。浏览器的前进与后退功能本质上就是 history 的操作。history 对象记录了用户浏览过的页面&#xff0c;通过该对象提供的 A…...

修改源码,element的el-table合并,处理合并产生的hover样式问题

1、确认自己element-ui的版本号 2、此element-ui下的lib包是修改过hover样式的包,如何替换自己文件下的node_modules中的包 修改后将lib文件夹中文件替换你项目中/node_module/element-ui/Lib中的文件问题??如果替换开发环境中的node_module的包无法升级到测试环境,因为nod…...

IoT 物联网常用协议

物联网协议是指在物联网环境中用于设备间通信和数据传输的协议。根据不同的作用&#xff0c;物联网协议可分为传输协议、通信协议和行业协议。 传输协议&#xff1a;一般负责子网内设备间的组网及通信。例如 Wi-Fi、Ethernet、NFC、 Zigbee、Bluetooth、GPRS、3G/4G/5G等。这些…...

使用java备份和恢复SQLServer表数据

需求 近来工作中遇到一个问题&#xff0c;内网办公系统中的数据需要导出到外网中进行查询&#xff0c;外网的数据库中还有一些表存储外网的数据&#xff0c;因此无法使用全库备份恢复功能来满足需求。即只从内网数据库中导出若干表的内容至外网数据库的对应表。 其他解决方案…...

27 UVM queue

uvm_queue类构建一个动态队列&#xff0c;该队列将按需分配并通过引用传递。 uvm_queue类声明&#xff1a; class uvm_queue #( type T int ) extends uvm_object 1 uvm_queue class hierarchy 2 uvm_queue class Methods 3 UVM Queue Example 在下面的示例中&#xff0c;…...

聊聊自动化测试的分层实践

技术群里&#xff0c;有同学聊起了各自在实践自动化测试时遇到的各种问题&#xff0c;最典型的就是落地难度和投入产出比。毕竟在当前这个时间节点&#xff0c;单纯的技术实践如果不能带来实际可见的业务价值&#xff0c;确实很影响个人绩效和团队产出。 这篇文章&#xff0c;…...

LVS那点事

LVS 原理 IPVS LVS 的 IP 负载均衡技术是通过 IPVS 模块来实现的&#xff0c;IPVS 是 LVS 集群系统的核心软件&#xff0c;它的主要作用是&#xff1a;安装在 Director Server 上&#xff0c;同时在 Director Server 上虚拟出一个 IP 地址&#xff0c;用户必须通过这个虚拟的…...

2022-2023年度广东省职业院校学生专业技能大赛“软件测试”赛项接口测试训练题目

接口测试 新增接口脚本编写和执行测试,并执行脚本。 (1)商品单位添加接口描述如下: 接口功能:提供商品单位新增处理。 接口地址(根据实际系统IP及端口自行替换): http://XX.XX.XX.XX:XXXX/prod-api/manager/category/add。 请求方式:POST。 请求参数:...

[Python][LeetCode]28. 找出字符串中第一个匹配项的下标

给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&#xff1a; 输入&#xff1a;haystack &quo…...

Prometheus监控mysql

docker-compose.yml 创建mysql mkdir/data/mysql -pcat > /data/mysql/docker-compose.yml << EOF version: 3.1 services:db:image: mysql:8.0restart: alwayscontainer_name: mysqlenvironment:TZ: Asia/ShanghaiLANG: en_US.UTF-8MYSQL_ROOT_PASSWORD: 123456comm…...

骑砍战团MOD开发(30)-游戏大地图map.txt

骑砍1战团mod开发-大地图制作方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rz4y1c7wH/ 一.骑砍游戏大地图 骑砍RTS视角游戏大地图 大地图静态模型(map.txt) 军团/城镇图标(module_parties.py). 骑砍大地图的战争迷雾和天气通过API进行管理和控制: # Weather-h…...

关于 bringup sensor 时,曝光时间异常的问题排查

1、问题背景 这两天在配置 sc223a 这颗 sensor 的驱动&#xff0c;按 datasheet 的要求配置 sensor 的曝光后&#xff0c;发现最大曝光时间增加了一倍&#xff0c; sensor setting 用的是30fps &#xff0c;理论上最大的绝对曝光时间应该是 33ms 才正确&#xff0c;但实际用 …...

linux用户态与内核态通过字符设备交互

linux用户态与内核态通过字符设备交互 简述 Linux设备分为三类&#xff0c;字符设备、块设备、网络接口设备。字符设备只能一个字节一个字节读取&#xff0c;常见外设基本都是字符设备。块设备一般用于存储设备&#xff0c;一块一块的读取。网络设备&#xff0c;Linux将对网络…...

如何高效查询文件:Linux 下的多种方法详解

如何高效查询文件&#xff1a;Linux 下的多种方法详解 在日常工作中&#xff0c;我们经常需要查找文件&#xff0c;无论是寻找特定的代码文件、配置文件还是其他文档。Linux 提供了多种强大的命令和工具&#xff0c;通过巧妙地使用管道符&#xff0c;我们可以将这些命令组合起来…...

记矩阵基础概念

转自up&#xff1a;Naruto_Qcsdn&#xff1a;三维空间几何变换矩阵 先贴个站里分享的基础概念。 learn form 肥猫同学VFX b站&#xff1a;会用transform就会用矩阵 移动 旋转 缩放 1.transofrm ——输出变化矩阵 可以移动transform查看变化去理解 位移 缩放 旋转 由此—…...

用html,js和layui写一个简单的点击打怪小游戏

介绍&#xff1a; 一个简单的打怪小游戏&#xff0c;点击开始游戏后&#xff0c;出现攻击按钮&#xff0c;击败怪物后可以选择继续下一关和结束游戏。 继续下一个怪兽的血量会增加5点&#xff0c;攻击按钮会随机变色。 效果图&#xff1a; html代码&#xff1a; <!DOCTYPE…...

[线代]不挂科猴博士

行列式的性质 行列式的计算及应用 矩阵的运算上(加减,相乘,取行列式) 矩阵的运算下(转置,逆,秩) 向量组与线性空间 解方程组...

扩散式过滤器 水泵角通除污器 0阻力过滤器直角过滤器工作原理

​ 1&#xff1a;扩散式除污器过滤器介绍 扩散除污器是一种在多个领域都有应用的设备&#xff0c;例如在泵站中用于拦截介质中的杂质&#xff0c;净化介质&#xff0c;保护管路&#xff0c;提高水泵效率&#xff0c;延长水泵寿命等。它还可以方便地进行变径处理&#xff0c;可以…...

MetalLB:本地Kubernetes集群的LoadBalancer负载均衡利器

背景 在本地集群进行测试时&#xff0c;我们常常面临一个棘手的问题&#xff1a;Service Type不支持LoadBalancer&#xff0c;而我们只能选择使用NodePort作为替代。这种情况下&#xff0c;我们通常会配置Service为NodePort&#xff0c;并使用externalIPs将流量导入Kubernetes…...

C++判定终端ip和目标ip是否在同一局域网内

程序如下&#xff1a;用于判断给定的终端 IP、子网掩码和目标 IP 是否在同一局域网内。请注意&#xff0c;这个程序假设 IP 地址是用整数表示的。 #include <iostream> #include <sstream> #include <vector> #include <bitset>// Function to check …...

深入解析 可空值类型

前言&#xff1a; 问&#xff1a;为什么会有可空值类型的诞生&#xff1f; 答&#xff1a;应对在某些特定场景中获取的信息可能是不完整的。 C# 1中的可空值类型 在C#1中没有对应的表示Null值的方法。当时普遍都是采用其他方式。第一种在数据缺失的情况下给其一个默认值。第…...

esp32idf使用thingscloud例程

对于不同的消息类型&#xff0c;API 如下&#xff1a; 消息类型 HTTP Method HTTP URL 设备上报属性 POST /device/v1//attributes 设备获取属性 GET /device/v1//attributes 设备上报事件 POST /device/v1//event/report 您只需要将以上的 HTTP URL 和接入点拼接即可获得最终…...

记一次应急响应练习(Linux)

记一次应急响应练习(Linux) Linux&#xff1a; 请提交攻击者的IP地址 答&#xff1a; 192.168.31.132 思路&#xff1a; 通过查看历史命令和开放的8080端口看到这台主机上运行的是Tomcat服务。并且在历史命令中看到了Tomcat的安装路径。那么就算是找到了日志的查看点了&#x…...

Pandas教程(四)—— 分层索引及数据联合

1.分层索引 分层索引就是在一个轴上拥有多个&#xff08;两个及以上&#xff09;索引级别&#xff0c;能以低维度形式处理高维度数据。 行索引有两层 1.1 分层索引的创建 1.1.1 方式一&#xff1a;直接设置 1&#xff09;在创建series、dataframe或读取文件时时&#xff0c;行…...

小梅哥Xilinx FPGA学习笔记16——FSM(状态机)的学习

目录 一、 状态机导读 1.1 理论学习 1.2 状态机的表示 1.3 状态机编码 1.4 状态机描述方式 二 、实战演练一&#xff08;来自野火&#xff09; 2.1 实验目标 2.2 模块框图 2.3 状态转移图绘制 2.4 设计文件 2.5 仿真测试文件 2.6 仿真结果 三、 实战演练二&…...

vol----学习随记!!!

目录 一、代码生成1.先新建一个功能的对应的代码配置各项解释&#xff1a; 2.后设置配置菜单3.再点保存&#xff0c;生成vue页面&#xff0c;生成model&#xff0c;生成业务类4.再通过菜单设置编写系统菜单 一、代码生成 1.先新建一个功能的对应的代码配置 各项解释&#xff…...

HarmonyOS4.0系统性深入开发10卡片事件能力说明

卡片事件能力说明 ArkTS卡片中提供了postCardAction()接口用于卡片内部和提供方应用间的交互&#xff0c;当前支持router、message和call三种类型的事件&#xff0c;仅在卡片中可以调用。 接口定义&#xff1a;postCardAction(component: Object, action: Object): void 接口…...

openGauss学习笔记-181 openGauss 数据库运维-升级-升级流程

文章目录 openGauss学习笔记-181 openGauss 数据库运维-升级-升级流程 openGauss学习笔记-181 openGauss 数据库运维-升级-升级流程 本章介绍升级到该版本的主要升级过程。 图 1 升级流程图 说明&#xff1a; 本文档中描述的时间仅供参考&#xff0c;实际操作时间以现场情况…...

提前应对威胁

通过新的《2023-2028 年荷兰国际网络安全战略》&#xff0c;荷兰政府在面对国家和犯罪分子持续构成的网络威胁时展现了责任和机构。它渴望将民主、人权和规范放在首位&#xff0c;并寻求维护全球开放、自由和安全的互联网。该战略明确了政府在国内实施打击的意愿和能力&#xf…...

C语言与人生:数组交换和二分查找

少年们&#xff0c;大家好。我是博主那一脸阳光&#xff0c;今天和分享数组交换和二分查找。 前言&#xff1a;探索C语言中的数组交换操作与二分查找算法 在计算机编程领域&#xff0c;特别是以C语言为代表的低级编程语言中&#xff0c;对数据结构的理解和熟练运用是至关重要的…...

Python实现【亚马逊商品】数据采集

前言 亚马逊公司&#xff0c;是美国最大的一家网络电子商务公司&#xff0c;位于华盛顿州的西雅图 是网络上最早开始经营电子商务的公司之一&#xff0c;亚马逊成立于1994年 今天教大家用Python批量采集亚马逊平台商品数据&#xff08;完整代码放在文末&#xff09; 地址&#…...

Git使用教程 gittutorial

该教程对该文章的翻译&#xff1a;https://git-scm.com/docs/gittutorial 本文介绍怎用使用 Git 导入新的工程、修改文件及如何其他人同步开发。 首先&#xff0c; 可以使用以下指令获取文档帮助 git help log笔者注&#xff1a;不建议看这个文档&#xff0c;标准的语法介绍…...

有了向量数据库,我们还需 SQL 数据库吗?

“除了向量数据库外&#xff0c;我是否还需要一个普通的 SQL 数据库&#xff1f;” 这是我们经常被问到的一个问题。如果除了向量数据以外&#xff0c;用户还有其他标量数据信息&#xff0c;那么其业务可能需要在进行语义相似性搜索前先根据某种条件过滤数据&#xff0c;例如&a…...

信息网络协议基础-IPv6协议

文章目录 概述为什么引入IP服务模型IPv4的可扩展性问题解决方法***CIDR(Classless Inter-Domain Routing, 无类别域间寻路)前缀汇聚***前缀最长匹配***NAT(网络地址转换)存在的问题解决方案路由表配置***局限性IPv6协议头标IPv6地址表示前缀类型单播地址链路局部地址(Link-Loca…...

VC++ ado 实现单表CURD

继续修改前文的资产管理源码; 新建一个数据库sds;把代码中的数据库连接改为连接此库; 新建下图一个表; 把之前的资产类别管理对话框改为下图所示;对话框ID也改为下图; 资产类别管理菜单和ID改为下图; 直接修改资产类别管理对话框类不太方便,新建一个对话框类,没有关联…...

C#使用switch多路选择语句判断何为季节

目录 一、 switch语句 二、示例 三、生成 一、 switch语句 switch语句是多路选择语句&#xff0c;它通过一个表达式的值来使程序从多个分支中选取一个用于执行的分支。 switch表达式的值只可以是整型、字符串、枚举和布尔类型。 switch语句中多个case可以使用一个break。 在…...

可爱的魔法曲线 Lovely Magical Curves(12年开始只有5个人AC)

一起来交流编程吧&#xff01;【CSDN app】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&k3svdDJTlkD76TRRShbxYCYK1zK1c8cyF&authKeyv1pxp6rS8AA4SRy7bflJl9LIwp8d5v0HOudw%2BDxHiWDRqZ1LzjeoBJH1Z1EXnl35&noverify0&group_code546881376 可爱的魔法…...

通过C++程序实现光驱的自动化刻录和读取

文章目录 ISO文件格式光盘的基本概念光盘种类特点DVDR光盘使用windows调用Linux调用Linux平台下用到的C库:读取设备驱动列表向光驱中写文件 数字存储媒体快速发展的今天&#xff0c;光驱的使用已经不像以前那样普及了。但是在数据备份、安装软件和操作系统、旧设备兼容等领域还…...

【电商项目实战】商品详情显示与Redis存储购物车信息

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《电商项目实战》。&#x1f3af;&#x1f3af; &am…...

概率论基础

1.概率论 1.1 随机事件与概率 1.1.1 基本概念 ​ 样本点(sample point)&#xff1a; 称为试验 S S S的可能结果为样本点&#xff0c;用 ω \omega ω表示。 ​ 样本空间(sample space)&#xff1a;称试验 S S S的样本点构成的集合为样本空间&#xff0c;用 Ω \Omega Ω表示…...