国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

這篇具有很好參考價值的文章主要介紹了集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

yosys為一套開源的針對verilog的rtl綜合框架,從本節(jié)開始將詳細介紹工具的使用,并詳細對源代碼進行分析和講解,首先介紹一下工具的安裝和使用。yosys的git網(wǎng)址為https://github.com/YosysHQ/yosys。

下面將介紹如何在ubuntu環(huán)境下安裝,使用的環(huán)境是ubuntu16.0。

安裝

準備工作

安裝Tabby CAD Suite工具,網(wǎng)址為:Releases · YosysHQ/oss-cad-suite-build · GitHub,根據(jù)系統(tǒng)下載指定的安裝包:

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

這里選擇的是linux-x64,然后根據(jù)安裝指南GitHub - YosysHQ/oss-cad-suite-build: Multi-platform nightly builds of open source digital design and verification tools, 設(shè)置環(huán)境變量即可,這部分很簡單。

安裝必要的軟件包:

apt-get install build-essential clang bison flex \
	libreadline-dev gawk tcl-dev libffi-dev git \
	graphviz xdot pkg-config python3 libboost-system-dev \
	libboost-python-dev libboost-filesystem-dev zlib1g-dev

編譯和安裝

拷貝代碼:

git clone https://github.com/YosysHQ/yosys.git

進入yosys目錄,執(zhí)行編譯和安裝指令

make
make install

正常情況下,會安裝成功,當前目錄下會生成yosys等可執(zhí)行程序:

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

EDA軟件使用

在當前目錄執(zhí)行:

./yosys

正常的話會進入yosys界面:

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

?我們以fiedler-cooley.v(目錄/tests/simple/下)文件為例來說明,verilog源代碼如下:

module up3down5(clock, data_in, up, down, carry_out, borrow_out, count_out, parity_out);

input [8:0] data_in;
input clock, up, down;

output reg [8:0] count_out;
output reg carry_out, borrow_out, parity_out;

reg [9:0] cnt_up, cnt_dn;
reg [8:0] count_nxt;

always @(posedge clock)
begin
	cnt_dn = count_out - 3'b 101;
	cnt_up = count_out + 2'b 11;

	case ({up,down})
		2'b 00 : count_nxt = data_in;
		2'b 01 : count_nxt = cnt_dn;
		2'b 10 : count_nxt = cnt_up;
		2'b 11 : count_nxt = count_out;
		default : count_nxt = 9'bX;
	endcase

	parity_out  <= ^count_nxt;
	carry_out   <= up & cnt_up[9];
	borrow_out  <= down & cnt_dn[9];
	count_out   <= count_nxt;
end

endmodule

一個簡單的邏輯電路代碼實現(xiàn),執(zhí)行指令:

read -sv tests/simple/fiedler-cooley.v

讀取verilog文件并用數(shù)字前端描述該電路,結(jié)果如下:

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

?接著執(zhí)行指令:

hierarchy -top up3down5

生成RTL結(jié)構(gòu),結(jié)果如下:

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

?接著執(zhí)行指令:

write_ilang

將設(shè)計寫入Yosys內(nèi)部文件格式,結(jié)果如下:

