不是什么时候都应该模块复用的

Cadence SPB 17.4 实战:手把手教你搞定原理图模块复用,效率翻倍不是梦 本文详细介绍了Cadence SPB 17.4中原理图模块复用的实战技巧,帮助电子设计工程师大幅提升工作效率。从基础概念到高级应用,涵盖原理图创建、PCB模块化设计及团队协作中的版本控制,特别适合处理重复性高的设计任务如ADC通道、DSP单元等。 阅读详情

我们经常认为,应该不要重复发明轮子。所以尽量把代码写的模块化,以便于将来复用。但是,现实生活中,我们还是大量的重复开发着。这是为什么呢?

 

1. 有时候学习成本大于开发成本。比如我需要一个功能,我发现如果我开发一个给我自己用的模块,需要2天,但是学习一个模块,可能需要1天,然后考虑到将来调BUG的不便,可能大于开发成本。最后我决定自己开发。

 

2. 有时候发现性能不行。模块的设计大概为了适应各种需求,做了很多的配置项,结果性能下降了,或者需要深入理解才能知道如何配置出好的性能。于是,要么性能不好,要么花大量的时间弄明白所有的配置,有这个时间,不如自己开发一个只满足我的需求的针对性的模块。

 

3. 有时候模块的小小缺陷让人发狂。模块当初的设计没有考虑到我的项目的需求,就差一两个功能不能实现,于是我的项目很难用模块直接实现,如果我想要继续用这个模块,就得写很多很莫名其妙的代码。比如用APS.NET的GridView的时候,想弄一个什么特别的效果,不知道怎么用GridView实现,翻阅了大量MSDN文档,再花了不少时间去Google以后,没找到解决方案,只好从头做起,放弃GridView,或者终于找到一个所谓的解决方案,写下很多莫名其妙的代码. (题外话,人生最痛苦的事情莫过于,你终于把GridView的各种配置搞得一清二楚,还学会了各种特殊的办法来做特殊的效果,但是新版的GridView做了大量的改动,以前的各种经验都不管用了)

 

或许还有别的原因,这三个应该是最主要的。

 

怎么办呢,我们应该只考虑复用那些经过长时间的使用,且很稳定的模块。绝不轻易改用别的模块。

图文并茂——频分复用、时分复用、码分复用、复用和多址的区别 复用和多址的区别 复用和多址的区别,就是复用针对资源,而多址针对用户 复用(Multiplexing)这个词通常用在传输上,将一个物理信道根据时间、频率、空间等资源划分为多个虚拟信道。这么做的好处有二:一是减少管道的个数,为运营商减少线路成本;二是提升单通道的容量。从作用上看都是针对传输而言的,与具体用户无关。 多址则应用在接入中我们知道在同一个基站下,不同的用户利用相同的资源(同一时间,同一频率)发出通信请求肯定会发生冲突。而多址技术正是用来解决这个问题:如何划分资源块,使更多的用户终端(如手机)能够在不 阅读详情

相关推荐

AltiumDesigner相同模块复用操作

AltiumDesigner相同模块复用操作框选已布局好的A电路,作为复用模块创建Room同样的操作,框选C电路,然后也创建Room查看A电路的Chanel Offset显示设置复制Channel Offset查看B电路的Channel Offset复制A电路的Channel Offset到C电路Room格式的复制 框选已布局好的A电路,作为复用模块 创建Room 同样的操作,框选C电路,然后也创建Room 查看A电路的Chanel Offset 框选A模块的,然后点右下角的菜单——PCB——PCB

weixin_41947101的博客 5963

Gatsby主题不是皮肤,而是可复用的模块化项目骨架

Gatsby主题(Theme)是一种编译时注入的模块化应用架构,不同于传统CMS中的样式层‘主题’,它封装了数据源、GraphQL Schema、页面路由与构建插件,构成完整的子项目生命周期。其核心价值在于提升工程复用性与团队协作效率,支撑博客、文档站等多形态内容站点的快速搭建与可持续演进。典型应用场景包括技术博客初始化、MDX驱动的文档中心建设、以及基于shadowing机制的渐进式定制。理解theme与starter、plugin、gatsby-config契约关系,是掌握Gatsby现代前端架构的关键

