嵌入式從入門到放棄??
時(shí)間:2021-10-09 14:33:09
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]?星標(biāo)「Linux大陸」,一起進(jìn)步!來(lái)來(lái)來(lái),讓我們一起,左手右手一個(gè)慢動(dòng)作。每一個(gè)方向都值得一個(gè)人用一生去鉆研,每一個(gè)步驟都有其自身的魅力。第一步,做出實(shí)體芯片。單片機(jī)一般理解為MCU(MicrocontrollerUnit,微控制單元),包含定時(shí)器、ALU(Arithmetic...
?星標(biāo)「Linux大陸」,一起進(jìn)步!
來(lái)來(lái)來(lái),讓我們一起,左手右手一個(gè)慢動(dòng)作。
每一個(gè)方向都值得一個(gè)人用一生去鉆研,每一個(gè)步驟都有其自身的魅力。
第一步,做出實(shí)體芯片。
單片機(jī)一般理解為MCU(Microcontroller Unit,微控制單元),包含定時(shí)器、ALU(Arithmetic Logic Unit,算術(shù)邏輯單元)、內(nèi)存、寄存器、總線等部分。而普通的意義的單片機(jī)還包含GPIO、串口(UART)、DMA、協(xié)處理器、AD\DA等等。
看懂如下圖前置:計(jì)算機(jī)組成原理,微機(jī)原理。
流水線
前置:數(shù)字邏輯電路,集成電路設(shè)計(jì)及其EDA技術(shù),verilog把各個(gè)模塊細(xì)分為寄存器級(jí),比如移位運(yùn)算器、節(jié)拍器、譯碼器、存儲(chǔ)器等。
然后會(huì)調(diào)試BUG,看時(shí)序。
前置:時(shí)序用MODELSIM,綜合用QUARTUS II 等等
然后此時(shí)才剛剛開始。
繼續(xù)生成電路網(wǎng)表,時(shí)序收斂,如果不對(duì)繼續(xù)返回上述流程繼續(xù)調(diào)試。
前置:Synopsys回顧一下
此時(shí)應(yīng)該生成版圖文件,然后根據(jù)制造廠商提供的物理器件庫(kù)進(jìn)行最后的各種設(shè)計(jì)規(guī)則檢查。
前置:集成電路版圖設(shè)計(jì),軟件有Cadence:Virtuoso Layout Editor
送到代工廠,還要懂元器件前置:半導(dǎo)體物理,半導(dǎo)體器件物理,固體物理,電介質(zhì)物理,量子力學(xué),熱力學(xué)與數(shù)理統(tǒng)計(jì)。
根據(jù)得到的圖表設(shè)計(jì)版圖和工藝流程,大概是這樣
前置:集成電路制造
然后進(jìn)行電氣測(cè)試,電磁測(cè)試,最后封裝。
前置:集成電路封裝技術(shù)
最后不能忘記出片的時(shí)候
焚香沐浴更衣,朝南拜三拜,祈禱不會(huì)有大問(wèn)題。
第二步,設(shè)計(jì)系統(tǒng)驅(qū)動(dòng)。
終于得到了物理上的片子
我們開始寫匯編器,編譯器。
本質(zhì)上燒寫進(jìn)ROM的是這樣的機(jī)器碼。
匯編器(把匯編語(yǔ)言變成機(jī)器碼)前置:perl
來(lái)來(lái)來(lái),讓我們一起,左手右手一個(gè)慢動(dòng)作。
每一個(gè)方向都值得一個(gè)人用一生去鉆研,每一個(gè)步驟都有其自身的魅力。
第一步,做出實(shí)體芯片。
單片機(jī)一般理解為MCU(Microcontroller Unit,微控制單元),包含定時(shí)器、ALU(Arithmetic Logic Unit,算術(shù)邏輯單元)、內(nèi)存、寄存器、總線等部分。而普通的意義的單片機(jī)還包含GPIO、串口(UART)、DMA、協(xié)處理器、AD\DA等等。
看懂如下圖前置:計(jì)算機(jī)組成原理,微機(jī)原理。
流水線
前置:數(shù)字邏輯電路,集成電路設(shè)計(jì)及其EDA技術(shù),verilog把各個(gè)模塊細(xì)分為寄存器級(jí),比如移位運(yùn)算器、節(jié)拍器、譯碼器、存儲(chǔ)器等。
module minicpu(clk, reset, run, in, cs, pcout, irout, qtop, abus, dbus, out);
input clk,reset,run;
input [15:0] in;
output [1:0] cs;
output [15:0] irout, qtop, dbus, out;
output [11:0] pcout, abus;
wire [15:0] qnext, ramout, aluout;
reg [11:0] abus;
reg halt, jump, pcinc, push, pop, thru, qthru, dbus2qtop, dbus2ram, dbus2obuf, ir2dbus, qtop2dbus, alu2dbus, ram2dbus, in2dbus;
reg pop2, ir2abus, qtop2abus, qnext2abus;
reg [11:0] pcout, pcnext;
reg [15:0] out;
statef statef0(.clk(clk),.reset(reset),.run(run),.halt(halt),.cs(cs));
stackm stackm0(.clk(clk),.reset(reset),.load(dbus2qtop),.push(push),.pop(pop),.pop2(pop2),.thru(qthru),.d(dbus),.dthru(ramout),.qtop(qtop),.qnext(qnext));
alu alu0(.a(qtop),.b(qnext),.f(irout[4:0]),.s(aluout));
dpram #(16,10,1024) dpram0(.clk(clk),.load1(dbus2ram),.addr1(abus),.addr2(pcnext),.d1(dbus),.q1(ramout),.q2(irout));
物理上是這樣的然后會(huì)調(diào)試BUG,看時(shí)序。
前置:時(shí)序用MODELSIM,綜合用QUARTUS II 等等
然后此時(shí)才剛剛開始。
繼續(xù)生成電路網(wǎng)表,時(shí)序收斂,如果不對(duì)繼續(xù)返回上述流程繼續(xù)調(diào)試。
前置:Synopsys回顧一下
此時(shí)應(yīng)該生成版圖文件,然后根據(jù)制造廠商提供的物理器件庫(kù)進(jìn)行最后的各種設(shè)計(jì)規(guī)則檢查。
前置:集成電路版圖設(shè)計(jì),軟件有Cadence:Virtuoso Layout Editor
送到代工廠,還要懂元器件前置:半導(dǎo)體物理,半導(dǎo)體器件物理,固體物理,電介質(zhì)物理,量子力學(xué),熱力學(xué)與數(shù)理統(tǒng)計(jì)。
根據(jù)得到的圖表設(shè)計(jì)版圖和工藝流程,大概是這樣
前置:集成電路制造
然后進(jìn)行電氣測(cè)試,電磁測(cè)試,最后封裝。
前置:集成電路封裝技術(shù)
最后不能忘記出片的時(shí)候
焚香沐浴更衣,朝南拜三拜,祈禱不會(huì)有大問(wèn)題。
第二步,設(shè)計(jì)系統(tǒng)驅(qū)動(dòng)。
終于得到了物理上的片子
我們開始寫匯編器,編譯器。
本質(zhì)上燒寫進(jìn)ROM的是這樣的機(jī)器碼。
匯編器(把匯編語(yǔ)言變成機(jī)器碼)前置:perl
#!/usr/bin/perl -W
//********
*********//
print "*** LABEL LIST ***\n";
foreach $l (sort(keys(%label))){
printf "%-8sX\n",$l,$label{$l};
}
$addr=0;
print "\n*** MACHINE PROGRAM ***\n";
foreach (@source){
$line = $_;
s/\w ://;
if(/PUSHI\s (-?\d )/){
printf "X:X\t$line",$addr ,$MCODE{PUSHI} ($1