2021年8月9日 星期一

Allegro - 修改單一焊盤類型

1. 選擇"Edit" > "Properties"。 



2. 先按下"All Off",再勾選"Pins"。

3. 點選需修改的焊盤,之後在Edit Property視窗中的Available Properties欄位中點選"Dyn_Thermal_Con_type",在按下"Assign..."。

4.   選擇需修改焊盤的板層Value下拉式選單,並選擇焊盤類型。

5. 設定完成按下"Apply",完成設定,按下"OK"可以關閉視窗。







2021年1月18日 星期一

使用VCS與Verdi編譯與模擬-執行與模擬操作(2)

 (1). 使用"滑鼠左鍵"點選"New Waveform"。


(2). 開啟新的波形視窗後,使用"滑鼠左鍵"點選"Open File"。

(3). 使用"滑鼠左鍵"點選"Test.fsdb"檔案,再按"Add"加入後按"OK"關閉視窗。

(4). 使用"滑鼠左鍵"點選"Get Signals"。

(5). 點選"Select/Deselect All Signals"按鈕,選取要顯示波形的IO。

(6). 按"Add Selected Signals",加入要顯示波形的IO,按"OK"結束選取。

(7). 顯示結果如下所示。













使用VCS與Verdi編譯與模擬-硬體描述語言撰寫(1)

(1). 先撰寫Test.v、testbench.v、Makefile。

/*****RTL code*****/

`timescale 1ns / 1ns

module Test(a, b, c, d, En, Sel, f);

input  a, b, c, d, En, Sel;

output f;

wire   f;

wire   g, h, i, j;

assign g = a | b;

assign i = g & En;

assign h = c | d;

assign j = h & En;

assign f = (Sel==1'b0) ? i : j;

endmodule


/*****Testbench*****/

`timescale 1ns / 1ns
module testbench;

reg a, b, c, d, En, Sel;

wire f;

Test UUT(
  .a(a),
  .b(b),
  .c(c),
  .d(d),
  .En(En),
  .Sel(Sel),
  .f(f) );

initial

begin
 a   = 1'b0; // Time = 0
 b   = 1'b1;
 c   = 1'b0;
 d   = 1'b1;
 En  = 1'b0;
 Sel = 1'b0;

 #20;    // Time = 20
 a  = 1'b1;
 #10;    // Time = 30
 b  = 1'b0;
 c  = 1'b1;
 #10;    // Time = 40
 a  = 1'b0;
 #10;    // Time = 50
 En = 1'b1;
 #10;    // Time = 60
 c  = 1'b0;
 #10;    // Time = 70
 a  = 1'b1;
 d  = 1'b0;
 #20;    // Time = 90
 c  = 1'b1;
 #20;    // Time = 110
 a  = 1'b0;
 #10;    // Time = 120
 a  = 1'b1;
 #10;    // Time = 130
 c  = 1'b0;
 Sel= 1'b1;
 #10;    // Time = 140
 a  = 1'b0;
 #30;    // Time = 170
 a  = 1'b1;
 #10;    // Time = 180
 c  = 1'b1;
 #20;    // Time = 200
 a  = 1'b0;
end

//for Verdi simulation
`ifdef DUMP_FSDB
initial
begin
  $fsdbDumpfile("Test.fsdb"); //RTL
  $fsdbDumpvars(0,"testbench");
end
`endif

endmodule

/*****Makefile*****/
VLOG = vcs
SIM = ./simv
VERDI = verdi

SRC = Test.v testbench.v

VLOG_CONF = -l readme.log +v2k -full64 -debug +define+DUMP_FSDB \
<Tab>-P /opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/novas.tab \
<Tab>/opt/Synopsys/Verdi2015/share/PLI/VCS/linux64/pli.a
SIM_CONF = -l run.log
VERDI_CONF = -sv -nologo -undockWin -ssf Test.fsdb

RM = -rm -rf
TMPFILE = simv.* \
<Tab>*.log *.vpd *.key *.conf *.rc *.fsdb *.dat \
<Tab>simv* csrc* DVE* INCA* verdi* waves*

help:
<Tab>@echo "make help"
<Tab>@echo "make all"
<Tab>@echo "make comp"
<Tab>@echo "make sim"
<Tab>@echo "make verdi"
<Tab>@echo "make clean"
all::clean comp sim verdi

comp:
<Tab>$(VLOG) $(SRC) $(VLOG_CONF)

sim: 
<Tab>$(SIM) $(SIM_CONF)

verdi:
<Tab>$(VERDI) $(SRC) $(VERDI_CONF)

clean:
<Tab>$(RM) $(TMPFILE)



(2). 存檔至同一資料夾下。


2020年12月17日 星期四

Allegro - 快速複製相同的線路與Via

 1. 使用"滑鼠左鍵"點選"Copy"。


2. 在"Find"欄位中,只有勾選"Vias"、"Clines"。


3. 使用"滑鼠左鍵"框選欲複製的線路與Via。


4. 使用"滑鼠左鍵"點選"步驟3"所框選線路中,其中一條的尾端,當做複製的定位點。


5. 移動滑鼠時可以看到複製的線路跟著游標移動,移動到欲複製相同線路的位置,點選"滑鼠左鍵"貼上線路,如果要繼續貼上就重覆此步驟,如要結束按"F6"。




