編譯原理上升的箭頭
Ⅰ 原理圖設計基礎簡介
原理圖設計基礎簡介
《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;
}