weixin_34200628的博客 495

pads layout模块复用-两个不同功能的复用模块功能

pads layout 模块复用有两个导入复用模块的选项:   模式一:设计工具栏下的建立相似复用模块:可以完全代替现有的元器件布局(只能代替已有的元器件布局,不能代替网络),因此在使用时先选中需要被重新布局的元器件,然后导入复用模块代替,与原理图保持一致;该模式不能导入已布线的网络——该模式的功能就是布局!就是给已有的、未布线的元器件加了一个布局!   该视频讲的是模式一:   https:/...

qq_37624854的博客 2597

Allegro 16.6 布局时,模块如何进行复用

模块复用:在原理图中有多个模块相似时,在PCB里面把这些模块处理为相同的布局,就可以使用模块复用功能。上图演示: 最后器件对应完成,单击OK,模块就复用成功。.

weixin_46127914的博客 1982

从编译到启动:RV1106嵌入式Linux系统构建的效率优化与深度实践

本文深入探讨RV1106嵌入式Linux系统构建的全流程优化策略,重点提升编译速度和驱动加载效率。通过并行编译配置、内核裁剪、驱动加载优化和硬件辅助加速等实践方法,显著缩短系统构建和启动时间,为嵌入式开发提供实用指导。

ttt77的博客 1032

f_fs.c 初始化流程(进行中)

前言 之所以选择f_fs.c作为这系列的开始,因为usb在/driver/usb下面的内容实在太多太多,如果讲各种各样点会太分散了。所以决定切入点以实际使用为主,就是f_fs了,目前我了解这是做bulk裸传输使用的,具体的通信协议自己确定。 初始化部分 开始点从这个路径下说起, /drivers/usb/gadget/function/f_fs.c 然后f_fs.c第一个使用的是include/composite.h中的宏定义function #define DECLARE_USB_FUNCTION(_n

weixin_36406973的博客 1967

模块级别的复用——继承和委托

文章目录模块级别的复用——继承和委托前言为什么要复用?两种模块复用的方式Inheritance(继承)Delegation(委托)委托的三种类型其他层次的复用库级别的复用(Library/API)系统级别的复用(Framework) 模块级别的复用——继承和委托 前言 复习软件构造看到这里,PPT中对于类之间的关系中的association和composition的描述一摸一样,因此产生了疑问,查阅了相关的资料之后,弄明白了二者的区别,遂作此总结。 为什么要复用? 复用具有成本有效性和及时性。 可以

wllmkng的博客 1216

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

7、软件复用 - 软件技术系列文章

软件复用主要是为了解决在实际的软件开发过程中重复的工作,在其它软件功能相同或相近的时候,直接将代码放过去然后进行下修改即可。这个也是参考的软件定制,比如购买一个软件产品,然后还需要定制开发。软件复用的作用是减轻软件工程师的工作量,而且能够避免软件模块的复用的安全性和稳定性等问题。下面对软件复用的几个方式进行下描述。   1. 代码段复用   最基本的软件复用就是代码段复用...

lzhdim的专栏 1075

车载以太网测试-1【TC8物理层测试基础】

车载以太网物理层是车载网络的基础,负责将数字数据转换为适合在物理介质上传输的信号,并确保数据传输的可靠性、稳定性和高效性。它在车载网络系统中扮演着至关重要的角色,直接影响着车辆内部通信的性能和效率。1. 主要物理层标准车载以太网标准由IEEE 802.3和标准名称速率线缆类型编码方式应用场景100BASE-T1100 Mbps单对非屏蔽双绞线车载摄像头、传感器1 Gbps单对屏蔽/非屏蔽双绞线自动驾驶域控制器、高清视频10BASE-T1S10 Mbps单对双绞线幅移键控(ASK)

车载网络测试工程师的博客 4392