4. Executing RTLIL backend.
Output filename: <stdout>
# Generated by Yosys 0.17+50 (git sha1 f698a0514, gcc 5.4.0-6ubuntu1~16.04.12 -fPIC -Os)
autoidx 7
attribute \hdlname "\\up3down5"
attribute \top 1
attribute \src "tests/simple/fiedler-cooley.v:3.1-33.10"
module \up3down5
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire $0\borrow_out[0:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire $0\carry_out[0:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire width 10 $0\cnt_dn[9:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire width 10 $0\cnt_up[9:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire width 9 $0\count_nxt[8:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire width 9 $0\count_out[8:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire $0\parity_out[0:0]
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  wire width 9 $1\count_nxt[8:0]
  attribute \src "tests/simple/fiedler-cooley.v:17.11-17.29"
  wire width 10 $add$tests/simple/fiedler-cooley.v:17$3_Y
  attribute \src "tests/simple/fiedler-cooley.v:28.17-28.31"
  wire $and$tests/simple/fiedler-cooley.v:28$5_Y
  attribute \src "tests/simple/fiedler-cooley.v:29.17-29.33"
  wire $and$tests/simple/fiedler-cooley.v:29$6_Y
  attribute \src "tests/simple/fiedler-cooley.v:27.17-27.27"
  wire $reduce_xor$tests/simple/fiedler-cooley.v:27$4_Y
  attribute \src "tests/simple/fiedler-cooley.v:16.11-16.30"
  wire width 10 $sub$tests/simple/fiedler-cooley.v:16$2_Y
  attribute \src "tests/simple/fiedler-cooley.v:9.23-9.33"
  wire output 6 \borrow_out
  attribute \src "tests/simple/fiedler-cooley.v:9.12-9.21"
  wire output 5 \carry_out
  attribute \src "tests/simple/fiedler-cooley.v:6.7-6.12"
  wire input 1 \clock
  attribute \src "tests/simple/fiedler-cooley.v:11.19-11.25"
  wire width 10 \cnt_dn
  attribute \src "tests/simple/fiedler-cooley.v:11.11-11.17"
  wire width 10 \cnt_up
  attribute \src "tests/simple/fiedler-cooley.v:12.11-12.20"
  wire width 9 \count_nxt
  attribute \src "tests/simple/fiedler-cooley.v:8.18-8.27"
  wire width 9 output 7 \count_out
  attribute \src "tests/simple/fiedler-cooley.v:5.13-5.20"
  wire width 9 input 2 \data_in
  attribute \src "tests/simple/fiedler-cooley.v:6.18-6.22"
  wire input 4 \down
  attribute \src "tests/simple/fiedler-cooley.v:9.35-9.45"
  wire output 8 \parity_out
  attribute \src "tests/simple/fiedler-cooley.v:6.14-6.16"
  wire input 3 \up
  attribute \src "tests/simple/fiedler-cooley.v:17.11-17.29"
  cell $add $add$tests/simple/fiedler-cooley.v:17$3
    parameter \A_SIGNED 0
    parameter \A_WIDTH 9
    parameter \B_SIGNED 0
    parameter \B_WIDTH 2
    parameter \Y_WIDTH 10
    connect \A \count_out
    connect \B 2'11
    connect \Y $add$tests/simple/fiedler-cooley.v:17$3_Y
  end
  attribute \src "tests/simple/fiedler-cooley.v:28.17-28.31"
  cell $and $and$tests/simple/fiedler-cooley.v:28$5
    parameter \A_SIGNED 0
    parameter \A_WIDTH 1
    parameter \B_SIGNED 0
    parameter \B_WIDTH 1
    parameter \Y_WIDTH 1
    connect \A \up
    connect \B $add$tests/simple/fiedler-cooley.v:17$3_Y [9]
    connect \Y $and$tests/simple/fiedler-cooley.v:28$5_Y
  end
  attribute \src "tests/simple/fiedler-cooley.v:29.17-29.33"
  cell $and $and$tests/simple/fiedler-cooley.v:29$6
    parameter \A_SIGNED 0
    parameter \A_WIDTH 1
    parameter \B_SIGNED 0
    parameter \B_WIDTH 1
    parameter \Y_WIDTH 1
    connect \A \down
    connect \B $sub$tests/simple/fiedler-cooley.v:16$2_Y [9]
    connect \Y $and$tests/simple/fiedler-cooley.v:29$6_Y
  end
  attribute \src "tests/simple/fiedler-cooley.v:27.17-27.27"
  cell $reduce_xor $reduce_xor$tests/simple/fiedler-cooley.v:27$4
    parameter \A_SIGNED 0
    parameter \A_WIDTH 9
    parameter \Y_WIDTH 1
    connect \A $1\count_nxt[8:0]
    connect \Y $reduce_xor$tests/simple/fiedler-cooley.v:27$4_Y
  end
  attribute \src "tests/simple/fiedler-cooley.v:16.11-16.30"
  cell $sub $sub$tests/simple/fiedler-cooley.v:16$2
    parameter \A_SIGNED 0
    parameter \A_WIDTH 9
    parameter \B_SIGNED 0
    parameter \B_WIDTH 3
    parameter \Y_WIDTH 10
    connect \A \count_out
    connect \B 3'101
    connect \Y $sub$tests/simple/fiedler-cooley.v:16$2_Y
  end
  attribute \src "tests/simple/fiedler-cooley.v:14.1-31.4"
  process $proc$tests/simple/fiedler-cooley.v:14$1
    assign { } { }
    assign { } { }
    assign { } { }
    assign { } { }
    assign { } { }
    assign { } { }
    assign { } { }
    assign $0\cnt_dn[9:0] $sub$tests/simple/fiedler-cooley.v:16$2_Y
    assign $0\cnt_up[9:0] $add$tests/simple/fiedler-cooley.v:17$3_Y
    assign $0\count_nxt[8:0] $1\count_nxt[8:0]
    assign $0\parity_out[0:0] $reduce_xor$tests/simple/fiedler-cooley.v:27$4_Y
    assign $0\carry_out[0:0] $and$tests/simple/fiedler-cooley.v:28$5_Y
    assign $0\borrow_out[0:0] $and$tests/simple/fiedler-cooley.v:29$6_Y
    assign $0\count_out[8:0] $1\count_nxt[8:0]
    attribute \src "tests/simple/fiedler-cooley.v:19.2-25.9"
    switch { \up \down }
      attribute \src "tests/simple/fiedler-cooley.v:0.0-0.0"
      case 2'00
        assign { } { }
        assign $1\count_nxt[8:0] \data_in
      attribute \src "tests/simple/fiedler-cooley.v:0.0-0.0"
      case 2'01
        assign { } { }
        assign $1\count_nxt[8:0] $sub$tests/simple/fiedler-cooley.v:16$2_Y [8:0]
      attribute \src "tests/simple/fiedler-cooley.v:0.0-0.0"
      case 2'10
        assign { } { }
        assign $1\count_nxt[8:0] $add$tests/simple/fiedler-cooley.v:17$3_Y [8:0]
      attribute \src "tests/simple/fiedler-cooley.v:0.0-0.0"
      case 2'11
        assign { } { }
        assign $1\count_nxt[8:0] \count_out
      attribute \src "tests/simple/fiedler-cooley.v:0.0-0.0"
      case 
        assign { } { }
        assign $1\count_nxt[8:0] 9'x
    end
    sync posedge \clock
      update \count_out $0\count_out[8:0]
      update \carry_out $0\carry_out[0:0]
      update \borrow_out $0\borrow_out[0:0]
      update \parity_out $0\parity_out[0:0]
      update \cnt_up $0\cnt_up[9:0]
      update \cnt_dn $0\cnt_dn[9:0]
      update \count_nxt $0\count_nxt[8:0]
  end
end

接下來執(zhí)行指令:

proc; opt

將process轉(zhuǎn)換為網(wǎng)絡(luò)元素并做一些優(yōu)化,結(jié)果如下:

5. Executing PROC pass (convert processes to netlists).

5.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
Cleaned up 0 empty switches.

5.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
Removed 1 dead cases from process $proc$tests/simple/fiedler-cooley.v:14$1 in module up3down5.
Marked 1 switch rules as full_case in process $proc$tests/simple/fiedler-cooley.v:14$1 in module up3down5.
Removed a total of 1 dead cases.

5.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
Removed 0 redundant assignments.
Promoted 7 assignments to connections.

5.4. Executing PROC_INIT pass (extract init attributes).

5.5. Executing PROC_ARST pass (detect async resets in processes).

5.6. Executing PROC_ROM pass (convert switches to ROMs).
Converted 0 switches.
<suppressed ~1 debug messages>

5.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
Creating decoders for process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
     1/1: $1\count_nxt[8:0]

5.8. Executing PROC_DLATCH pass (convert process syncs to latches).

5.9. Executing PROC_DFF pass (convert process syncs to FFs).
Creating register for signal `\up3down5.\count_out' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$12' with positive edge clock.
Creating register for signal `\up3down5.\carry_out' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$13' with positive edge clock.
Creating register for signal `\up3down5.\borrow_out' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$14' with positive edge clock.
Creating register for signal `\up3down5.\parity_out' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$15' with positive edge clock.
Creating register for signal `\up3down5.\cnt_up' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$16' with positive edge clock.
Creating register for signal `\up3down5.\cnt_dn' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$17' with positive edge clock.
Creating register for signal `\up3down5.\count_nxt' using process `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
  created $dff cell `$procdff$18' with positive edge clock.

5.10. Executing PROC_MEMWR pass (convert process memory writes to cells).

5.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
Found and cleaned up 1 empty switch in `\up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
Removing empty process `up3down5.$proc$tests/simple/fiedler-cooley.v:14$1'.
Cleaned up 1 empty switch.

5.12. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.
<suppressed ~1 debug messages>

6. Executing OPT pass (performing simple optimizations).

6.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.

6.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\up3down5'.
<suppressed ~3 debug messages>
Removed a total of 1 cells.

6.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \up3down5..
  Creating internal representation of mux trees.
  Evaluating internal representation of mux trees.
  Analyzing evaluation results.
Removed 0 multiplexer ports.
<suppressed ~1 debug messages>

6.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \up3down5.
Performed a total of 0 changes.

6.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\up3down5'.
Removed a total of 0 cells.

6.6. Executing OPT_DFF pass (perform DFF optimizations).

6.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \up3down5..
Removed 2 unused cells and 10 unused wires.
<suppressed ~5 debug messages>

6.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.

6.9. Rerunning OPT passes. (Maybe there is more to do..)

6.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \up3down5..
  Creating internal representation of mux trees.
  Evaluating internal representation of mux trees.
  Analyzing evaluation results.
Removed 0 multiplexer ports.
<suppressed ~1 debug messages>

6.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \up3down5.
Performed a total of 0 changes.

6.12. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\up3down5'.
Removed a total of 0 cells.

6.13. Executing OPT_DFF pass (perform DFF optimizations).

6.14. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \up3down5..

6.15. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.

6.16. Finished OPT passes. (There is nothing left to do.)

接著執(zhí)行指令

show

可以看到xdot格式的網(wǎng)絡(luò)圖:

集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝

執(zhí)行指令:

techmap; opt

將網(wǎng)絡(luò)表轉(zhuǎn)換為邏輯門,并做一些優(yōu)化,執(zhí)行結(jié)果如下:

10. Executing TECHMAP pass (map to technology primitives).

10.1. Executing Verilog-2005 frontend: /home/joezhoushen/yosys/share/techmap.v
Parsing Verilog input from `/home/joezhoushen/yosys/share/techmap.v' to AST representation.
Generating RTLIL representation for module `\_90_simplemap_bool_ops'.
Generating RTLIL representation for module `\_90_simplemap_reduce_ops'.
Generating RTLIL representation for module `\_90_simplemap_logic_ops'.
Generating RTLIL representation for module `\_90_simplemap_compare_ops'.
Generating RTLIL representation for module `\_90_simplemap_various'.
Generating RTLIL representation for module `\_90_simplemap_registers'.
Generating RTLIL representation for module `\_90_shift_ops_shr_shl_sshl_sshr'.
Generating RTLIL representation for module `\_90_shift_shiftx'.
Generating RTLIL representation for module `\_90_fa'.
Generating RTLIL representation for module `\_90_lcu'.
Generating RTLIL representation for module `\_90_alu'.
Generating RTLIL representation for module `\_90_macc'.
Generating RTLIL representation for module `\_90_alumacc'.
Generating RTLIL representation for module `\$__div_mod_u'.
Generating RTLIL representation for module `\$__div_mod_trunc'.
Generating RTLIL representation for module `\_90_div'.
Generating RTLIL representation for module `\_90_mod'.
Generating RTLIL representation for module `\$__div_mod_floor'.
Generating RTLIL representation for module `\_90_divfloor'.
Generating RTLIL representation for module `\_90_modfloor'.
Generating RTLIL representation for module `\_90_pow'.
Generating RTLIL representation for module `\_90_pmux'.
Generating RTLIL representation for module `\_90_demux'.
Generating RTLIL representation for module `\_90_lut'.
Successfully finished Verilog frontend.

10.2. Continuing TECHMAP pass.
Using extmapper simplemap for cells of type $eq.
Using template $paramod$1e99ce38f701dd11f85f107c1bfc7d0aa5d10769\_90_pmux for cells of type $pmux.
Using extmapper simplemap for cells of type $and.
Using extmapper simplemap for cells of type $logic_not.
Using extmapper simplemap for cells of type $dff.
Running "alumacc" on wrapper $extern:wrap:$sub:A_SIGNED=0:A_WIDTH=9:B_SIGNED=0:B_WIDTH=3:Y_WIDTH=10:394426c56d1a028ba8fdd5469b163e04011def47.
Using template $extern:wrap:$sub:A_SIGNED=0:A_WIDTH=9:B_SIGNED=0:B_WIDTH=3:Y_WIDTH=10:394426c56d1a028ba8fdd5469b163e04011def47 for cells of type $extern:wrap:$sub:A_SIGNED=0:A_WIDTH=9:B_SIGNED=0:B_WIDTH=3:Y_WIDTH=10:394426c56d1a028ba8fdd5469b163e04011def47.
Running "alumacc" on wrapper $extern:wrap:$add:A_SIGNED=0:A_WIDTH=9:B_SIGNED=0:B_WIDTH=2:Y_WIDTH=10:394426c56d1a028ba8fdd5469b163e04011def47.
Using template $extern:wrap:$add:A_SIGNED=0:A_WIDTH=9:B_SIGNED=0:B_WIDTH=2:Y_WIDTH=10:394426c56d1a028ba8fdd5469b163e04011def47 for cells of type $extern:wrap:$add:A_SIGNED=0:A_WIDTH=9:B_SIGNED=0:B_WIDTH=2:Y_WIDTH=10:394426c56d1a028ba8fdd5469b163e04011def47.
Using extmapper simplemap for cells of type $reduce_xor.
Using extmapper simplemap for cells of type $reduce_or.
Using extmapper simplemap for cells of type $mux.
Using template $paramod$9ba033cb42591e01e61f078c95ea0ab8e1e30f70\_90_alu for cells of type $alu.
Using template $paramod$de9286bb3f6c9573089ef1694e580944d318189a\_90_alu for cells of type $alu.
Using extmapper simplemap for cells of type $xor.
Using template $paramod\_90_lcu\WIDTH=32'00000000000000000000000000001010 for cells of type $lcu.
Using extmapper simplemap for cells of type $pos.
Using extmapper simplemap for cells of type $not.
Using extmapper simplemap for cells of type $or.
No more expansions possible.
<suppressed ~384 debug messages>

11. Executing OPT pass (performing simple optimizations).

11.1. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.
<suppressed ~113 debug messages>

11.2. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\up3down5'.
<suppressed ~57 debug messages>
Removed a total of 19 cells.

11.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \up3down5..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

11.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \up3down5.
Performed a total of 0 changes.

11.5. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\up3down5'.
Removed a total of 0 cells.

11.6. Executing OPT_DFF pass (perform DFF optimizations).

11.7. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \up3down5..
Removed 1 unused cells and 145 unused wires.
<suppressed ~2 debug messages>

11.8. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.

11.9. Rerunning OPT passes. (Maybe there is more to do..)

11.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
Running muxtree optimizer on module \up3down5..
  Creating internal representation of mux trees.
  No muxes found in this module.
Removed 0 multiplexer ports.

11.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  Optimizing cells in module \up3down5.
Performed a total of 0 changes.

11.12. Executing OPT_MERGE pass (detect identical cells).
Finding identical cells in module `\up3down5'.
Removed a total of 0 cells.

11.13. Executing OPT_DFF pass (perform DFF optimizations).

11.14. Executing OPT_CLEAN pass (remove unused cells and wires).
Finding unused cells or wires in module \up3down5..

11.15. Executing OPT_EXPR pass (perform const folding).
Optimizing module up3down5.

11.16. Finished OPT passes. (There is nothing left to do.)

基本操作先介紹到這里,后續(xù)會對代碼做詳細解析。文章來源地址http://www.zghlxwxcb.cn/news/detail-425136.html

到了這里,關(guān)于集成電路設(shè)計開源EDA軟件yosys詳解1:工具安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 集成電路CAD課程實驗報告:二輸入與非門電路設(shè)計、版圖設(shè)計與仿真

    集成電路CAD課程實驗報告:二輸入與非門電路設(shè)計、版圖設(shè)計與仿真

    一、實驗?zāi)康模?1、掌握Cadence Virtuoso快捷鍵技巧,學會使用Cadence進行原理圖設(shè)計、版圖設(shè)計、原理圖仿真。 實驗使用AMI 0.6u C5N工藝,了解NCSU Cadence設(shè)計套件(NCSU_Analog_Parts庫)的使用。 實現(xiàn)二輸入與非門電路設(shè)計、版圖設(shè)計與仿真。 實驗步驟: 在庫管理器中添加一個庫,為

    2024年02月04日
    瀏覽(103)
  • 【模擬CMOS集成電路設(shè)計】學習筆記(一)

    ??持續(xù)更新,若有后續(xù)更新,更新鏈接將附于文末,后續(xù)有時間會對內(nèi)容更新。 ??放大器放大的是小信號,只有在特定的靜態(tài)工作點下,小信號放大才有意義,因此一些小信號指標常與某個DC點相關(guān)聯(lián),若小信號幅度超過系統(tǒng)輸入范圍要求,則將會發(fā)生線性失真,合適的

    2024年02月10日
    瀏覽(100)
  • 模擬CMOS集成電路設(shè)計入門學習(6)

    模擬CMOS集成電路設(shè)計入門學習(6)

    共源共柵結(jié)構(gòu)(Cascode) 回顧: 共源級 中晶體管可以將電壓信號轉(zhuǎn)換為電流信號; 共柵級 的輸入信號可以是電流。 將共源級和共柵級進行級聯(lián): ?:輸入器件;:共源共柵器件; {流經(jīng)和的電流相等} (1)分析共源共柵結(jié)構(gòu)的偏置條件 ? ① 為了保證工作在飽和區(qū) ,必須滿

    2024年02月09日
    瀏覽(96)
  • 模擬CMOS集成電路設(shè)計入門學習(3)

    模擬CMOS集成電路設(shè)計入門學習(3)

    共源極 (1)采用電阻負載的共源極 電路的大信號和小信號的特性我們都需要研究。{電路的 輸入阻抗 在 低頻 時非常高} ①從0開始增大, 截止 ,; ②接近時,開始 導通 ,電流流經(jīng)使減?。?③進一步增大,也變大但還小于時,NMOS管仍處于 飽和區(qū) ,直到 即=時( 預夾斷 )

    2024年02月07日
    瀏覽(93)
  • 數(shù)字集成電路后端(Innovus)開發(fā)設(shè)計

    數(shù)字集成電路后端(Innovus)開發(fā)設(shè)計

    一、本文目的是對數(shù)字IC進行: 1、平面規(guī)劃設(shè)計(Floorplanning the Design); 2、電源路徑設(shè)計( Routing Power with Special Route); 3、使用Early Global Router分析路徑(布線)可行性(Analyzing Route Feasibility with the Early Global Router)。 二、設(shè)計過程與結(jié)果: 1、平面規(guī)劃設(shè)計(Floorplanning

    2024年02月05日
    瀏覽(368)
  • 集成電路CAD設(shè)計:CMOS 環(huán)形振蕩器設(shè)計與仿真

    集成電路CAD設(shè)計:CMOS 環(huán)形振蕩器設(shè)計與仿真

    一、目的: 1、掌握Cadence Virtuoso快捷鍵技巧,學會使用Cadence進行原理圖設(shè)計、版圖設(shè)計、原理圖仿真。 2、實驗使用AMI 0.6u C5N工藝,了解NCSU Cadence設(shè)計套件(NCSU_Analog_Parts庫)的使用,學會使用自行設(shè)計的反相器設(shè)計環(huán)形振蕩器。 3、實現(xiàn)CMOS 環(huán)形振蕩器的設(shè)計與仿真。 ?二、

    2023年04月14日
    瀏覽(99)
  • 數(shù)字集成電路設(shè)計(六、Verilog HDL高級程序設(shè)計舉例)

    數(shù)字集成電路設(shè)計(六、Verilog HDL高級程序設(shè)計舉例)

    在我們的數(shù)電,集成電路設(shè)計里面,一定是層次化設(shè)計的 在一個手機芯片的一個部分,寫的硬件描述語言的層次都能達到20幾層,對于這樣的設(shè)計,我i們就能想到采用底層的設(shè)計,中間層的設(shè)計和頂層的設(shè)計。對于小規(guī)模電路,極小規(guī)模電路,通常想的是先有模塊然后去搭一

    2024年04月16日
    瀏覽(97)
  • 【模擬CMOS集成電路設(shè)計】帶隙基準(Bandgap)設(shè)計與仿真

    【模擬CMOS集成電路設(shè)計】帶隙基準(Bandgap)設(shè)計與仿真

    ??此次設(shè)計,未使用運放,使用電流鏡結(jié)構(gòu)為基礎(chǔ)的Bandgap來滿足設(shè)計指標,主要目標是在結(jié)構(gòu)簡單的前提下滿足設(shè)計指標要求。 ??本次設(shè)計指標,如表1所示 ??( 線性調(diào)節(jié)率 指輸出基準電壓隨直流VDD的變化率,電源電壓從電路正常工作的最小電壓起到額定電源電壓為止

    2024年02月13日
    瀏覽(105)
  • 數(shù)字集成電路設(shè)計(四、Verilog HDL數(shù)字邏輯設(shè)計方法)(二)

    數(shù)字集成電路設(shè)計(四、Verilog HDL數(shù)字邏輯設(shè)計方法)(二)

    所有的是時序邏輯電路都可以拆成組合邏輯電路+存儲 (關(guān)于組合邏輯電路的理解可以參考我數(shù)電的博客https://blog.csdn.net/y_u_yu_yu_/article/details/127592466) 可以分成兩個部分,組合邏輯電路和存儲電路。組合邏輯電路的輸入一個是x信號一個是當前的狀態(tài),這兩個信號決定了組合

    2024年02月06日
    瀏覽(128)
  • 集成放大器 電路 分析 設(shè)計過程中的概念和要點

    集成運放的三大特性:虛短、虛斷、??? 和? 虛地 把這幾個特性理解明白了, 后面的電路分析就很容易上手。 虛短:UP=UN,兩輸入端電壓相等。 虛斷:IP=IN=0,兩輸入端的輸入電流為0。 虛地:UP=UN=0,當信號在反向輸入時存在(即信號從負輸入端流進,而正輸入端接地,為

    2024年02月11日
    瀏覽(87)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包