2020年12月3日 星期四

C#加入Excel物件

 1. 點選"專案名稱" > "Add" > References。


2. 按下"Browse...",選擇Excel執行檔路徑,一都安裝在"C:\Program Files (x86)\Microsoft Office\Office14\EXXEL.EXE"。

3. 最後程式中加入"using Microsoft.Office.Interop.Excel;",就可以使用Excel物件。



2020年11月30日 星期一

使用MakeFile執行NC-Verilog

  使用 NCLaunch編譯時在操作滑鼠點選要編譯的Verilog檔案與選取Testbench檔案比較花時間,改用MakeFile會比較節省時間。

1. 在Verilog與Testbench檔案的下增加一個MakeFile檔案。


2. 開啟並輸入。
VLOG =ncvlog
ELAB =ncelab
SIM =ncsim -gui

SRC =Test.v testbench.v
TP =testbench

VLOG_CONF =-update -linedebug -status
ELAB_CONF =-access +wc -status
SIM_CONF =-status

RM =-rm -rf
TMPFILE =*.log *.key INCA_libs waves.shm

all ::clean compile elab sim 

compile:
<TAB>$(VLOG) $(SRC) $(VLOG_CONF)

elab:
<TAB>$(ELAB) $(TP) $(ELAB_CONF)

sim:
<TAB>$(SIM) $(TP) $(SIM_CONF)

clean:
<TAB>$(RM) $(TMPFILE)


3. 開啟Terminal,在MakeFile路徑中輸入"make all",按"Enter"鍵後,就會自動編譯並開啟模擬視窗。

4. 開啟模擬視窗,其它操作與之前相同。

2020年11月23日 星期一

IC EDA 流程設計軟體工具

 IC設計的流程複雜,使用到的工具眾多,整套採購下來要近百萬至千萬台幣。

IC EDA 使用工具:

數位設計前段
1. 硬體描述語言: Verilog、VHDL。
2. RTL simulation: Cadence NCLaunch(NC Verilog + NC VHDL + NC simulators)、Synopsys VCS(simulation) + Verdi(debug)、Mentor Modelsim。
3. Logic Synthesis(Verilog or VHDL code to Gate-Level Netlist ): Cadence Genus、Synopsys Design complier(DC) and Library complier(LC)。

數位設計後段
1. APR(Automatic Placement & Routing): Cadence Innovus、Synopsys IC complier(ICC)。

Design for testability(DFT)
1. BSCAN: Mentor BSDArchit、Sysnopsy BSD Compiler。
2. MBIST: Mentor Tessent Memory BIST。 
3. ATPG: Mentor TestKompress、Synopsys TetraMAX 。
4. Scan chain: Synopsys DFT compiler。

Design Signoff
1. Timing: Synopsys PrimeTime、Cadence Tempus。
2. Physical: Mentor Calibre、Synopsys IC Validator、Cadence Physical Verification System(PVS)。

類比設計
1. CMOS circuit design and simulation: Synopsys Laker ADP(circuit design)、Synopsys Hspice(simulation)、Cadence Virtuoso、Mentor Tanner S-Edit、Mentor Caliber(DRC/LVS)。
2. Layout: Synopsys Laker、Cadence Virtuoso、Mentor Tanner L-Edit。


IC開發流程:

1.      邏輯模擬:ModelSim(Mentor Graphics)

*使用Linux的vi編輯器編寫Verilog。

*使用ModelSim軟體的基本功能與操作。


2.      邏輯合成:Design Compiler(Synopsys)

*使用邏輯合成工具Design Compiler的圖形使用者方式與命令(腳本)操作方式。

*編寫邏輯合成約束指令檔,並應用指令檔控制合成過程。

*進行合成結果分析:綜合最壞路徑延時、功耗估計等。

*可測性設計的邏輯合成。

 

3.      靜態時序分析:Prime Time(Synopsys)

*使用靜態時序分析工具Prime Time的操作方式。

*理解輸入延時、輸出延時、時序弧等概念。

*對邏輯合成後的電路設計進行靜態時序分析,分析關鍵路徑。

 

4.      版圖合成:SOC Encounter(Cadence)

*瞭解並輸入應用SOC Encounter進行版圖合成的各類庫檔及邏輯合成檔。

*進行版圖規劃設計。

*進行電源網路合成。

*進行自動佈局。

*進行時鐘樹合成。

*進行自動佈線,完成版圖合成。

*版圖驗證:

**將版圖合成的結果導入模擬IC設計工具IC5141。

**應用版圖驗證工具Assura對版圖進行DRC驗證、LVS驗證。

 

5.      自動測試向量生成:TetraMAX(Synopsys)

*熟悉測試向量合成工具TetraMAX的操作。

*對電路的DFT合成網表構造ATPG模型。

*進行設計規則檢查。

*外部輸入測試圖形的故障類比。

 

6.      形式驗證:Formality(Synopsys)

*使用形式驗證工具Formality的基本概念與軟體操作流程。

*讀入設計、設置資訊、匹配比較點與驗證。

*結果分析與除錯。

 

7.       版圖驗證工具:IC5141、Assura (Cadence)



IC設計流程與使用工具: