LVDS系列10:Xilinx 7系可编程输入延迟(三)
这节继续讲解IDELAYE2和IDELAYCTRL的VARIABLE模式、VAR_LOAD模式和VAR_LOAD_PIPE模式的仿真测试;
VARIABLE模式使用:
VARIABLE模式需要使用INC和CE端口控制抽头值的递增递减变化;
测试代码如下:
module top_7series_idelay(
input wire clk_ref_200m,
input wire clk_ref_300m,
input wire clk,
input wire rst,
input wire load_trg,
input wire idatain,
input wire datain,
output wire dout
);
wire idelayctrl_rdy;
wire [4:0] cntvalueout;
reg ce=0;
reg cinvctrl=0;
reg [4:0] cntvaluein=0;
reg inc=0;
reg ld=0;
reg ldpipeen=0;
reg regrst=0;
// idelayctrl -------------------------------------------------
IDELAYCTRL IDELAYCTRL_inst (
.RDY(idelayctrl_rdy), // 1-bit output: Ready output
.REFCLK(clk_ref_200m), // 1-bit input: Reference clock input
.RST(rst) // 1-bit input: Active high reset input
);
// idelaye2 -------------------------------------------------
always @(posedge clk) begin
if (rst) begin
inc <= 0;
ce <= 0;
end
else if (load_trg==1) begin
inc <= 1;
ce <= 1;
end
else begin
inc <= 0;
ce <= 0;
end
end
IDELAYE2 #(
.CINVCTRL_SEL(“FALSE”), // Enable dynamic clock inversion (FALSE, TRUE)
.DELAY_SRC(“IDATAIN”), // Delay input (IDATAIN, DATAIN)
.HIGH_PERFORMANCE_MODE(“FALSE”), // Reduced jitter (“TRUE”), Reduced power (“FALSE”)
.IDELAY_TYPE(“VARIABLE”), // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
.IDELAY_VALUE(0), // Input delay tap setting (0-31)
.PIPE_SEL(“FALSE”), // Select pipelined mode, FALSE, TRUE
.REFCLK_FREQUENCY(200.0), // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
.SIGNAL_PATTERN(“DATA”) // DATA, CLOCK input signal
)
IDELAYE2_inst (
.CNTVALUEOUT(cntvalueout), // 5-bit output: Counter value output
.DATAOUT(dout), // 1-bit output: Delayed data output
.C(clk), // 1-bit input: Clock input
.CE(ce), // 1-bit input: Active high enable increment/decrement input
.CINVCTRL(cinvctrl), // 1-bit input: Dynamic clock inversion input
.CNTVALUEIN(cntvaluein), // 5-bit input: Counter value input
.DATAIN(datain), // 1-bit input: Internal delay data input
.IDATAIN(idatain), // 1-bit input: Data input from the I/O
.INC(inc), // 1-bit input: Increment / Decrement tap delay input
.LD(ld), // 1-bit input: Load IDELAY_VALUE input
.LDPIPEEN(ldpipeen), // 1-bit input: Enable PIPELINE register to load data input
.REGRST(regrst) // 1-bit input: Active-high reset tap-delay input
);
endmodule
将inc和ce设置为,当load_trg拉高一次,load_trg每隔100ns触发一次,就触发一个时钟周期的inc=1和ce=1,
可以看到上图,load_trg到来一次,cntvalueout实时抽头值就增加1,到31后,再次递增则就又回到了0,
且从上图可以看到,抽头值为30时,延时时间也正确;
将inc和ce设置为,当load_trg拉高一次,就触发一个时钟周期的inc=0和ce=1,且将IDELAY_VALUE参数设置为20,
从上图可以看到,IDELAY_VALUE参数设置为20后,原语上电默认的抽头值为20,当每次loag_trg到来,抽头值递减,从20递减到0,当抽头值为0后,再一次递减则又回到31;
之前load_trg是间隔100ns拉高一个clk时钟周期,现在这次将load_trg一直保持为高,
可以看到,ce保持为1,inc保持0,cntvalueout每个clk时钟周期就变化一次,
具体到上图中,抽头值显示在clk(100M)连续两个周期从8变到7的情况下,查看在抽头值8时延时为1.224ns,抽头值为7时延时为1.146,其中1.224=0.6ns+878ps,1.146=0.6ns+778ps,都符合抽头值对应的延时;
且在该模式下,这里将ce拉高后触发ld拉高,可以看到,ld在VARIABLE模式下拉高后,将会把抽头值重置为IDELAY_VALUE设置的值,这里设置的值为20;
VAR_LOAD模式使用:
VAR_LOAD模式使用LD、CNTVALUEIN端口控制抽头值,同时也可以使用INC和CE端口控制抽头值的递增递减变化;
在上一个模式的基础上,修改ld和cntvaluein的控制:
always @(posedge clk) begin
if (rst) begin
inc <= 0;
ce <= 0;
end
else if (load_trg==1) begin
inc <= 0;
ce <= 0;
end
else begin
inc <= 0;
ce <= 0;
end
end
always @(posedge clk) begin
if (rst) begin
ld <= 0;
cntvaluein <= 0;
end
else if (load_trg1) begin
ld <= 1;
cntvaluein <= cntvaluein + 1;
end
else begin
ld <= 0;
end
end
每个load_trg触发使用ld和cntvaluein加载一次抽头值,
可以看到在ld使能后的下一个clk时钟周期,cntvaluein就加载成功,cntvalueout输出的抽头值就变为了cntvaluein的值;
修改下inc和ce的逻辑,可以看到在VAR_LOAD模式下inc和ce能够工作;
当inc和ld两种控制逻辑同时使能时,修改控制代码如下:
always @(posedge clk) begin
if (rst) begin
inc <= 0;
ce <= 0;
end
else if (load_trg1) begin
inc <= 1;
ce <= 1;
end
else begin
inc <= 0;
ce <= 0;
end
end
always @(posedge clk) begin
if (rst) begin
ld <= 0;
cntvaluein <= 0;
end
else if (load_trg==1) begin
ld <= 1;
cntvaluein <= cntvaluein + 8;
end
else begin
ld <= 0;
end
end
从上图中可以看到,VAR_LOAD模式下,inc=1/ce=1和ld同时使能时,ld控制的cntvaluein端口值成功写入,inc/ce的递增操作未生效,说明在该模式下ld控制的优先级较高,但是在使用改模似时,尽量避免出现控制逻辑冲突的情况;
VAR_LOAD_PIPE模式使用:
VAR_LOAD_PIPE模式,使用LDPIPEEN将CNTVALUEIN端口值加载到流水线寄存器中,再使用LD端口将流水线寄存器中的抽头值加载到线上使用,同时也可以使用INC和CE端口控制抽头值的递增递减变化;
测试代码:
module top_7series_idelay(
input wire clk_ref_200m,
input wire clk_ref_300m,
input wire clk,
input wire rst,
input wire load_trg,
input wire idatain,
input wire datain,
output wire dout
);
wire idelayctrl_rdy;
wire [4:0] cntvalueout;
reg ce=0;
reg cinvctrl=0;
reg [4:0] cntvaluein=0;
reg inc=0;
reg ld=0;
reg ldpipeen=0;
reg regrst=0;
reg [3:0] ldpipeen_dly;
// idelayctrl -------------------------------------------------
IDELAYCTRL
IDELAYCTRL IDELAYCTRL_inst (
.RDY(idelayctrl_rdy), // 1-bit output: Ready output
.REFCLK(clk_ref_200m), // 1-bit input: Reference clock input
.RST(rst) // 1-bit input: Active high reset input
);
// idelaye2 -------------------------------------------------
always @(posedge clk) begin
if (rst) begin
inc <= 0;
ce <= 0;
end
else if (load_trg==1) begin
inc <= 0;
ce <= 0;
end
else begin
inc <= 0;
ce <= 0;
end
end
always @(posedge clk) begin
if (rst) begin
ldpipeen <= 0;
end
else if (load_trg==1) begin
ldpipeen <= 1;
end
else begin
ldpipeen <= 0;
end
end
always @(posedge clk) begin
if (rst) begin
cntvaluein <= 0;
end
else if (ldpipeen==1) begin
cntvaluein <= cntvaluein + 1;
end
end
always @(posedge clk) begin
if (rst) begin
ld <= 0;
end
else if (ldpipeen_dly[3]==1) begin
ld <= 1;
end
else begin
ld <= 0;
end
end
IDELAYE2 #(
.CINVCTRL_SEL(“FALSE”), // Enable dynamic clock inversion (FALSE, TRUE)
.DELAY_SRC(“IDATAIN”), // Delay input (IDATAIN, DATAIN)
.HIGH_PERFORMANCE_MODE(“FALSE”), // Reduced jitter (“TRUE”), Reduced power (“FALSE”)
.IDELAY_TYPE(“VAR_LOAD_PIPE”), // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
.IDELAY_VALUE(0), // Input delay tap setting (0-31)
.PIPE_SEL(“TRUE”), // Select pipelined mode, FALSE, TRUE
.REFCLK_FREQUENCY(200.0), // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
.SIGNAL_PATTERN(“DATA”) // DATA, CLOCK input signal
)
IDELAYE2_inst (
.CNTVALUEOUT(cntvalueout), // 5-bit output: Counter value output
.DATAOUT(dout), // 1-bit output: Delayed data output
.C(clk), // 1-bit input: Clock input
.CE(ce), // 1-bit input: Active high enable increment/decrement input
.CINVCTRL(cinvctrl), // 1-bit input: Dynamic clock inversion input
.CNTVALUEIN(cntvaluein), // 5-bit input: Counter value input
.DATAIN(datain), // 1-bit input: Internal delay data input
.IDATAIN(idatain), // 1-bit input: Data input from the I/O
.INC(inc), // 1-bit input: Increment / Decrement tap delay input
.LD(ld), // 1-bit input: Load IDELAY_VALUE input
.LDPIPEEN(ldpipeen), // 1-bit input: Enable PIPELINE register to load data input
.REGRST(regrst) // 1-bit input: Active-high reset tap-delay input
);
endmodule
从上图中可以看出,黄线处,ldpipeen拉高把cntvaluein端口值4存入流水线寄存器,然后过了几个周期,ld拉高后,cntvalueout才变为4,符合该模式的时序要求;
如果修改下逻辑,不要每次拉高ldpipeen都拉高一次ld,多使用ldpipeen加载几次数据到流水线寄存器,然后再拉高ld加载寄存器中的值,
效果如上图所示,ldpipeen端口拉高了几次去寄存,最后图中三次ld拉高,实际加载到线上的抽头值为3、7、11,都是在拉高ld前的最后一次ldpipeen拉高寄存的值,说明ldpipeen使能后加载到寄存器里的值会被新值覆盖,最后ld加载时以最新的值为准。
本文章由威三学社出品
对课程感兴趣可以私信联系
相关文章:
LVDS系列10:Xilinx 7系可编程输入延迟(三)
这节继续讲解IDELAYE2和IDELAYCTRL的VARIABLE模式、VAR_LOAD模式和VAR_LOAD_PIPE模式的仿真测试; VARIABLE模式使用: VARIABLE模式需要使用INC和CE端口控制抽头值的递增递减变化; 测试代码如下: module top_7series_idelay( i…...
QT:自定义ComboBox
实现效果: 实现combobox的下拉框区域与item区域分开做UI交互显示。 支持4种实现效果,如下 效果一: 效果二: 效果三: 效果四: 实现逻辑: ui由一个toolbutton和combobox上下组合成,重点在于combobox。 我设置了4种枚举,ButtonWithComboBox对应效果一;OnlyButt…...
Python爬虫学习路径与实战指南 02
一、进阶技巧与工具 1、处理复杂反爬机制 验证码破解(谨慎使用): 简单图像验证码:使用 pytesseract(OCR识别) PIL 处理图像。 复杂验证码:考虑付费API(如打码平台)。 …...
Crawl4AI,智能体网络自动采集利器
Crawl是一个强大的工具,它赋予AI智能体更高的效率和准确性执行网络爬取和数据提取任务。其开源特性、AI驱动的能力和多功能性,使其成为构建智能且数据驱动智能体的宝贵资产,告别繁琐: 爬虫新宠 crawl4ai,数行代码搞定数据采集,AI …...
C语言实现卡ID启用排序
任务: typedef struct {uint8_t bindflag; uint8_t userCardNumber; //当前用户卡的数据uint32_t userCardId[7];//当前6个用户的卡ID }USER_NFC;结构体中bindflag从高到低的的高七位bit表示数组userCardId中低到高卡ID的启用禁用状态,userC…...
html css js网页制作成品——HTML+CSS甜品店网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
漫反射实现+逐像素漫反射+逐像素漫反射实现
标准光照的构成结构 自发光:材质本身发出的光,模拟环境使用的光 漫反射光:光照在粗糙材质后,光的反射方向随机,还有一些光发生了折射,造成材质 表面没有明显的光斑。 高光反射光:光照到材质表面…...
nginx代理websocket时ws遇到仅支持域名访问的处理
最终改造点 proxy_set_header Host 这一行 未改之前遇到的问题: nginx 日志显示 https://aaa.bbbb.cn:7413 被解析成了 IP 地址,这通常是因为 DNS 解析的结果被缓存或某些中间层(如负载均衡器、防火墙等)将域名替换为 IP 地址。…...
具身智能:从理论突破到场景落地的全解析
一、具身智能:重新定义 “智能” 的物理边界 (一)概念本质与核心特征 具身智能(Embodied Intelligence)是人工智能与机器人学深度融合的前沿领域,其核心在于通过物理实体与环境的动态交互实现智能行为。区…...
用Postman验证IAM Token的实际操作
当我们需要用Postman发送一个最简单的请求去验证Token的时候我们该怎么办? 【一、步骤】 步骤1:打开Postman,新建一个GET请求 请求地址填: https://iam.cn-north-4.myhuaweicloud.com/v3/auth/projects 解释一下:…...
CH592/CH582 触摸按键应用开发实例讲解
一. 触摸原理介绍 1. 触摸按键电容产生原理 一般应用中,可用手指与触摸板的电容模型简化代替人体与触摸板的电容模型,如图所示。 沁恒微电子的电容触摸按键检测方案主要有以下两种: (1) 电流源充电方案。 低功耗蓝牙系列、通用系列 MCU 使…...
为什么选择有版权的答题pk小程序
选择有版权的答题PK小程序主要有以下原因: 一、避免法律风险 随着国家对知识产权保护力度的加大,使用无版权的答题PK小程序可能会引发侵权纠纷。一旦被原作者或版权方发现,使用者可能会面临法律诉讼,需要承担相应的法律责任&…...
Java生成微信小程序码及小程序短链接
使用wx-java-miniapp-spring-boot-starter 生成微信小程序码及小程序短链接 在pom.xml文件中引入依赖 <dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-miniapp-spring-boot-starter</artifactId><version>4.7…...
从普查到防控:ArcGIS洪水灾害全流程分析技术实战——十大专题覆盖风险区划/淹没制图/水文分析/洪水分析/淹没分析/项目交流,攻克防洪决策数据瓶颈!
🔍 防范未然的关键一步:洪水灾害普查是筑牢防洪安全防线的基础。通过全面普查,可以精准掌握洪水灾害的分布、频率和影响范围,为后续的防洪规划、资源调配和应急响应提供详实的数据支持。这有助于提前识别潜在的高风险区域…...
Ubuntu安装SRS流媒体服务
通过网盘分享的文件:srs 链接: https://pan.baidu.com/s/1tdnxxUWh8edcSnXrQD1uLQ?pwd0000 提取码: 0000 官网地址:Build | SRS 将百度网盘提供的srs 和 conf 下载或上传到指定服务器 # 安装需要的依赖包 sudo apt install -y cmake tclsh unzip gcc…...
设计模式(行为型)解释器模式
定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这意味着我们能够针对特定领域的问题,构建一套专属的语言体系,并通过解释器对使用该语言描述的问题进行解析和处…...
海外独立站VUE3加载优化
主要有几个明显问题 1. 请求数量太多(139 requests) 网页请求了*大量 JS 文件*(都是 index-xxxx.js),而且每个文件都比较小。 每次建立请求都有 TCP 连接开销(特别是 HTTP/1.1),导…...
关于windows API 的键鼠可控可测
相关函数解释 GetAsyncKeyState 是 Windows API 中的一个函数,用于判断某个虚拟键是否被按下。GetAsyncKeyState(VK_ESCAPE) 专门用于检测 Esc 键的状态。下面为你详细介绍其用法: 函数原型 cpp SHORT GetAsyncKeyState( int vKey ); 参数 vKey&a…...
普发ASM392EUV检漏仪维修说明手测内容可目录
普发ASM392EUV检漏仪维修说明手测内容可目录...
Python pip下载包及依赖到指定文件夹
要使用pip下载包及其所有依赖到指定文件夹,请按照以下步骤操作: 步骤说明 使用pip download命令:该命令用于下载包及其依赖而不安装。指定目标目录:通过-d或--dest参数设置下载路径。确保包含依赖:默认情况下会下载依…...
DIFY 又跟新了,来到 1.3.0 版本,看正文
欢迎来到 1.3.0 版本!添加了各种巧妙的功能、修复了错误,并带来了一些新功能: 一、核心亮点: 结构化输出 1、LLM 节点新增JSON Schema编辑器,确保大语言模型能够返回符合预设格式的JSON数据。这一功能有助于提升数据…...
凸包问题 Graham 扫描算法 MATLAB
算法要解决的问题 Graham 扫描算法要解决的问题是在给定一组二维平面上的点集时,找出能够完全包含这些点的最小凸多边形,这个最小凸多边形就是这些点的凸包。在很多实际场景中,我们可能只关注一个点集的最外层边界,而凸包算法就可…...
es+kibana---集群部署
其实一般es要跑3个节点的,这样才能做高可用,处理并发大,但是我这里只是一个pod mkdir -p /stroe/data/es es搭建: #【拉取镜像】 #docker pull elasticsearch:6.8.7 #docker pull busybox:1.28 【导入镜像】 docker load -i es.…...
定时器的源码介绍与简单实现——多线程编程简单案例[多线程编程篇(5)]
目录 前言 什么是定时器 JAVA标准库中的定时器 而关于sched方法,请看源码: 为什么我们能知道"notify() 唤醒后台线程 TimerThread"? TimerThread 关键逻辑 第一步:加锁 queue,看有没有任务 第二步:取出最近要执行的任务 …...
SQL常用数据清洗语句
数据清洗:发现并纠正数据文件里的数据错误和不一致性,让数据达到分析要求的过程。 运用 SQL 进行数据清洗时,可借助多种语句和函数来处理数据中的缺失值、重复值、异常值以及格式错误等问题。 1. 处理缺失值 数据中某些变量的值为空的情况&…...
《Go 语言高并发爬虫开发:淘宝商品 API 实时采集与 ETL 数据处理管道》
在电商数据处理领域,高效获取并处理海量商品数据是企业实现精准运营、市场分析的重要基础。Go 语言凭借其出色的并发性能,成为开发高并发爬虫的理想选择。本文将介绍如何使用 Go 语言进行淘宝商品 API 实时采集,并构建 ETL(Extrac…...
大模型(LLMs)加速篇
当前优化模型最主要技术手段有哪些? 算法层面:蒸馏、量化软件层面:计算图优化、模型编译硬件层面:FP8(NVIDIA H系列GPU开始支持FP8,兼有fp16的稳定性和int8的速度) 推理加速框架有哪一些&#…...
Linux0.11引导启动程序:简略过程
引言 目标:是重写boot文件夹下面的引导文件,加入一些个人信息。语法:由于使用两个语法风格的汇编需要两个汇编器,有些麻烦,直接全都用GNU的 as(gas)进行编译。使用AT&T 语法的汇编语言程序。接下来先拜读同济大学赵…...
【JAVAFX】controller中反射调用@FXML的点击事件失败
场景 当前有一个controller中定义的事件如 FXMLvoid openZhengjieWindow(ActionEvent event) {System.out.println("zhengjie");}通过反射去调用 public void callMethodByString(String methodSuffix) {try {Method method this.getClass().getMethod("open&…...
人工智能数学基础(二):初等数学
在人工智能领域,初等数学知识是构建复杂模型的基石。本文将从函数、数列、排列组合与二项式定理、集合等方面进行讲解,并结合 Python 编程实现相关案例,帮助大家更好地理解和应用这些数学知识。资源绑定附上完整代码供读者参考学习࿰…...
opendds的配置
配置的使用 文档中说明有4种使用配置的方式: 环境变量 命令行参数(将覆盖环境变量中的配置) 配置文件(不会覆盖环境变量或命令行参数中的配置) 用户调用的 API(将覆盖现有配置) 这里对开发…...
mac 基于Docker安装minio
在 macOS 上基于 Docker 安装 MinIO 是一个高效且灵活的方案,尤其适合本地开发或测试环境。以下是详细的安装与配置步骤,结合了最佳实践和常见问题的解决方案: 一、安装 Docker Desktop 下载安装包 访问 Docker 官网,下载适用于 …...
Docker网络架构深度解析与技术实践
目录 第一章 Docker网络架构核心原理 1.1 容器网络模型(CNM)体系 1.2 网络命名空间隔离机制 1.3 虚拟网络设备对(veth) 1.4 网桥驱动模型 第二章 Docker网络模式深度剖析 2.1 Bridge模式(默认模式) …...
如何通过Google Chrome增强网页内容的安全性
在现代互联网环境中,网页安全问题时常困扰着用户。谷歌浏览器作为全球使用最广泛的浏览器之一,提供了多种方式帮助用户增强网页的安全性。以下是一些简单有效的方法,可以帮助用户提高浏览器的安全防护能力。 首先,谷歌浏览器自带了…...
劳动节ppt免费下载,劳动节ppt模板,劳动节课件
劳动节ppt免费下载,劳动节ppt模板,劳动节素材,学生,幼儿园课件:劳动节ppt_模板素材_PPT模板_ppt素材_免抠图片_AiPPTer...
应用在通信网络设备的爱普生晶振SG2016CBN
在数字化浪潮席卷全球的当下,通信网络已成为信息时代的核心基础设施,从 5G 基站的快速部署到数据中心的高效运转,从光纤网络的稳定传输到无线通信的流畅连接,每一个环节都对时钟信号的稳定性和精准性有着极高要求。一个高质量的时…...
STM32 RTC配置
一、什么是RTC? RTC,即实时时钟,是一种能持续运行并保持当前时间信息的电子装置。它常用于在设备断电的情况下依然能保持准确的年、月、日、时、分、秒信息。 与CPU核心时钟不同,RTC通常采用独立的低频晶振(如32.768…...
图像保边滤波之BEEPS滤波算法
目录 1 简介 2 算法原理 3 代码实现 4 演示Demo 4.1 开发环境 4.2 功能介绍 4.3 下载地址 参考 1 简介 BEEPS(Bias Elimination in Edge-Preserving Smoothing) 是一种基于偏微分方程(PDE)的边缘保留平滑滤波算法。它能够…...
使用OpenCV和dlib库进行人脸关键点定位
文章目录 引言一、环境准备二、代码实现解析1. 导入必要的库2. 加载图像和人脸检测器3. 加载关键点预测模型4. 检测并绘制关键点5. 显示结果 三、68个关键点的含义四、常见问题解决五、总结 引言 人脸关键点定位是计算机视觉中的一项基础任务,它在人脸识别、表情分…...
Transformer数学推导——Q27 证明时序注意力(Temporal Attention)在视频模型中的帧间依赖建模
该问题归类到Transformer架构问题集——注意力机制——跨模态与多模态。请参考LLM数学推导——Transformer架构问题集。 在视频理解任务中,捕捉帧与帧之间的时间依赖关系(如动作的连贯性、物体的运动轨迹)是核心挑战。时序注意力(…...
相机-IMU联合标定:相机标定
文章目录 📚简介💡标定方法🚀标定工具kalibr🚀标定数据录制🚀相机标定📚简介 在 VINS(Visual-Inertial Navigation System,视觉惯性导航系统) 中,相机标定 是确保视觉数据准确性和系统鲁棒性的关键步骤,其核心作用可总结为以下方面: 消除镜头畸变,提升特征…...
sevlet API
sevlet API API就是一组类和方法 HttpServlet 这是写servlet代码用到的核心的类,通过继承这个类,并重写其中的方法,让Tomcat去调用这里的逻辑. init:webapp被加载的时候,执行 destroy:webapp被销毁的时候(Tomcat结束)执行,进行一些收尾工作.但是这个方法不保证能够调用到!!…...
python程序设习题答案
第一章 1.在下列领域中,使用 Python 不可能实现的是( C ) A . Web 应用开发 B .科学计算 C .操作系统管理 D .游戏开发 2.Python程序文件的扩展名是( D )。 A.python B.pyt C.pt D.py 3&…...
[计算机科学#4]:二进制如何塑造数字世界(0和1的力量)
【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要: 二进制是计算机世界的基石,数学是世界的…...
一种在使用Kaggle并遇上会话中断时强行保存数据的方法
问题:kaggle会话结束后,无法保存训练模型时记录的excel文件 解决方法:使用kaggle时,使用下面脚本可将保存到训练数据excel转为链接形式,从而在kaggle会话终止时也可以下载到该excel文件 import base64 import pandas …...
【人工智能agent】--dify搭建智能体和工作流
【人工智能agent】--docker本地部署dify教程-CSDN博客 上期讲到如何部署dify,然后进入页面: docker服务: 目录 1.基础设置 2.创建聊天助手 3.创建知识库应用 4.创建智能体 5.创建工作流 5.1.文档总结规划 5.2.爬取网页新闻 1.基础设…...
[4282]PHP跨境电商源码-多语言商城源码/支持代理+商家入驻+分销+等等众多功能/带详细安装
源码获取:[4282]PHP跨境电商源码-多语言商城源码/支持代理商家入驻分销等等众多功能/带详细安装云溪资源网_源码下载,小程序源码下载,网站源码下载,游戏源码下载云溪资源网_源码下载,小程序源码下载,网站源码下载,游戏源码下载...
MongoDB的增删改查操作
1.文档创建 首先要插入数据前,要先创建数据库,创建完之后建立集合,然后才能进行增删改查的步骤 切换(新建)数据库: use <db> db是指要创建数据库的名称 新建集合: db.createCollection(…...
TimDbg
晚上随意浏览,发现一个有趣的网站: TimDbg 调试器谎言:堆栈损坏 // TimDbg 2022.11的一篇很有趣,讲如何培养裸眼反汇编的能力,即培训心智模型,模式识别能力。 识别内存中的模式 // TimDbg 我是用edge浏…...
MySQL 表的约束(二)
文章目录 自增长唯一键外键 自增长 auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。 create …...