Python爬虫实战:爬取500+网易云热门歌单,我摸清了全网最火的音乐规律

曲风:流行是主流,“情绪价值”比单纯曲风更重要;歌名:感性、场景化的歌名,更受用户偏爱。这次实战让我明白,Python不是冰冷的代码,而是能帮我们看清生活中隐藏规律的工具。从每天刷的歌单里,用爬虫和数据分析挖出用户的真实偏好,不仅满足了好奇心,还实实在在练会了技能。新手朋友可以从这个项目入手,既练习了爬虫基础,又学会了数据分析的核心逻辑,还能结合自己的音乐兴趣理解数据的意义。现在打开PyCharm,跟着代码跑一遍,你也能从网易云的热门歌单里,挖出属于自己的“音乐规律”!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1889

什么是封装、模块化、可复用

一、最有效高效、却最不被看得起的 抄袭、说好听-保留一份随时用。 7万元的私活30天搞定 Ajax拦截器的实现 人家的思维: Ajax拦截器的实现。 个人觉得编程和下棋类似,卡位非常重要。一开始占据着有利的位置,当你在面对变化的时候就会非常灵活。编程中的卡位就是将一些关键的地方预留好,方便以后扩展。比如前端开发中的全局的事件代理,核心组件的基类设计,ajax拦截器等。 最近在做一个ajax加密的需求,就是所有ajax请求的参数都需要经过加密,防止他人盗用api。如果有ajax拦截器,这个需求实现会非常简单,

yilegel写一写 564

番外篇第3集:多模态运维!让 AI 看懂 Grafana 图表并自动生成巡检报告

文章摘要 《多模态运维:让AI看懂Grafana图表并自动生成巡检报告》介绍了如何利用Qwen2.5-VL多模态模型解决传统运维巡检的痛点。文章指出人工查看Grafana监控图表存在效率低、易漏判、报告编写耗时等问题,提出通过Grafana Render API和多模态AI技术实现自动化巡检方案。 主要内容包括: 环境准备:配置Qwen2.5-VL多模态模型和Grafana访问权限 测试验证:展示模型准确识别图表类型、指标数值和异常趋势的能力 技术实现:封装Grafana截图API客户端,支持面板截图和数据

qq_2937655951的博客 109

第14篇 - 关于模块复用的思考

第14篇 - 关于模块复用的思考 前面为了解决程序的版本混乱和无法识别的情况,我们使用了在程序中增加日期和版本的方式,同时采用git版本管理软件解决了这个问题。可以清晰的知道客户使用的哪个版本的程序,同时这个版本的代码做了哪些改进。 现在又遇到另外一个问题,同一个功能可能在不同的工程项目中调用。然后随着项目的不断更新和升级,对应的模块的程序又会发生改变。如何将这些更新的部分引用到另外一个程序中。不能

zhjmyx的专栏 2074

23种设计模式-代理(Proxy)设计模式

软考中级-软件设计师 代理设计模式

片言可决讼,半纸能缚龙 1784

AUTOSAR进阶图解==>AUTOSAR_SWS_DefaultErrorTracer

AUTOSAR Default Error Tracer (DET)是AUTOSAR架构中的核心错误追踪模块,提供统一的错误报告机制。DET能够处理开发错误、运行时错误和瞬态故障三类问题,支持模块级和实例级的配置管理。模块架构上,DET通过Det_API接口与其他模块交互,可配置转发错误至诊断事件管理器(DEM)或调试日志追踪(DLT)。其配置结构包含全局参数和模块实例参数,允许灵活控制错误报告行为。DET在AUTOSAR 4.3.0版本中从DevelopmentErrorTracer扩展而来,增强了错误处

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 910

模块复用不是简单的复制粘贴

坦白说,目前的设计工具和方法论在从零开始开发百万门级ASIC时显得力不从心。有一个现实问题:虽然设计复杂度不断攀升,但公司希望设计团队规模和开发周期保持不变。工具提供的生产力提升远远赶不上工艺带来的门电路增长速度。对很多设计团队来说,压力山大。这就是为什么——使用预先设计和验证过的核——成为了弥合可用门电路数量与设计师生产力之间差距的最有希望的方法。

