
æè¿ã FPGA / FPGAã®éçºã«é¢ããå€ãã®èšäºãHabrahabrã«æ²èŒãããŸãã ã ããã¯ãååãšä»ã®ãŠãŒã¶ãŒã®çŽæ¥ã®åå ã®äž¡æ¹ã§èµ·ãããŸããã ãã®ãããªèšäºã¯ããã®éçºåéã®æ®åã«è²¢ç®ããŠããã ããŒããŠã§ã¢éçºå šäœã®æ¹åïŒãããŒããŠã§ã¢ããšåŒã°ããïŒã«ãã§ã«å€§ããªé¢å¿ãå¯ããããŠããããšãããããŸãã
ãã®èšäºã§ã¯ã ASICã®éçºã®å®è³ªçã«ãæã€ããã®åéãã«å ¥ãã ASICãããã§ããžã¿ã«ããŒãïŒ IPããã㯠ïŒãäœæããèå³æ·±ãåŽé¢ã«ã€ããŠèª¬æããŸãã ãã®éçºé åã¯ã FPGAãããããã«çããªã£ãŠããŸãã
ASIC ïŒç¹å®çšéåãéç©åè·¯ïŒã¯ãç¹å®ã®åé¡ã解決ããããã«ç¹åããéç©åè·¯ã§ãã
ç§ã®èšäºã§ã¯ã補é ããããããã§æž¬å®ããåã«ããããå ã®åäžã®IPãããã¯ã® æ¶è²»é»åã枬å®ããäžè¬çãªæ¹æ³ã説æããŠããŸãã ãã®ãããªè©äŸ¡ã«ãããåæ段éã§æ¬¡ã®ããšãå¯èœã«ãªããŸãã
- ããžã¿ã«ããŒã¿åŠçã¢ã«ãŽãªãºã ã®ç°ãªãããŒãžã§ã³ãæ¯èŒããŸãã
- æ¶è²»/ããžã¿ã«æ倱ã®åºæºã«åŸã£ãŠãå®è£ ã«æé©ãªãªãã·ã§ã³ãéžæããŸãã
- ç¹å®ã®ãã¯ãããžã«ãã£ãŠãªãªãŒã¹ããããããã§äœæ¥ããå Žåãéåžžã«æ£ç¢ºã«æ°å€ã§æ¶è²»é»åãæšå®ããŸãã
ãã®æ¹æ³ã§ã¯ãããã€ãã®ä»®å®ã䜿çšããŠã HDL ïŒããžã¿ã«åè·¯èšè¿°èšèªïŒã®ã¢ã«ãŽãªãºã ã®ããã€ãã®å®è£ ãéåžžã«æ£ç¢ºã«æ¯èŒã§ããŸãã ç§ãã¡ã®å Žåãããã¯ASICã®æã人æ°ã®ããéçºèšèªã§ããVerilogã«ãªããŸãã
è€æ°ã®å®è£ ãæ¯èŒããããã»ã¹ãé«éåããããã®2ã€ã®ä»®å®ïŒ
- IPãããã¯ã®å®å šãªåæãè¡ã£ãŠæçµçãªã¬ã€ã€ãŒããšã®å®è£ ãååŸããããšã¯ããŸããïŒæ¶è²»ã«ã圱é¿ãããã¹ãŠã®å¯ç容éãå«ãŸããŸãïŒããåæIPãããã¯ã®ããããçæ³çãªã¯ã€ã€è² è·ã¢ãã«ã«å¶éãããŸã ã *絶察æ°ã®ããæ£ç¢ºãªæšå®å€ã¯ãæ¡åŒµå°åœ¢ã¢ãŒãã§ã®åæäžã«åŸãããŸãïŒå±€ç¶åæã䜿çšïŒããçžå¯Ÿæ¯èŒã§ã¯ãããç¡èŠã§ããŸãã
- ã¯ã€ã€ããŒãåæåŸã®ãã·ã¥ã¬ããããªãŒãã®æ¶è²»ãè©äŸ¡ããŠèæ ®ããããšã¯ã§ããŸããã ãããè©äŸ¡ããã«ã¯ãã¯ãªã¹ã¿ã«å ã§å®å šãªé ç·ãè¡ãå¿ èŠããããŸãã åæåè·¯ã§ã¯ãåäœäžã®ãŠãããå šäœã®æ¶è²»ã«æ¯ã¹ãŠããªãã®æ°ã®æ¶è²»ãçºçããå¯èœæ§ããããŸãã ãããããããã¯ã®ç°ãªãå®è£ ãã»ãŒåãããªã¬ãŒé åãšæ¯èŒããå Žåã ããããã¯ããªãŒãã®æ¶è²»ã¯ã»ãŒåãã§ãããšèããããšãã§ããŸãã
æ¶è²»éã枬å®ããããã«å¿ èŠãªãã®ïŒ
- ã¿ãŒã²ãããã¯ãããžã®ã³ã³ããŒãã³ãã®ã©ã€ãã©ãªïŒStandard Cell LibraryïŒïŒ130/90 / 65nmãã¡ãŒã«ãŒãNDAã§æäŸïŒ
- éžæããã³ã³ããŒãã³ãã©ã€ãã©ãªã«åºã¥ããŠVerilogããããããªã¹ããåæããããã°ã©ã
- æ¶è²»éæšå®ããã°ã©ã
- IPãããã¯ã®åäœã¢ãŒããã·ãã¥ã¬ãŒãããŠãã°ãèšé²ããããã°ã©ã ïŒ ãããã¯ã®æ¶è²»éã®çµ±èšçæšå®å€ã§ã¯ãªããåäœã¢ãŒãã§ã®æ¶è²»éã®æ£ç¢ºãªæšå®å€ãååŸãããïŒ
ç¹ã«ã Synopsys DCïŒDesign CompilerïŒã䜿çšããŠæ¶è²»éãåæããã³èšç®ãã Modelsimã䜿çšããŠäœæ¥ãã·ãã¥ã¬ãŒãããåè·¯å ã®ä¿¡å·åãæ¿ãã®æ°ãèšé²ããŸããã åæ§ã®ããŒã¿ãšçµæã¯ãä»ç€Ÿã®ããã°ã©ã ã䜿çšããŠååŸã§ããŸãã
æ¶è²»ãåŸãã«ã¯ã IPãããã¯ã®åæåè·¯ã§1ãã0ããã³0ãã1ã«åãæ¿ããããåæ°ãšèŠçŽ ãç¥ãå¿ èŠããããŸãïŒããžã¿ã«åè·¯ã§ã¯ãèŠçŽ ã¯ããã2ã€ã®ç¶æ ã«ã®ã¿ååšã§ããŸãïŒã ãã¡ãããäœåäœååãæ¿ãããã®æ£ç¢ºãªããŒã¿ãååŸããããšã¯ã§ããŸããããçµ±èšããŒã¿ã«åºã¥ããŠããããèšç®ããŸãïŒãã®ä¿¡å·ã¯å šäœã®10ïŒ ã ããåãæ¿ãããããšèããŸãïŒããæ¶è²»ã®æšå®å€ã¯çµ±èšçã«ãªããŸãã ãŸããæ¯èŒããããã«ãããã€ãã®å®è£ ã®æ£ç¢ºãªæšå®å€ãååŸããå¿ èŠããããŸãã ãããã£ãŠã ãã¹ããã³ãã䜿çšããŠIPãããã¯ã®åäœãã·ãã¥ã¬ãŒããããã¹ãããããããã¯å ã®ãã¹ãŠã®ã¹ã€ããã³ã°èŠçŽ ãèšé²ããŸãã
äŸã䜿çšããŠæ®µéããšã«è©äŸ¡ããã»ã¹ã瀺ããŸã
äŸãšããŠãè©äŸ¡ã®ããã«ã ADC ïŒAnalog-to-Digital ConverterïŒã®åºåããããžã¿ã«ããŒã¿åŠçãŠãããã®ãœãŒã¹ã³ãŒãã䜿çšããŸãã ãã®ã¿ã¹ã¯ã¯ãåŸç¶ã®åŠçã®ããã«ããžã¿ã«ããŠã³ã·ããå€æ ïŒããžã¿ã«åšæ³¢æ°ããŠã³å€æïŒãå®è£ ããããã«ãããžã¿ã«ä¿¡å·åŠçïŒ DSP / DSP ïŒãè¡ãããšã§ãã ãã®äŸã䜿çšããŠã Verilog / VHDLã§èšè¿°ãããIPãããã¯ã®æ¶è²»çµæãååŸã§ããæé ãé çªã«èª¬æããŸãã *äŸã®äžéšã®ååã¯ãåè¿°ã®ããžã¿ã«ãããã¯ã®ãœãŒã¹ã³ãŒãããã®ãŸãŸã¬ã€ã¢ãŠãã§ããªãããã«å€æŽãããŠããŸãã
ããŸããŸãªIPãããã¯å®è£ ã®ãã¹ãããã»ã¹ãèªååããããã«ã次ã®3段éã§é çªã«å®è¡ãããã¹ã¯ãªãããäœæããŸããã
- ã¿ãŒã²ãããã¯ãããžã®IPãããã¯ã®åæïŒãã®å Žåã TSMC 90nmã®åæãã©ã€ãã©ãªïŒå žåïŒ
- åæãããèšè¿°ã®ã·ãã¥ã¬ãŒã·ã§ã³ã®å®è¡ïŒ ããããªã¹ã ïŒ
- ã·ãã¥ã¬ãŒã·ã§ã³ããåéãããã¹ã€ããã³ã°ããŒã¿ã«åºã¥ãæ¶è²»éã®èšç®ã
ãããŠä»ã枬å®ããã»ã¹èªäœã段éçã«è¡ããçµæãã³ã¡ã³ãä»ãã§
ããã»ã¹ãèªååããããã«è¡ãããããã«ãåã¹ããŒãžã§ã¹ã¯ãªããå ã®ã³ãã³ããéžæããããã³ãã³ãã«åŸã£ãŠããããé£ç¶ããŠå®è¡ã§ããŸãã
æåã®æ®µéã®Run_srsã¹ã¯ãªããïŒDesign CompilerïŒïŒ
saif_map -start
read_verilogã/ srs / ddc_notch.v
read_verilogã/ srs / ddc_qnt3b.v
read_verilogã/ srs / ddc_intp.v
read_verilogã/ srs / ddc_qsr0.v
read_verilogã/ srs / ddc_qsr1.v
read_verilogã/ srs / ddc_lpf0.v
read_verilogã/ srs / ddc_qsr_lpf1.v
read_verilogã/ srs / ddc_reg.v
read_verilogã/ srs / ddc_top.v
current_design ddc_top
create_clock clk_ddc-ããªãªã20
set_clock_uncertainty 0.15 [all_clocks]
ã³ã³ãã€ã«-gate_clock
change_names -rules verilog -hierarchy
write -format verilog -hierarchy -output ddc_top.v
write -format ddc -hierarchy -output ddc_top.ddc
report_area -hierarchy> ./log/area_ddc.rpt
åºã
read_verilogã/ srs / ddc_notch.v
read_verilogã/ srs / ddc_qnt3b.v
read_verilogã/ srs / ddc_intp.v
read_verilogã/ srs / ddc_qsr0.v
read_verilogã/ srs / ddc_qsr1.v
read_verilogã/ srs / ddc_lpf0.v
read_verilogã/ srs / ddc_qsr_lpf1.v
read_verilogã/ srs / ddc_reg.v
read_verilogã/ srs / ddc_top.v
current_design ddc_top
create_clock clk_ddc-ããªãªã20
set_clock_uncertainty 0.15 [all_clocks]
ã³ã³ãã€ã«-gate_clock
change_names -rules verilog -hierarchy
write -format verilog -hierarchy -output ddc_top.v
write -format ddc -hierarchy -output ddc_top.ddc
report_area -hierarchy> ./log/area_ddc.rpt
åºã
æ¶è²»éèšç®ã®ååäžèŽãã°ãæå¹ã«ãã
saif_map -start
ãœãŒã¹ã³ãŒããã³ã³ãã€ã«ããŸã
read_verilog ~/srs/ddc_notch.v read_verilog ~/srs/ddc_qnt3b.v read_verilog ~/srs/ddc_intp.v read_verilog ~/srs/ddc_qsr0.v read_verilog ~/srs/ddc_qsr1.v read_verilog ~/srs/ddc_lpf0.v read_verilog ~/srs/ddc_qsr_lpf1.v read_verilog ~/srs/ddc_reg.v read_verilog ~/srs/ddc_top.v current_design ddc_top
现æåŠçã®èšå®ïŒ å¶çŽ ïŒã®ã¿ãæå®ããã ãã§ååã§ãã ãã®ãããªèšå®ã®è€éãªãããã¯ã®å Žåã¯ãå€ããæå®ããŠãåæåŸã®çµæãæåŸ ã©ããã«ãªãããã«ããå¿ èŠããããŸãã
create_clock clk_ddc -period 38.46 set_clock_uncertainty 0.15 [all_clocks]
gate_clockãã©ã¡ãŒã¿ãŒã®ã¿ã§ã³ã³ãã€ã«ããŸããããã«ãããåæäžã«ãããã¯ã·ã£ããããŠã³åè·¯ãèªåçã«æ¿å ¥ã§ããŸãïŒFFãã¢ã¯ãã£ãã§ãªãå ŽåïŒããªãããããã/ã¬ãžã¹ã¿ãŒïŒã Verilogã®ã¬ãžã¹ã¿ãŒèšè¿°ã«é¢ããç¹å®ã®ã«ãŒã«ã«åŸããŸãïŒã ããã¯ã ASICã®åè·¯ã®ã¢ã¯ãã£ãæ¶è²»ãåæžããæãéèŠãªæ¹æ³ã§ãïŒ
compile -gate_clock
第2段éãšç¬¬3段éã®åæçµæãæžããŸã
change_names -rules verilog -hierarchy write -format verilog -hierarchy -output ddc_top.v write -format ddc -hierarchy -output ddc_top.ddc ddc_top.ddc â , . ddc_top.v â Verilog netlist
2çªç®ã®ã¹ããŒãžã®vsim.doã¹ã¯ãªããïŒModelsimã§ã®ãã°ã®ã·ãã¥ã¬ãŒã·ã§ã³ãšåãæ¿ãïŒ
vlibã®ä»äº
vmap work work
vlog -work workã/ work / tsmc090.v
vlog -work workã/ work / ddc_top.v
vlog -work workã/ work / tb.v
vsim + notimingchecks -novopt work.tb + nowarn3017 + nowarn3722
90usãå®è¡
power add -r tb / ddc_top / *
200usãå®è¡
é»åã¬ããŒã-all -bsaif saif.saif
åºã
vmap work work
vlog -work workã/ work / tsmc090.v
vlog -work workã/ work / ddc_top.v
vlog -work workã/ work / tb.v
vsim + notimingchecks -novopt work.tb + nowarn3017 + nowarn3722
90usãå®è¡
power add -r tb / ddc_top / *
200usãå®è¡
é»åã¬ããŒã-all -bsaif saif.saif
åºã
ã³ã³ãã€ã«ããŠã·ãã¥ã¬ãŒãããã©ã€ãã©ãªãäœæããŸã
vlib work vmap work work
æåã®æ®µéã§åæãããããããªã¹ã ïŒddc_top.vïŒãã·ãã¥ã¬ãŒã·ã§ã³çšã®TSMC 90nmèŠçŽ ã©ã€ãã©ãªïŒtsmc090.vïŒããã³ãã¹ããã³ã ïŒtbïŒãã³ã³ãã€ã«ããŸãã
vlog -work work ~/work/tsmc090.v vlog -work work ~/work/ddc_top.v vlog -work work ~/work/tb.v
ãã¹ããã³ãã®Verilogã³ãŒãïŒtb.vïŒ
`timescale 1ps/1ps module tb; reg clk_ddc; reg rstz_ddc; reg in_valid; reg [2:0] in_i; reg [2:0] in_q; reg [2:0] i_temp; reg [2:0] q_temp; always @(posedge clk_ddc) if (~rstz_ddc) i_temp <= 'd0; else if (in_valid) i_temp <= $random % 8; always @(posedge clk_ddc) if (~rstz_ddc) q_temp <= 'd0; else if (in_valid) q_temp <= $random % 8; always @* case (i_temp) 3'd0: in_i = 4'b001; 3'd1: in_i = 4'b001; 3'd2: in_i = 4'b010; 3'd3: in_i = 4'b011; 3'd4: in_i = 4'b100; 3'd5: in_i = 4'b101; 3'd6: in_i = 4'b110; default:in_i= 4'b111; endcase always @* case (q_temp) 3'd0: in_q = 4'b001; 3'd1: in_q = 4'b001; 3'd2: in_q = 4'b010; 3'd3: in_q = 4'b011; 3'd4: in_q = 4'b100; 3'd5: in_q = 4'b101; 3'd6: in_q = 4'b110; default:in_q= 4'b111; endcase initial clk_ddc = 'd0; always #19230 clk_ddc = ~clk_ddc; //26 Mhz always @(posedge clk_ddc) if (~rstz_ddc) in_valid <= 'd0; else in_valid <= 'd1; initial begin rstz_ddc = 'd0; #80000; @(posedge clk_ddc); rstz_ddc = 'd1; @(posedge clk_ddc); @(posedge clk_ddc); #50000000; $display ($time); #50000000; $display ($time); #50000000; $display ($time); #400000000; end ddc_top ddc_top ( .clk_ddc ( clk_ddc ), .rstz_ddc ( rstz_ddc ), // APB .clk_apb ( 1'd0 ), .reg_adr ( 10'd0 ), .reg_we ( 1'd0 ), .reg_wd ( 32'd0 ), .reg_rd ( reg_rd ), .ddc_qi ( {in_q,in_i} ), .ddc_in_valid ( in_valid ), .ddc_out_i ( ), .ddc_out_q ( ), .ddc_out_valid ( ) );
æåã«ã©ã³ãã ã«çæãããå ¥åããŒã¿ãå ¥åããå®éã®å ¥åä¿¡å·ãã·ãã¥ã¬ãŒãããã¢ãã«ããã®ããŒã¿ã§ã¯ãªãããšã«æ³šæããŠãã ããã ãã®ã±ãŒã¹ã§ã¯ããã€ãºäžã®ä¿¡å·ã®ããžã¿ã«åè·¯ã®æ¶è²»éã枬å®ããããšã¯åçã§ãã å®éãå®éã®å ¥åä¿¡å·ã¯ããã¯ã€ããã€ãºãïŒã©ã³ãã ãžã§ãã¬ãŒã¿ãŒã®åäžãªååžïŒã§ãã æ£ç¢ºã«ã¯ãéãããä¿¡å·åž¯åå¹ ãšã¢ããã°å ¥åã¢ã³ãã®åœ±é¿ã«ããçæ³çã«ã¯ãçœãã§ã¯ãããŸããããããã¯äžè¬ã«ã·ãã¥ã¬ãŒã·ã§ã³ãšæ¶è²»æž¬å®ã®çµæã«åœ±é¿ããŸããã
æ£ç¢ºãªãã°èšé²ã®ããã«æé©åããã«ã TSMCã©ã€ãã©ãªããæéé¢ä¿ããã§ãã¯ããã«ã·ãã¥ã¬ãŒã·ã§ã³ãéå§ããŸãïŒç¹å®ã®èŠåã©ã€ãã©ãªãé衚瀺ã«ããŸãïŒã
vsim +notimingchecks -novopt work.tb +nowarn3017 +nowarn3722
æ確ã«ããããã«åæåæåãã¹ããã
run 90us
ãããŠããããã¯å ã®ãã¹ãŠã®ä¿¡å·ã®ãã®ã³ã°ãéå§ããŸã
power add -r tb/ddc_top/*
åäœã¢ãŒãã§200mksã®ããŒã¿ãåéããŸã
run 200us
ãããŠãåéãããããŒã¿ãã¹ã€ããã³ã°ã¢ã¯ãã£ããã£äº€æ圢åŒïŒSAIFïŒåœ¢åŒã§ãã¡ã€ã«ã«æžã蟌ã¿ã3çªç®ã®æ®µéã§äœ¿çšããŸãã
power report -all -bsaif saif.saif
saifãã¡ã€ã«ã®ãµã³ãã«ããŒã¿ããŒã
ãã¹ãäžã«ç¹å®ã®å
éšããããªã¹ãä¿¡å·ãåãæ¿ããããåæ°ã瀺ããŸãã
ïŒã€ã³ã¹ã¿ã³ã¹dff_20_reg_6_ NET ïŒãã©ã°ïŒT0 0ïŒïŒT1 2,000,000,000ïŒïŒTX 0ïŒïŒTC 0ïŒïŒIG 0ïŒïŒ ïŒn0ïŒT0 100534440ïŒïŒT1 99465560ïŒïŒTX 0ïŒïŒTC 1324ïŒïŒIG 0ïŒïŒ ïŒclkïŒT0 150002000ïŒïŒT1 49998000ïŒïŒTX 0ïŒïŒTC 5200ïŒïŒIG 0ïŒïŒ ïŒxRNïŒT0 0ïŒïŒT1 2,000,000,000ïŒïŒTX 0ïŒïŒTC 0ïŒïŒIG 0ïŒïŒ ïŒxSNïŒT0 0ïŒïŒT1 2,000,000,000ïŒïŒTX 0ïŒïŒTC 0ïŒïŒIG 0ïŒïŒ
第3段éã®ã¹ã¯ãªããã®å®è¡ïŒDesign Compilerã®saifããŒã¿ããŒã¹ã«åºã¥ãããããã¯æ¶è²»ã®æž¬å®ïŒ
read_ddc ./ddc_top.ddc
current_design ddc_top
read_saif -input ./saif.saif -instance tb / ddc_top
report_power -hierarchy -levels 1 -analysis_effort high> ./log/power_ddc.rpt
report_saif
current_design ddc_top
read_saif -input ./saif.saif -instance tb / ddc_top
report_power -hierarchy -levels 1 -analysis_effort high> ./log/power_ddc.rpt
report_saif
åææžã¿ã®ããããªã¹ãçšã«ä»¥åã«ä¿åããããŒã¿ããŒã¹ãèªã¿åãã以åã«ååŸãããµã€ããæ¥ç¶ããŸã
read_ddc ./ddc_top.ddc current_design ddc_top read_saif -input ./saif.saif -instance tb/ddc_top
æ¶è²»é»åã®æž¬å®ãéå§ãããã¡ã€ã«ã«æžã蟌ã¿ãŸã
report_power -hierarchy -levels 1 -analysis_effort high > ./log/power_ddc.rpt
ãã¹ãŠã®å éšä¿¡å·ãæ£ããæ¯èŒãããæ¶è²»ã®åæã§èæ ®ãããŠããããšã確èªããŸãã ãŸããåæã«ãsaifãã¡ã€ã«ã§ã¹ã€ããã³ã°çµ±èšãèŠã€ããããšãã§ããªãä¿¡å·ã¯ãããŸããã§ããïŒã¿ãŒã²ããã©ã€ãã©ãªã®åæããããªã¹ãã§ã¯ãªãããœãŒã¹Verilogãã·ãã¥ã¬ãŒããããšãä¿¡å·ã®50ïŒ ã§æ©èœããŸãïŒã
report_saif
ãã®äŸã®ãã®ã³ãã³ãã®ã¬ããŒãã
-------------------------------------------------- ------------------------------ äŒæããããŠãŒã¶ãŒã®ããã©ã«ã ãªããžã§ã¯ãã¿ã€ã泚éä»ãïŒïŒ ïŒã¢ã¯ãã£ããã£ïŒïŒ ïŒã¢ã¯ãã£ããã£ïŒïŒ ïŒåèš -------------------------------------------------- ------------------------------ ããã2029ïŒ100.00ïŒ ïŒ0ïŒ0.00ïŒ ïŒ0ïŒ0.00ïŒ ïŒ2029 ããŒã655ïŒ100.00ïŒ ïŒ0ïŒ0.00ïŒ ïŒ0ïŒ0.00ïŒ ïŒ655 ãã³7492ïŒ100.00ïŒ ïŒ0ïŒ0.00ïŒ ïŒ0ïŒ0.00ïŒ ïŒ7492 -------------------------------------------------- ------------------------------
ãããŠä»ãããªãã¯1ã€ã®ã³ãã³ãã§3ã€ã®ã¹ã¯ãªãããã¹ãŠãé£ç¶ããŠå®è¡ãããã®äŸã§äœãèµ·ãã£ãã®ããèŠãããšãã§ããŸã
dc_shell source ./run_srs ; vsim do ./vsim.do ; dc_shell source ./run
æçµå ±åæžã¯ãã¡ã
Library(s) Used: typical (File: ~/lib/lib90nm/typical.db) Power-specific unit information : Voltage Units = 1V Capacitance Units = 1.000000pf Time Units = 1ns Dynamic Power Units = 1mW (derived from V,C,T units) Leakage Power Units = 1pW -------------------------------------------------------------------------------- Switch Int Leak Total Hierarchy Power Power Power Power % -------------------------------------------------------------------------------- ddc_top 6.60e-02 0.315 1.10e+08 0.491 100.0 r313 (ddc_top_DW01_inc_0) 0.000 0.000 1.40e+05 1.40e-04 0.0 ddc_reg (ddc_reg) 0.000 1.27e-03 3.78e+06 5.06e-03 1.0 ddc_intp (ddc_intp) 8.41e-03 3.34e-02 5.75e+06 4.76e-02 9.7 ddc_qnt3b (ddc_qnt3b) 2.59e-03 9.17e-03 2.20e+06 1.40e-02 2.8 ddc_qsr_lpf1(ddc_qsr_lpf1) 2.44e-02 0.110 1.54e+07 0.150 30.4 ddc_notch3 (ddc_notch_1) 1.75e-03 8.81e-03 1.05e+07 2.11e-02 4.3 ddc_notch2 (ddc_notch_2) 1.69e-03 8.81e-03 1.05e+07 2.10e-02 4.3 ddc_notch1 (ddc_notch_3) 1.69e-03 8.81e-03 1.05e+07 2.10e-02 4.3 ddc_notch0 (ddc_notch_0) 2.16e-03 9.98e-03 1.05e+07 2.27e-02 4.6 ddc_qsr1 (ddc_qsr1) 1.46e-03 2.98e-03 4.32e+05 4.86e-03 1.0 ddc_lpf0_q (ddc_lpf0_1) 9.79e-03 5.75e-02 3.80e+06 7.11e-02 14.5 ddc_lpf0_i (ddc_lpf0_0) 1.06e-02 6.05e-02 3.90e+06 7.50e-02 15.3 ddc_qsr0 (ddc_qsr0) 1.33e-03 2.68e-03 2.34e+05 4.24e-03 0.9
ç·æ¶è²»éã¯3ã€ã®èŠçŽ ã§æ§æãããŸãã
- ã»ã«æŒãé»å -æŒãé»æµã çç£æè¡ïŒ90/65 / 28nmïŒããã³åè·¯ã®åäœæ¡ä»¶ïŒæž©åºŠ/é»å§ïŒã«äŸåããéçã³ã³ããŒãã³ãã èšç®å€ã¯ãããã¯é¢ç©ã«æ¯äŸããŸãã
- ã»ã«å éšé»å -ã©ã€ãã©ãªã³ã³ããŒãã³ãã®å ¥å/åºåã®ç¶æ ãå€åãããšãã«çºçããé»æµïŒ ã»ã« -äŸïŒè«çããŸãã¯ãORX2ãDFFããªã¬ãŒïŒã åçã³ã³ããŒãã³ãã
- æ£å³ã¹ã€ããã³ã°é»å - ã¹ã€ããã³ã°æã®ã³ã³ããŒãã³ãã®åºå容éã®åå é»ã«é¢é£ããé»æµã åçã³ã³ããŒãã³ãã
ãã®äŸã§ã¯ã26 MHzã®ã¯ãããã³ã°ã§ãããžã¿ã«åŠçãŠããããã¢ã¯ãã£ãã¢ãŒãã§90 nmã§491ÎŒAãæ¶è²»ãããšããçµæãåŸãããŸããã
次ã®èšäºã§ã¯ãFPGAã«å®è£ ãããåãIPãããã¯ã®æ¶è²»éãåæã§ããŸãã ãã®ããã ã¢ã«ãã©/ã¶ã€ãªã³ã¯ã¹/ Microsemiã®åã¡ãŒã«ãŒã¯ãCADïŒã³ã³ãã¥ãŒã¿ãŒæ¯æŽèšèšïŒã·ã¹ãã ã®äžéšãšããŠç¹æ®ãªããã°ã©ã ãçšæããŠããŸãã ç¹ã«ãã¢ã«ãã©ã«ã¯PowerPlay Power AnalysisãšåŒã°ãããã®éšåããããããã«ããFPGAã«ã€ããŠäžèšã®ããã»ã¹ãå€§å¹ ã«èªååã§ããŸãã FPGAã® IPãããã¯ããããã°ã©ã ãããæ©èœã«ã¯ãæ¶è²»éãå€§å¹ ã«å¢å ãããšãã圢ã§æ確ãªãã€ãã¹èŠçŽ ãããããšãããç¥ãããŠããŸãã ASIC 90nmãš28nmãã¯ãããžãŒã䜿çšããææ°ã®FPGAã§åãIPãããã¯ã®å®è£ ãæ¯èŒãããšãæ¶è²»éã®å·®ã¯æ°ååã«éããå¯èœæ§ããããŸãã