Virtuoso ADE Explorer实战技巧:从基础操作到高级仿真

virtuoso学习笔记(ADE Explorer) 直接用空格分隔参数即可,也可以用冒号表示 start:step:stop。可以点击create datasheet 生成整个XML的仿真报告。蒙卡分为失配的随机误差mismatch和工艺偏差process。打开这个网表可以直接看到里面的各个器件,并CTRL+f直接搜。工艺偏差process:器件随corner变化的误差。随机误差可以在tt,ss,ff三个工艺角下进行仿真。随机误差mismatch:同类型器件的失配。Detail可以看各个点的参数。仿真中查看参数,右键,plot。点开后右键可以直接高亮器件。 阅读详情

1. 从Maestro到Explorer:为什么你需要换个工具

如果你刚开始接触Cadence的仿真环境,大概率会先遇到那个叫ADE L或者ADE Assembler(以前也叫Maestro)的界面。我刚开始用的时候也觉得它挺全能的,建个仿真、设个变量、跑个DC/AC,好像都能搞定。但用久了,尤其是项目稍微复杂点,需要做大量工艺角(Corner)分析、参数扫描或者蒙特卡洛(Monte Carlo)的时候,就发现有点力不从心了。界面切换繁琐,批量任务管理起来也麻烦,仿真结果分散在各个窗口里,对比起来眼睛都看花。

这时候,Virtuoso ADE Explorer就该登场了。你可以把它理解为专门为高效、系统化仿真验证而生的“专业版”工具。它并不是要完全取代Assembler,而是接管了那些最耗时、最需要自动化的工作。打个比方,Assembler像是一把功能齐全的瑞士军刀,而Explorer则像一套专门为“电路仿真分析”这个工种定制的电动工具套装,效率完全不在一个层级。

我印象最深的一次是做一个基准电压源(Bandgap)的设计,需要仿真它在-40°C到125°C温度范围内,在tt/ss/ff/sf/fs五个工艺角下,电源电压从2.7V到3.6V变化时的性能。如果用Assembler,我得手动设置至少5(温度点)x 5(工艺角)x N(电压点)= 几十个仿真点,一个个排队跑,跑完还得自己把数据从不同结果窗口里捞出来整理。但在Explorer里,我只需要把温度、工艺角、电源电压设为扫描变量,它就能自动生成一个多维度的仿真矩阵,然后并行提交到服务器上去跑。我就可以去喝杯咖啡,回来所有数据都已经整整齐齐地归类好了,直接用内置的图表工具做对比分析。这个体验的提升是颠覆性的。

所以,Explorer的核心价值在于设计空间的探索(Design Space Exploration)。它把工程师从重复、机械的仿真设置和结果收集工作中解放出来,让我们能更专注于分析数据、发现问题、优化设计。无论是做PVT(工艺、电压、温度)验证,还是做统计性的蒙特卡洛分析,或者寻找某个性能指标(比如增益、带宽)与晶体管尺寸之间的最优关系,Explorer都是目前Virtuoso平台里最趁手的工具,没有之一。

2. 新手起步:Explorer界面与基础操作拆解

第一次打开ADE Explorer,可能会觉得界面元素比Assembler多一些,有点懵。别担心,我们一步步来拆解,其实逻辑非常清晰。主窗口大致可以分为四个核心区域:仿真设置区、变量与参数扫描区、仿真任务管理区,以及最重要的结果分析与可视化区。

2.1 仿真设置与Assembler的丝滑切换

很多人的第一个疑问是:我在Explorer里,还需要原来的Assembler吗?答案是:需要,而且它们协同工作。Explorer本身并不直接定义仿真类型(如tran、dc、ac)和具体的测试激励,这些基础设置仍然在Assembler(或ADE L)里完成。Explorer的聪明之处在于,它能直接“继承”或者“调用”你在Assembler里已经配置好的仿真环境。