ilearn的博客 391

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Redis:IO多路复用模型

探索Redis的IO多路复用

独钓寒江雪 1668

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度学习工具包 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")

PADS 如何进行模块复用

(1)选中要复用的器件、导线、铜箔等。然后鼠标右键选择→建立复用模块。(2)点击建立复用模块后,跳出建立复用模块对话框。刚才保存的复用模块已经添加到当前的项目中。(3)在调入的过程中出现警告可以忽略。(1)在ECO工具栏下,点击添加复用模块。这时复用的模块附着在鼠标上,点击放置。(3)保存复用模块在文件夹下即完成。2、在当前项目中 添加复用模块。(2)选择刚才保存的复用模块。

bhxc809751502的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

elabRadio学习笔记6---复用解复用模块

在elabradio中的复用解复用模块,仅仅指通信领域的复用和解复用。这里学计算机的同学可以跳过。在通信领域,复用(Multiplexing)和解复用(Demultiplexing)是常用的技术,用于实现多个信号或数据流在同一通信链路上的传输和分离。复用是将多个信号或数据流合并为一个复合信号,以实现并行传输。而解复用则是将复合信号分离为多个独立的信号或数据流,以恢复原始信息。这样可以实现多个用户或应用分享同一个通信链路,提高传输效率和资源利用率。

m0_74970329的博客 1989

在Altium Designer软件中实现模块复用——详细操作指南

本文详细介绍了在AltiumDesigner中实现模块复用的完整操作流程。通过创建Room区域界定复用范围,利用PCBList面板设置通道号参数,最后复制Room格式完成布局布线复用。文章以DCDC电路为例,针对原理图位号规范与否提供了两种通道号设置方法,并强调了保持通道号一致性的重要性。该技巧能显著减少重复劳动,确保设计一致性,特别适用于PCB中结构相似功能模块的快速设计。文末还针对常见问题提供了解决方案,为PCB设计者提供了实用参考。

2302_81671779的博客 9658

【Cadence30】Allegro相同模块的复用功能

最近做了一个关于滤波的项目,里面6路重复的模块,在老员工的提示下,想到可以使用功能模块复用,直接打开了新世界,太有效率了!所以分享一下,同时防止自己遗忘~

Funny_beast的博客 2978

Cadence Allegro 模块的复用

一张PCB图纸,有时候会重复使用一个器件,如下图所示: 他们的原理图布局一致,那么他们的PCB布局也就一样,我们就可以通过模块的复用来提高我们的效率。 Allegro中如何利用模块复用的功能呢? 创建模块标准 1.先布局好一个模块,当做标准。 然后点击Setup --- Application Mode --- Placement Edit. 2.选中要创建模块的那些器...

文鸿开源工作室 1万+

Cadence SPB原理图复用和模块设计复用

Cadence SPB原理图复用和模块设计复用本人正在按照这个方法进行尝试,后续会写出带图的详细设计。show下本人的复用电路: ![在这里插入图片描述](https://img-blog.csdnimg.cn/4e6503893dc64d5b8304d567ad84b1b9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a6B6Z2Z6Ie06L-cMjAyMQ==,size_18,color_F

宁静致远的博客 1万+

Allegro模块布局和布局复用

Allegro模块布局和布局复用Allegro软件中对相同的模块进行模块复用Allegro 模块布局和布局复用 原文链接:https://blog.youkuaiyun.com/weixin_43044164/article/details/106668577 Allegro软件中对相同的模块进行模块复用 我们在使用Allegro软件进行布局布线的操作的时,会遇到很多一模一样的模块,比如电源模块、存储器模块等等。这里我们讲解一下,在PCB中怎么对一个相同的模块进行复用,具体操作如下: 第一步,将已经布局布线的模块,创建

宁静致远的博客 1万+
上一篇: C# 中获得屏幕的大小,分辨率
decision
博客等级 码龄21年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值