第一篇:北郵機器狗電子工藝實習要求201401
實習作業
需要大家提交的實習作業共分三部分:
① 練習板;
② “Multisim.ms10 + PROTEL.ddb +實習報告.Doc”的RAR文件上傳FTP,按照 “班級+小班學號 +姓名”來命名,例如:11101班+01號+張三。
作業上傳ftp://10.102.18.249/
用戶名:201401;密碼:140621
FTP上傳截止時間為6月30號24:00
③ 機器狗成品。
成績評定
最后成績按以下幾個部分評定:
① 練習板:15%
② Multisim和 PROTEL實習:25%
③ 機器狗:30%
④ 實習報告:20%
⑤平時成績:(紀律、衛生等等)10%
Multisim實習幾點注意事項
1、軟件下載:ftp://10.102.18.249/用戶名:gysx;密碼:dzgysx
統一用從FTP上下載的Multisim10版本,以免發生不兼容問題導致文件打不開。
2、在仿真的基礎上理解電路的原理,畫出電路工作原理的基本框圖,這個框圖要附在實驗報告機器狗的基本工作原理中。
3、仿真電路圖中,電容C5用10uF的,電容C4用1nF的。
4、用一個雙通道示波器即可,示波器時基的Scale統一設為100ms/Div;通道A和B的Scale統一設為5V/Div;其他默認即可。
5、Multisim10元件庫的變更:
① DC Current Source→Source;
② Connectors不用;
③ Optocoupler 4N25→Misc。
6、Package為元件的封裝,不用管。
7、獨立完成。
第二篇:2013電子工藝實習要求
實習要求及注意事項 實習內容
1.安全用電
2.手工錫焊練習(主要項目:PCB的焊裝)
3.電子產品的裝配與調試(主要項目:數字萬用表的焊裝)
4.印制電路板的設計與制作(主要項目:三端穩壓電路的設計)
5.電路的仿真與設計(主要項目:整流橋仿真)考核辦法
1.實習報告
2.實物作業
3.現場實際操作各項均按10分制計,總成績綜合各項成績評定常用工具、實習材料等將人手一件(套)發放,要求個人妥善保管。
《實習報告》 撰寫注意事項
一.實習報告內容的編寫
1.通過查找、收集相關資料,對本次實習教學中所涉及的有關部分做較全面地綜述(理論認識、個人見解以及必要的分析)。
本次實習的主要內容有:安全用電、手工錫焊技術、電子產品的裝配與調試、典型電路的仿真與設計等。
2.報告結尾要有對整個實習過程的總結、收獲和體會。
3.除插圖可用鉛筆繪制、印制電路板的設計原理圖與PCB效果圖、EWB仿真效果圖外,報告一律用鋼筆書寫,要求書面整潔、字跡工整。
二.實習報告內容的評分標準
作為實習成績考核的一項,按10分制計。
1.內容充實,不低于12頁(面),書面整潔、字跡工整(1分)
2.《實習報告》的內容應涉及到本次實習教學的各個部分(理論認識、個人見解以及必要的分析)。
①安全用電(1分)
②手工錫焊技術(2分)
③電子產品的裝配與調試(1分)
④印制電路板的設計與制作(2分)
⑤EWB仿真軟件的應用(2分)
3.有對整個實習過程的總結、收獲和體會。(1分)
第三篇:電子工藝實習報告要求(模版)
“微電子工藝實習”
報告要求
內容包括
一、綜述(1~3小題任選一題)
1、常用電子元器件(電阻器、電位器、電容器、電感器、變壓器、二極管、三極管、可控硅等)的標稱方法與采用萬用表進行檢測方法
2、印制電路板制作方法(包括實驗室制作方法、工廠制作方法)介紹以及注意事項
3、焊接技術(手工焊接、再流焊、波峰焊等)以及裝配技術介紹
二、思考題
1利用萬用表測量二極管
(1)如何區分正負極和判斷管子的好壞
(2)如何檢查發光二極管
2.利用萬用表測量三極管
(1)如何判斷基極及三極管的類型(PNP型還是NPN型)
(2)如何判定集電極與發射極
3.利用萬用表測量可控硅
(1)如何判定可控硅的電極(控制極、陽極、陰極)
(2)如何檢查可控硅的好壞
注意:
1、字數在3000以上。
2、寫上教學點,專業、層次、年級、姓名、學號
3、實習報告于2007年11月19日前發到yangrifu@scut.edu.cn,有疑問電話聯系***
第四篇:電子工藝實習報告格式要求
電子工藝實習報告格式要求
1、在首頁標明專業、班級、姓名、學號
2、字體要求:正文總標題 小
三、宋體、居中
小標題小四號、宋體
正文:五號、宋體
3、行間距:多倍行距1.25頁邊距:左右3.3厘米上下:2厘米首行縮進2個漢字
4、字數要求:不少于3000字
5、報告內容包含漢字、電路圖等
6、用A4紙打印
第五篇:北郵電子院專業實驗報告
電子工程學院
ASIC專業實驗報告
班級: 姓名:
學號: 班內序號:
第一部分 語言級仿真
LAB 1:簡單的組合邏輯設計一、二、實驗目的 實驗原理 掌握基本組合邏輯電路的實現方法。
本實驗中描述的是一個可綜合的二選一開關,它的功能是當sel = 0時,給出out = a,否則給出結果out = b。在Verilog HDL中,描述組合邏輯時常使用assign結構。equal=(a==b)?1:0是一種在組合邏輯實現分支判斷時常用的格式。parameter定義的size參數決定位寬。測試模塊用于檢測模塊設計的是否正確,它給出模塊的輸入信號,觀察模塊的內部信號和輸出信號。
三、源代碼
mux.v module scale_mux(out,sel,b,a);parameter size=1;output[size-1:0] out;input[size-1:0]b,a;input sel;assign out =(!sel)?a:
(sel)?b:
{size{1'bx}};endmodule
mux_test.v `define width 8 `timescale 1 ns/1 ns module mux_test;
reg[`width:1]a,b;
wire[`width:1]out;
reg sel;
scale_mux#(`width)m1(.out(out),.sel(sel),.b(b),.a(a));
initial
begin
$monitor($stime,“sel=%b a=%b b=%b out=%b”,sel,a,b,out);
$dumpvars(2,mux_test);
sel=0;b={`width{1'b0}};a={`width{1'b1}};
#5sel=0;b={`width{1'b1}};a={`width{1'b0}};
#5sel=1;b={`width{1'b0}};a={`width{1'b1}};
#5sel=1;b={`width{1'b1}};a={`width{1'b0}};
#5 $finish;
end endmodule
四、仿真結果與波形
LAB 2:簡單時序邏輯電路的設計一、二、實驗目的 實驗原理 掌握基本時序邏輯電路的實現。
在Verilog HDL中,相對于組合邏輯電路,時序邏輯電路也有規定的表述方式。在可綜合的Verilog HDL模型中,我們常使用always塊和@(posedge clk)或@(negedge clk)的結構來表述時序邏輯。
在always塊中,被賦值的信號都必須定義為reg型,這是由時序邏輯電路的特點所決定的對于reg型數據,如果未對它進行賦值,仿真工具會認為它是不定態。為了正確地觀察到仿真結果,在可綜合的模塊中我們通常定義一個復位信號rst-,當它為低電平時對電路中的寄存器進行復位。
三、源代碼
counter.v `timescale 1 ns/100 ps module counter(cnt,clk,data,rst_,load);output[4:0]cnt;input [4:0]data;input
clk;input
rst_;input
load;reg
[4:0]cnt;
always@(posedge clk or negedge rst_)
if(!rst_)
#1.2 cnt<=0;
else
if(load)
cnt<=#3 data;
else
cnt<=#4 cnt + 1;
endmodule
counter_test.v `timescale 1 ns/1 ns module counter_test;
wire[4:0]cnt;
reg [4:0]data;
reg
rst_;
reg
load;
reg
clk;
counter c1
(.cnt(cnt),.clk(clk),.data(data),.rst_(rst_),.load(load));
initial begin
clk=0;
forever begin
#10 clk=1'b1;
#10 clk=1'b0;
end
end
initial begin
$timeformat(-9,1,“ns”,9);
$monitor(“time=%t,data=%h,clk=%b,rst_=%b,load=%b,cnt=%b”,$stime,data,clk,rst_,load,cnt);
$dumpvars(2,counter_test);
end task expect;input [4:0]expects;
if(cnt!==expects)begin
$display(“At time %t cnt is %b and should be %b”,$time,cnt,expects);
$display(“TEST FAILED”);
$finish;
end endtask initial begin
@(negedge clk)
{rst_,load,data}=7'b0_X_XXXXX;@(negedge clk)expect(5'h00);
{rst_,load,data}=7'b1_1_11101;@(negedge clk)expect(5'h1D);
{rst_,load,data}=7'b1_0_11101;
repeat(5)@(negedge clk);
expect(5'h02);
{rst_,load,data}=7'b1_1_11111;@(negedge clk)expect(5'h1F);
{rst_,load,data}=7'b0_X_XXXXX;@(negedge clk)expect(5'h00);
$display(“TEST PASSED”);
$finish;
end endmodule
四、仿真結果與波形
五、思考題
該電路中,rst-是同步還是異步清零端?
在counter.v的always塊中reset沒有等時鐘,而是直接清零。所以是異步清零端。
LAB 3:簡單時序邏輯電路的設計一、二、實驗目的 實驗原理 使用預定義的庫元件來設計八位寄存器。
八位寄存器中,每一位寄存器由一個二選一MUX和一個觸發器dffr組成,當load=1,裝載數據;當load=0,寄存器保持。對于處理重復的電路,可用數組條用的方式,使電路描述清晰、簡潔。
三、源代碼
clock.v `timescale 1 ns /1 ns module clock(clk);reg clk;output clk;initial begin clk=0;forever begin #10 clk=1'b1;#10 clk=1'b0;end end endmodule
mux及dffr模塊調用代碼
mux mux7(.out(n1[7]),.sel(load),.b(data[7]),.a(out[7]));dffr dffr7(.q(out[7]),.d(n1[7]),.clk(clk),.rst_(rst_));mux mux6(.out(n1[6]),.sel(load),.b(data[6]),.a(out[6]));dffr dffr6(.q(out[6]),.d(n1[6]),.clk(clk),.rst_(rst_));mux mux5(.out(n1[5]),.sel(load),.b(data[5]),.a(out[5]));dffr dffr5(.q(out[5]),.d(n1[5]),.clk(clk),.rst_(rst_));mux mux4(.out(n1[4]),.sel(load),.b(data[4]),.a(out[4]));dffr dffr4(.q(out[4]),.d(n1[4]),.clk(clk),.rst_(rst_));
mux mux3(.out(n1[3]),.sel(load),.b(data[3]),.a(out[3]));dffr dffr3(.q(out[3]),.d(n1[3]),.clk(clk),.rst_(rst_));mux mux2(.out(n1[2]),.sel(load),.b(data[2]),.a(out[2]));dffr dffr2(.q(out[2]),.d(n1[2]),.clk(clk),.rst_(rst_));mux mux1(.out(n1[1]),.sel(load),.b(data[1]),.a(out[1]));dffr dffr1(.q(out[1]),.d(n1[1]),.clk(clk),.rst_(rst_));mux mux0(.out(n1[0]),.sel(load),.b(data[0]),.a(out[0]));dffr dffr0(.q(out[0]),.d(n1[0]),.clk(clk),.rst_(rst_));
例化寄存器
register r1(.data(data),.out(out),.load(load),.clk(clk),.rst_(rst_));例化時鐘
clock c1(.clk(clk));
添加檢測信號 initial begin $timeformat(-9,1,“ns”,9);$monitor(“time=%t,clk=%b,data=%h,load=%b,out=%h”, $stime,clk,data,load,out);$dumpvars(2,register_test);end
四、仿真結果與波形
LAB 4:用always塊實現較復雜的組合邏輯電路
一、實驗目的
掌握用always實現組合邏輯電路的方法;
了解assign與always兩種組合邏輯電路實現方法之間的區別。
二、實驗原理
僅使用assign結構來實現組合邏輯電路,在設計中會發現很多地方顯得冗長且效率低下。適當地使用always來設計組合邏輯,會更具實效。
本實驗描述的是一個簡單的ALU指令譯碼電路的設計示例。它通過對指令的判斷,對輸入數據執行相應的操作,包括加、減、或和傳數據,并且無論是指令作用的數據還是指令本身發生變化,結果都要做出及時的反應。
示例中使用了電平敏感的always塊,電平敏感的觸發條件是指在@后括號內電平列表的任何一個電平發生變化就能觸發always塊的動作,并且運用了case結構來進行分支判斷。
在always中適當運用default(在case結構中)和else(子if…else結構中),通常可以綜合為純組合邏輯,盡管被賦值的變量一定要定義為reg型。如果不使用default或else對缺省項進行說明,易產生意想不到的鎖存器。
三、源代碼
電路描述
always@(opcode or data or accum)begin if(accum==8'b00000000)#1.2 zero=1;else #1.2 zero=0;
case(opcode)PASS0: #3.5 out =accum;PASS1: #3.5 out =accum;ADD: #3.5 out = data + accum;AND: #3.5 out =data&accum;XOR: #3.5 out =data^accum;PASSD: #3.5 out=data;PASS6:#3.5 out=accum;PASS7:#3.5 out=accum;default:#3.5 out=8'bx;endcase end
四、仿真結果與波形
LAB 5:存儲器電路的設計一、二、實驗目的 實驗原理 設計和測試存儲器電路。
本實驗中,設計一個模塊名為mem的存儲器仿真模型,該存儲器具有雙線數據總線及異步處理功能。由于數據是雙向的,所以要注意,對memory的讀寫在時序上要錯開。
三、源代碼
自行添加的代碼
assign data=(read)?memory[addr]:8'hZ;
always @(posedge write)begin memory[addr]<=data[7:0];end
四、仿真結果與波形
LAB 6:設計時序邏輯時采用阻塞賦值與非阻塞賦值的區別
一、實驗目的
明確掌握阻塞賦值與非阻塞賦值的概念和區別; 了解阻塞賦值的使用情況。
二、實驗原理
在always塊中,阻塞賦值可以理解為賦值語句是順序執行的,而非阻塞賦值可以理解為并發執行的。實際時序邏輯設計中,一般情況下非阻塞賦值語句被更多的使用,有時為了在同一周期實現相互關聯的操作,也使用阻塞賦值語句。
三、源代碼
blocking.v `timescale 1 ns/ 100 ps
module blocking(clk,a,b,c);
output[3:0]b,c;
input [3:0]a;
input
clk;
reg
[3:0]b,c;
always@(posedge clk)
begin
b =a;
c =b;
$display(“Blocking: a=%d,b=%d,c=%d.”,a,b,c);
end endmodule
non_blocking.v `timescale 1 ns/ 100 ps module non_blocking(clk,a,b,c);
output[3:0] b,c;input[3:0] a;input clk;reg [3:0]b,c;always @(posedge clk)begin b<=a;c<=b;$display(“Non_blocking:a=%d,b=%d,c=%d”,a,b,c);end endmodule compareTop.v `timescale 1 ns/ 100 ps module compareTop;wire [3:0] b1,c1,b2,c2;reg[3:0]a;reg clk;initial begin clk=0;forever #50 clk=~clk;end initial $dumpvars(2,compareTop);initial begin a=4'h3;$display(“_______________________________”);# 100 a =4'h7;$display(“_______________________________”);# 100 a =4'hf;$display(“_______________________________”);# 100 a =4'ha;$display(“_______________________________”);# 100 a =4'h2;$display(“_______________________________”);# 100 $display(“_______________________________”);$finish;end non_blocking nonblocking(clk,a,b2,c2);blocking blocking(clk,a,b1,c1);endmodule
四、仿真結果與波形
LAB 7:利用有限狀態機進行復雜時序邏輯的設計一、二、實驗目的 實驗原理 掌握利用有限狀態機(FSM)實現復雜時序邏輯的方法。
控制器是CPU的控制核心,用于產生一系列的控制信號,啟動或停止某些部件。CPU何時進行讀指令,何時進行RAM和I/O端口的讀寫操作等,都由控制器來控制。
三、源代碼
補充代碼
nexstate<=state+1'h01;case(state)1:begin sel=1;rd=0;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 2:begin sel=1;rd=1;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 3:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 4:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 5:begin sel=0;rd=0;ld_ir=0;inc_pc=1;ld_pc=0;data_e=0;ld_ac=0;wr=0;if(opcode==`HLT)halt=1;end 6:begin sel=0;rd=alu_op;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 7:begin sel=0;rd=alu_op;ld_ir=0;halt=0;data_e=!alu_op;ld_ac=0;wr=0;if(opcode==`SKZ)inc_pc<=zero;if(opcode==`JMP)ld_pc=1;end 0:begin sel=0;rd=alu_op;ld_ir=0;halt=0;data_e=!alu_op;ld_ac=alu_op;inc_pc=(opcode==`SKZ)&zero||(opcode==`JMP);if(opcode==`JMP)ld_pc=1;if(opcode==`STO)wr=1;end //default:begin sel=1'bZ;rd=1'bZ;ld_ir=1'bZ;inc_pc=1'bZ;halt=1'bZ;ld_pc=1'bZ;data_e=1'bZ;ld_ac=1'bZ;wr=1'bZ;end endcase end
control_test.v /***************************** * TEST BENCH FOR CONTROLLER * *****************************/
`timescale 1 ns / 1 ns
module control_test;
reg [8:0] response [0:127];
reg [3:0] stimulus [0:15];
reg [2:0] opcode;
reg
clk;
reg
rst_;
reg
zero;
integer
i,j;
reg[(3*8):1] mnemonic;
// Instantiate controller
control c1(rd , wr , ld_ir , ld_ac , ld_pc , inc_pc , halt , data_e , sel , opcode , zero , clk , rst_);
// Define clock
initial begin
clk = 1;
forever begin
#10 clk = 0;
#10 clk = 1;
end
end
// Generate mnemonic for debugging purposes
always @(opcode)
begin
case(opcode)
3'h0
: mnemonic = “HLT”;
3'h1
: mnemonic = “SKZ”;
3'h2
: mnemonic = “ADD”;
3'h3
: mnemonic = “AND”;
3'h4
: mnemonic = “XOR”;
3'h5
: mnemonic = “LDA”;
3'h6
: mnemonic = “STO”;
3'h7
: mnemonic = “JMP”;
default : mnemonic = “???”;
endcase
end
// Monitor signals
initial
begin
$timeformat(-9, 1, “ ns”, 9);
$display(“ time
rd wr ld_ir ld_ac ld_pc inc_pc halt data_e sel opcode zero state”);
$display(“--------------------------------------------------------------”);//
$shm_open(“waves.shm”);//
$shm_probe(“A”);//
$shm_probe(c1.state);
end
// Apply stimulus
initial
begin
$readmemb(“stimulus.pat”, stimulus);
rst_=1;
@(negedge clk)rst_ = 0;
@(negedge clk)rst_ = 1;
for(i=0;i<=15;i=i+1)
@(posedge ld_ir)
@(negedge clk)
{ opcode, zero } = stimulus[i];
end
// Check response
initial
begin
$readmemb(“response.pat”, response);
@(posedge rst_)
for(j=0;j<=127;j=j+1)
@(negedge clk)
begin
$display(“%t %b %b %b
%b
%b
%b
%b
%b %b
%b
%b”,$time,rd,wr,ld_ir,ld_ac,ld_pc,inc_pc,halt,data_e,sel,opcode,zero,c1.state);
if({rd,wr,ld_ir,ld_ac,ld_pc,inc_pc,halt,data_e,sel}!==
response[j])
begin : blk
reg [8:0] r;
r = response[j];
$display("ERRORTEST1 PASSED!
111_00000
// 18
JMP BEGIN //run test again
@1A 00000000
// 1A
DATA_1:
//constant 00(hex)
11111111
// 1B
DATA_2:
//constant FF(hex)
10101010
// 1C
TEMP:
//variableTEST2 PASSED!
111_00000
// 11
JMP BEGIN
//run test again
@1A 00000001
// 1A
DATA_1:
//constant 1(hex)
10101010
// 1B
DATA_2:
//constant AA(hex)
11111111
// 1C
DATA_3:
//constant FF(hex)
00000000
// 1D
TEMP:
CPUtest3.dat //opcode_operand // addr
assembly code //--------------//-------------------------
111_00011
// 00
JMP LOOP
//jump to the address of LOOP @03 101_11011
// 03
LOOP:
LDA FN2
//load value in FN2 into accum
110_11100
// 04
STO TEMP
//store accumulator in TEMP
010_11010
// 05
ADD FN1
//add value in FN1 to accumulator
110_11011
// 06
STO FN2
//store result in FN2
101_11100
// 07
LDA TEMP
//load TEMP into the accumulator
110_11010
// 08
STO FN1
//store accumulator in FN1
100_11101
// 09
XOR LIMIT //compare accumulator to LIMIT
001_00000
// 0A
SKZ
//if accum = 0, skip to DONE
111_00011
// 0B
JMP LOOP
//jump to address of LOOP
000_00000
// 0C
DONE:
HLT
//end of program
101_11111
// 0D
AGAIN: LDA ONE
110_11010
// 0E
STO FN1
101_11110
// 0F
LDA ZERO
110_11011
// 10
STO FN2
111_00011
// 11
JMP LOOP
//jump to address of LOOP
@1A 00000001
// 1A
FN1:
//variablestores 2nd Fib.No.00000000
// 1C
TEMP:
//temporary variable
10010000
// 1D
LIMIT:
//constant 144stores 1st Fib.No.00000101
// 1B
data2:
//5
variablemax value
00000110
// 1E
LIMIT:
// 6
constant 1
11111111
// 1F
AND1:
//FF and
四、仿真結果與波形
第二部分 電路綜合一、二、三、四、實驗目的 實驗內容 源代碼
門級電路仿真結果與波形 掌握邏輯綜合的概念和流程,熟悉采用Design Compiler進行邏輯綜合的基本方法。采用SYNOPSYS公司的綜合工具Design Compiler對實驗7的control.v做綜合。與實驗指導書中相同。
五、思考題
1.control_pad.v文件是verilog語言及的描述還是結構化的描述?
是結構化的描述。
2.control_pad.sdf文件中,對觸發器的延遲包括哪些信息?
包括對邏輯單元和管腳的上升/下降時延的最大值、最小值和典型值。
第三部分 版圖設計一、二、三、四、實驗目的 實驗內容 源代碼
仿真結果與波形 掌握版圖設計的基本概念和流程,熟悉采用Sysnopsys ICC工具進行版圖設計的方法。對電路綜合輸出的門級網表control_pad.v進行布局布線。與實驗指導書中相同。布局規劃后結果
未產生core ring和mesh前
產生core ring和mesh后
電源線和電影PAD連接后
filler PAD填充后
布局后結果
時鐘樹綜合后結果
布線后結果
寄生參數的導出和后仿
五、思考題
1.簡述ICC在design setup階段的主要工作。
創建設計庫,讀取網表文件并創建設計單元,提供并檢查時間約束,檢查時鐘。在對之前的數據與信息進行讀取與檢查后保存設計單元。2.為什么要填充filler pad?
filler pad把分散的pad單元連接起來,把pad I/O區域供電連成一個整體。使它們得到持續供電并提高ESD保護能力。3.derive_pg_connection的作用是什么?
描述有關電源連接的信息。4.簡述floorplan的主要任務。
對芯片大小、輸入輸出單元、宏模塊進行規劃,對電源網絡進行設計。5.簡述place階段的主要任務。
對電路中的延時進行估計與分析,模擬時鐘樹的影響,按照時序要求,對標準化單元進行布局。
6.簡述CTS的主要步驟。
設置時鐘樹公共選項;綜合時鐘樹;重新連接掃描鏈;使能傳播時鐘;Post-CTS布局優化;優化時鐘偏移;優化時序。
實驗總結
經過數周的ASIC專業實驗,我對芯片設計流程、Verilog HDL語言、Linux基本指令和Vi文本編輯器有了基本的了解。雖然之前對芯片設計、VHDL一無所知,但通過實驗初步熟悉了ASIC的體系結構和VHDL的基本語法,對電路中時鐘、寄生參數、元件布局帶來的影響也有了了解。我在實驗中也遇到了許多問題,但我在老師、助教、同學的幫助下解決了這些問題,也有了更多收獲。通過這次ASIC專業實驗,我加深了對本專業的認識。我會繼續努力成為合格的電子人。