编译原理上升的箭头
Ⅰ 原理图设计基础简介
原理图设计基础简介
《EDA技术》主要介绍EDA技术中最常用的两个工具软件——Protel 2004和Multisim 7。下面是我整理的关于原理图设计基础,欢迎大家参考!
一、 达成目标
l 熟练制作元件库(元件原理图库、元件封装库、元件集成库,包括元件在不同元件库、原理图、PCB板之间的复制)、原理图、PCB板
l 熟练使用各种快捷键
l 熟悉各种设置
二、 重点
l 原理图设计:
Ø 设置图纸
Ø 设置原理图优先设置
Ø 层次电路设计
Ø 元器件自动标注
Ø 编译原理图/项目
Ø 电气检查(电气检查规则、电气连接矩阵)
Ø 添加封装
Ø 检查封装
Ø 生成网表(网表文件)
l 元器件库设计:
Ø 创建元器件库
Ø 创建封装库
Ø 生成集成库
l PCB设计:
Ø 图纸设置
Ø 设置电路板外形尺寸
Ø 层叠管理
Ø 布线规则
Ø 电源划分
Ø 地划分
Ø 走线(等长线、差分线、曲线)
Ø 敷铜
三、 设计流程
l 原理图设计流程
设置图纸——》设置原理图优先设置——》设置电器检查规则(电气检查规则、电气连接矩阵)——》添加元器件——》元器件电气连接——》元器件自动标注——》编译原理图——》查看编译结果,修改错误——》添加元器件封装——》检查元器件封装——》生成网表文件
l 元器件库设计流程
创建元器件库——》编辑元器件——》创建封装库——》编辑元器件封装——》元器件库追加封装——》编译生成元器件集成库
l PCB设计流程
设置PCB设计环境——》PCB布局——》布线规则设置——》自动布线——》手动调整布线——》敷铜——》添加过孔以连接各层的敷铜——》保存
四、 常用快捷键
l 原理图和PCB通用快捷键:
Shift 当自动平移时,快速平移
Y 放置元件时,上下翻转
X 放置元件时,左右翻转
Shift+↑↓←→ 箭头方向以十个网格为增量,移动光标
↑↓←→ 箭头方向以一个网格为增量,移动光标
SpaceBar 放弃屏幕刷新
Esc 退出当前命令
End 屏幕刷新
Home 以光标为中心刷新屏幕
Ctrl+Home 将偏离图纸的元件自动调整到工作原点
PageDown,Ctrl+鼠标滚轮 以光标为中心缩小画面
PageUp,Ctrl+鼠标滚轮 以光标为中心防大画面
鼠标滚轮 上下移动画面
Shift+鼠标滚轮 左右移动画面
V+D 显示整个文档
V+F 显示所有对象
X+A 取消所有选中的对象
单击并按住鼠标右键 显示滑动小手并移动画面
点击鼠标左键 选择对象
点击鼠标右键 显示弹出菜单,或取消当前命令
右击鼠标并选择Find Similar 选择相同对象
点击鼠标左键并按住拖动 选择区域内部对象
点击并按住鼠标左键 选择光标所在的对象并移动
双击鼠标左键 编辑对象
Shift+点击鼠标左键 选择或取消选择
TAB 编辑正在放置对象的属性
Shift+C 清除当前过滤的对象
Shift+F 可选择与之相同的对象
Y 弹出快速查询菜单
F11 打开或关闭Inspector面板
F12 打开或关闭List面板
Ctrl+Shift+L 左对齐
Ctrl+Shift+R 右对齐
Ctrl+Shift+H 中对齐
Ctrl+T 顶部对齐
Ctrl+B 地步对齐
l 原理图快捷键:
Alt 在水平和垂直线上限制对象移动
G 循环切换捕捉网格设置
SpaceBar 放置对象时旋转90度
SpaceBar 放置电线、总线、多边形线时激活开始/结束模式
Shift+SpaceBar 放置电线、总线、多边形线时切换放置模式
BackSpace 放置电线、总线、多边形线时删除最后一个拐角
点击并按住鼠标左键+Delete 删除所选中线的拐角
点击并按住鼠标左键+Insert 在选中的线处增加拐角
Ctrl+点击并拖动鼠标左键 拖动选中的对象
l PCB快捷键:
Shift+R 切换三种布线模式
Shift+E 打开或关闭电气网格
Ctrl+G 弹出捕获网格对话框
G 弹出捕获网格菜单
N 移动元件时隐藏网状线
L 镜像元件到另一布局层(拖动元件时)
BackSpace 在布铜线时删除最后一个拐角
Shift+SpaceBar 在布铜线时切换拐角模式
SpaceBar 布铜线时改变开始/结束模式
Shift+S 切换打开/关闭单层显示模式
O+D+D+Enter 选择草图显示模式
O+D+F+Enter 选择正常显示模式
O+D 显示/隐藏Prefences对话框
L 显示Board Layers对话框
Ctrl+H 选择连接铜线
Ctrl+Shift+Left-Click 打断线
+ 切换到下一层(数字键盘)
- 切换到上一层(数字键盘)
* 下一布线层(数字键盘)
M+V 移动分割平面层顶点
Alt 避开障碍物和忽略障碍物之间切换
Ctrl 布线时临时不显示电气网格
Ctrl+M 测量距离
Shift+ SpaceBar 顺时针旋转移动的对象
SpaceBar 逆时针旋转移动的对象
Q 米制和英制之间的单位切
l 高频率使用的快捷键
TAB 选中元件后,可以显示该元件的属性
PAGEUP 以鼠标所在点为中心,放大视图
PAGEDOWN 以鼠标所在点为中心,缩小视图
HOME 居中,可以从原来光标下的图纸位置,移位到工作区中心位置显示
END 更新绘图区的图形
四个方向键 用于逐步往各个方向移动
F+U 打印设置
F+P 打开打印机
F+N 新建文件
F+O 打开文件
F+S 保存文件
F+V 打印预览
E+U 取消上一步操作
E+F 查找
E+S 选择
E+D 删除
E+G 对齐
E+G+L 左对齐
V+D 显示整个图形区域
V+F 显示所有元件
V+A 区域放大
V+E 放大选中的元件
V+P 以鼠标单击点为中心进行放大
V+O 缩小
V+5,1,2,4 放在50%,10%,200%,400%
V+N 将鼠标所在点移动到中心
V+R 更新视图
V+T 工具栏选择
V+W 工作区面板选择
V+G 网格选项
C 在视图区打开工程快捷菜单
P+B 放置总线
P+U 放置总线接口
P+P 放置元件
P+J 放置接点
P+O 放置电源
P+W 连线
P+N 放置网络编号
P+R 放置IO口
P+T 放置文字
P+D 绘图工具栏
D+B 浏览库
D+L 增加/删除库
D+M 制作库
T 打开工具菜单
R 打开报告菜单
W 打开窗口菜单
五、 其他
l 对象整体编辑
选元件——》查找相似对象——》编辑选项(如current footprint(same)选取了所有相同的封装,取消“运行检查器”选项)——》按住shift鼠标单击选中收索结果元件——》按住f11弹出inspector对话框,在current footprint选中封装修改之——》保存退出
l 制作元器件库时顺便加载封装
制作原理图元器件时顺便将pcb对应的库文件加载,保证引脚一一对应(pin maps),然后对元件进行规则检查
l 更改已存在的原理图元件库
以工程文件形式打开元件库——》ctrl+a——》ctrl+c——》新建原理库文件ctrl+v——》修改引脚——》修改元件属性——》重命名——》建在footprint pcb库封装——》编辑引脚图——》保存退出
队列粘贴可用在复制大量属性一致的.引脚上
l 从已有的pcb项目中把原件库还原出来
打开pcb——》执行design——》make pcb library
l 从已有的sch原理图项目中把原件库还原出来
打开.sch文件——》执行design——》make project library
六、 绘制PCB的几个要点
l 布线顺序
先信号线,后电源地线
l 走线
Ø 蛇形线
P——》T: 布线
Shift+A: 切换成蛇形走线
`: 显示当前可用操作
1、2、3、4: 改变蛇形走线弧度
,。: 改变蛇形走线振幅
Tab: 设置走线类型(曲线、折线)
Ø 曲线
Ctrl+Shift+Space
Ø 等长线(走线完成后设置等长)
新建类:Design——》Classes,右键Net Class——》Add Class,右键重命名
添加网络:向内里面添加需要等长的网络
设置线路等长:T+R——》点击某条需要修改的线路——》Tab设置等长线参数——》点击“确定”,鼠标沿线路移动,直到长度达到要求
Ø 差分线
原理图中添加差分线(添加差分线标志,差分线组网络标签结尾为_p、_N),将差分线规则导入PCB板(直接update即可)——》PCB文件中打开PCB面板,在PCB面板选择Differential Pairs,在下面的框中选择All Differential Pairs,这样所有的差分对就在Designer框中出现了——》选中一对差分对,点击Rule Wizard,进入Differential Pairs Wizard界面,设置差分对规则——》Place——》Differential Paris Routing开始布线,差分线布线时,两根差分线会同时布线
Ø 等长蛇形差分线
Tool——》Interactive Diff Pair Length Tunning,调整方法与等长线一样
l 敷铜
Ø 矩形填充
Ø 多边形敷铜
Ø 多边形填充挖空
Ø 切断多边形填充区
;Ⅱ VC++ Dll文件可以反编译吗
可以的。
1、Dll文件和EXE文件一样,都属于Windows可执行文件,都遵守PE文件格式。
2、静态反汇编可以通过IDA等软件来进行,动态反编译可以通过Windbg、Ollydbg来进行。以OllyDbg为例,把要反编译的DLL文件拖到其界面中即可看到其反汇编代码。
Ⅲ C语言中的指针到底有什么用
所有变量值保存在内存中,而每个内存都有一个地址,所谓地址就是一个整数编号,如同门牌号码用于定位(专业术语叫寻址),一个地址对应一个字节(8bit)的内存单元。
如今的编译器,一个整数int类型的值占用32位bit,也就是4字节,编译器将第一个字节的编号定义为该整数的地址,由于保存地址的变量就像一个箭头指向某地址,而称为指针变量。
int a =10; //定义一个整数变量a,对其赋值10
int *p =&a;//定义一个指针变量p,对其赋值a的内存地址,&符号意思为引用跟随其后的变量地址。
cont <<a<<end; //输出 a的值:10
cont << p << end ;// 输出p的值:XXXXX 其实为a的地址,该地址由编译器和运行时确定。
cont << *p <<end; //输出p指向的地址中的值:10,也就是a的值,*星号放在变量前面意思就是取该变量中的地址所指内存中的值。
读取过程为:p的值(a的地址)->寻址->取值
由于指针是一个变量的首个字节的地址,所以要告诉编译器被指地址包含连续多少个字节,因此指针也有类型。比如上面例子中声明了p指针是个整数指针,这样编译器知道p指向一个4字节的内存块。
你可以将指针变量看做一般的整数变量来理解,用来保存一个整数(地址是个整数),只是,该整数代表着某地址,在这里是a的地址。
在C/C++中很灵活,但是也很危险,也很难学,如果指针指向错误的地址会引起程序崩溃,因此在C#中已经被微软封装了,但内部还是有指针的。
如果有必要,C#中也可以使用指针,使用非安全代码,在项目生成选项卡中勾选“允许非安全代码”,然后就可以使用指针了,不过不建议这么做。
unsafe
{
int a = 10;
int* p=&a;
}