具体操作是这样的:

  1. 首先,在Virtuoso schematic或者layout界面,像往常一样,启动 ADE L 或 ADE Assembler。
  2. 在这个Assembler窗口里,完成所有基础的仿真设置:选择仿真器(spectre, hspice等),设置仿真类型(tran, dc, ac, noise等),添加激励源,设置输出要保存的信号(比如某个节点的电压、某个支路的电流)。
  3. 设置完毕后,不要点“Run”。而是找到菜单栏或工具栏上的一个关键按钮,通常叫做 “Launch ADE Explorer” 或者有一个类似火箭的图标。点击它。
  4. 此时,Explorer窗口会自动弹出,并且你会在它的
解决在高版本系统中IC617无法使用ADE XL Explorer 等进行多线程仿真Pending的问题 解决IC617 pending的问题 阅读详情

相关推荐

Cadence Virtuoso ADE Explorer实战:从基础仿真到PWL与工艺角批量处理

在模拟与混合信号IC设计领域,Cadence Virtuoso是业界主流的版图与电路仿真平台,而ADE Explorer作为新一代仿真控制台,正逐渐取代传统ADE L成为设计流程的核心入口。它不仅是界面的升级,更重新定义了多测试台并行管理、工艺角(PVT)批量仿真以及从单点到系统级仿真的平滑过渡。对于工程师而言,掌握ADE Explorer意味着能够高效完成参数扫描、结果对比与回归验证。同时,PWL波形文件导入是模拟激励建模的高频需求,合理设置采样率与文件格式可显著提升瞬态仿真效率。结合EMX电磁仿真协同,

weixin_33827590的博客 349

Virtuoso ADE Explorer模拟IC仿真实战:参数扫描与PVT分析全指南

在模拟集成电路设计流程中,电路仿真是验证设计性能达标的关键环节,而验证过程中频繁涉及的参数扫描、工艺角仿真与波形分析,直接决定了设计迭代的效率。Cadence Virtuoso环境下的ADE Explorer作为统一管理仿真配置与结果分析的核心平台,将模型库选择、变量管理、corner配置和批量仿真整合在同一界面,帮助工程师快速完成从testbench搭建到PVT验证的全流程。本文从界面基础操作讲起,涵盖变量扫描设置、多工艺角批量运行、Calculator表达式编写、波形对比技巧以及常见仿真收敛问题排查,内

weixin_27155667的博客 296

Virtuoso ADE Explorer实战:从参数扫描到蒙特卡罗仿真的5个高效技巧

本文深入探讨Virtuoso ADE Explorer在集成电路设计中的高效应用,重点介绍参数扫描和蒙特卡罗仿真的5个实战技巧。从智能参数设置到深度分析策略,再到实时监控和数据管理,帮助工程师提升仿真效率,应对工艺波动和器件失配问题。掌握这些技巧可大幅缩短仿真时间,提前发现潜在失效风险。

weixin_29269441的博客 322

Cadence Virtuoso仿真加速实战:从原理到APS/ADE工具链高效配置

本文深入探讨Cadence Virtuoso仿真加速的实战方法。从分析仿真瓶颈入手,详细对比了Spectre、APS及Spectre X仿真引擎的适用场景与选择策略,并重点解析了如何高效配置ADE Explorer与Assembler工具链以实现并行与分布式仿真,从而显著提升模拟IC设计效率。

weixin_29266647的博客 500

Virtuoso ADE L实战:从DC工作点到Noise仿真的完整流程

在模拟集成电路设计中,仿真是验证电路性能的核心手段。DC仿真作为所有仿真的基础,通过求解静态工作点揭示器件的电压电流分布,而Noise仿真则用于评估低噪声运放、LDO等场景的噪声性能。两者并非孤立,正确做法是从DC工作点出发,结合gmoverid等指标预判噪声水平,再通过Noise仿真和参数扫描进行全面验证。本文以Cadence Virtuoso ADE L为例,完整讲解从模型库配置、DC工作点分析到噪声积分和器件噪声贡献定位的实践流程,并总结常见仿真报错的排查方法,帮助工程师建立高效的仿真工作流。

weixin_33871366的博客 326

ADE Explorer实战指南:从Spectre仿真配置到Monte Carlo与收敛排查

模拟电路设计过程中,仿真的效率与收敛性直接决定项目进度。传统单测试台工具在面临多工艺角、多状态对比时往往需要频繁手工配置,而Spectre仿真器作为业界主流引擎,其收敛问题与模型配置错误更是困扰工程师的高频痛点。从基础的环境检查到高级的统计仿真,工程师需要一套系统化的方法论来提升仿真可信度。Cadence Virtuoso ADE Explorer作为介于传统ADE L与Assembler之间的探索型工具,以多测试台并行、参数扫描、Corner与Monte Carlo集成管理为核心优势,配合对波形分析与错误

weixin_34080951的博客 379

Calibre与Virtuoso ADE联调实战:PEX后仿真的坑与最佳实践

在模拟IC设计流程中,寄生参数提取是连接版图与仿真验证的关键桥梁。版图上的互连电阻、耦合电容等寄生效应,会直接影响电路的带宽、相位裕度和线性度,若忽略这些影响,流片后的性能可能远低于前仿真预期。PEX(寄生提取)技术通过规则文件将几何信息转换为电学参数,并与Virtuoso ADE仿真环境联调,实现对信号完整性和时序的精确校核。这项技术在高速ADC、PLL、SerDes等对寄生敏感的设计中尤为重要,可帮助工程师在版图阶段及时发现性能瓶颈,避免反复改版带来的成本浪费。本文结合SAR ADC项目的真实经历,从环

weixin_34378969的博客 523

基于Cadence Virtuoso的Buffer电路设计与仿真完整教程

模拟电路设计中,Buffer(电压跟随器)是最基础的单元电路之一,它凭借高输入阻抗、低输出阻抗的特性,实现信号隔离与驱动增强,广泛应用于传感器前端、ADC驱动和时钟分配等场景。理解其工作原理是掌握模拟电路仿真流程的关键一步。Cadence Virtuoso作为业界主流的模拟/混合信号设计平台,提供了从原理图编辑、电路仿真到波形分析的完整闭环工具链。本文从Buffer的电路结构出发,详细讲解如何在Virtuoso环境中完成从库建立、器件调用、连线设置到瞬态仿真、DC扫描及AC分析的完整实操过程,并针对常见错误

weixin_33769125的博客 1648

避坑指南:Virtuoso ADE仿真中model.lib路径错误的5种修复姿势

本文详细解析了Virtuoso ADE仿真中model.lib路径错误的5种修复方法,包括环境变量配置冲突、权限与文件系统问题、符号链接断裂等常见问题。通过系统排查和解决方案,帮助工程师快速定位并修复路径错误,确保芯片设计仿真的稳定性与效率。

weixin_29237635的博客 295

Cadence Virtuoso仿真避坑指南:解决ADE L仿真中的5个常见错误

本文详细解析了Cadence Virtuoso在ADE L仿真过程中常见的5个错误及其解决方案,包括工艺库加载失败、收敛性问题、网表生成错误、许可证冲突和结果解析异常。通过实战案例和技巧分享,帮助工程师快速定位和解决仿真问题,提升工作效率。

weixin_30632089的博客 165

Cadence Virtuoso实战:从Bandgap电路仿真到版图DRC/LVS验证的完整避坑指南

本文详细介绍了使用Cadence Virtuoso进行Bandgap电路从仿真到版图DRC/LVS验证的全流程实战指南。涵盖仿真环境搭建、电路调试、版图匹配技巧及验证故障排除等关键环节,提供23个典型问题的解决方案,助力模拟集成电路设计工程师高效避坑,提升设计成功率。

weixin_30564785的博客 764

EDA公司(一):Synopsys-- 主要 EDA 工具及其简介

Synopsys 是一家领先的电子设计自动化(EDA)软件公司,提供了一系列全面的产品和服务,旨在支持从概念设计到大规模生产的各个阶段。Synopsys 的 EDA 工具覆盖了芯片设计的各个方面,包括但不限于逻辑综合、静态时序分析、功能验证、物理实现、形式验证、测试插入、电源分析、信号完整性分析等。

MHD0815的博客 3295

INCA文件刷写全流程:从ES581驱动安装到XCP协议实战(附避坑指南)

本文详细解析INCA文件刷写的全流程操作,从ES581驱动安装到XCP协议配置,提供实战经验与避坑指南。涵盖A2L文件校验、工作区优化、XCP参数调优及自动化刷写技巧,帮助工程师高效完成ECU开发中的文件刷写任务。

egg99的博客 934

Ubuntu22.04上如何用Docker一键部署Ragflow+Ollama(附CUDA配置避坑指南)

本文详细介绍了在Ubuntu22.04系统上使用Docker一键部署Ragflow+Ollama的完整流程,特别提供了CUDA配置的避坑指南。从硬件兼容性检查、驱动安装到容器网络配置,手把手教你搭建本地化大模型环境,解决CUDA驱动冲突等常见问题,助力开发者快速构建AI应用开发平台。

weixin_26875109的博客 282

CH340以及CH系列USB转串口驱动下载

在之前使用USB转串口时,很多时候大家可能会不知道去哪下载驱动,然后百度随便下载一个,但往往鱼龙混杂且版本不一,所以今天特意整理一下CH340驱动以及CH系列的官方驱动下载地址,方便大家进行下载也方便自己后期查找,所有链接皆指向官方下载链接,每次下载都可获取官方当前最新驱动。 CH340/CH341 Windows驱动下载链接:CH341SER.EXE下载链接 Linux驱动下载链接:CH341SER_LINUX.ZIP下载链接 Andr...

OIDCAT的博客 4万+

MT25QL256完整操作指南:从ID读取到4KB扇区擦除(附华大SPI例程)

本文提供了MT25QL256 NOR FLASH在华大MCU上的完整驱动开发指南。内容涵盖从SPI初始化、器件ID读取、状态寄存器查询,到核心的页编程和4KB扇区擦除操作,并分享了构建健壮驱动框架、处理跨页写入及常见调试问题的实战经验。

tt34567的博客 879

UNet改进(12):融合小波变换与注意力机制的图像分割新方法

本文提出了一种改进的WaveletAttentionUNet架构,通过结合小波变换和注意力机制来增强传统UNet的多尺度特征提取能力。该网络使用分组卷积模拟小波分解,将输入通道扩展为4个子带(LL、LH、HL、HH),并通过通道注意力机制自适应加权各子带特征。网络保留了UNet的编码器-解码器结构,在关键位置集成了WaveletAttention模块。实验证明该方法在医学图像分割等任务中能更好地保持边缘细节和复杂纹理特征,同时保持计算效率。

2501_91516851的博客 749

由Sensor光谱响应曲线联想到的白平衡增益计算

由Sensor光谱响应曲线联想到的白平衡增益计算 由于传感器硬件的限制,传感器在某个预定波长范围内的响应不可能是100% 响应。现实中都是类似于正态分布的单峰函数。如果仅做粗略计算,由一个中心波长和半高宽(也成半波宽)完全可以由数学公式计算出一个高斯分布曲线。这个分布曲线就叫波谱响应函数。 波谱响应函数反映了传感器通道获取能量的情况。实际上每个传感器厂商都提供了具体的光谱响应函数,一般由两列数据组成,一列数据是波长,另一列数据是相对响应强度。下图某sensor光谱的响应的波谱响应函数。 ...

大熊 7477

《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中...

欢迎大家订阅《Autosar从入门到精通-实战篇》,下方整理了相关博文的目录(单击蓝色字体即可跳转),方便大家获取。 本专栏旨在:扫除Autosar工具链配置过程中的障碍,加深对Autosar理论的理解。 温馨提醒: 如有疑问,可在博文的“评论区”给小编留言,进行技术交流(评论区开启了验证功能,审核通过后,会显示); 如有疑问,也可以通过博文中的第一个图片联系小编,获取专栏/博文的实时状态; 由于工作限制,仅做个人技术交流。添加好友时,请备注您的“姓名-公司-职务...

「汽车电子助手」的博客 12万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: Python数据分析实战:用Pandas处理校园消费数据(附完整代码)
下一篇: HDMI管脚功能解析:从信号传输到设备交互
ios99
博客等级 码龄11年 276粉丝 1500原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值