µÚÁù²½£ºÑ¡Ôñ Edit=>Search ,µã»÷ Add Criteria ,ÈçÏÂÉèÖã¬Ñ¡Ôñaplly £¬ÔÚÑ¡Ôñ Replace All¡£
µÚÆß²½£º±£´æÍ˳ö
µÚ°Ë²½£º´ò¿ª abstract£¬²¢´ò¿ªmux¿â¡£È»ºó°ÑmuxÄ£¿é´Ócoreµ¼Èëµ½blockµ±ÖУ¬·½·¨£ºµã»÷mux£¬È»ºócell=>move=>block=>OK¡£
µÚ¾Å²½£ºµã»÷GDSͼÖÐlabel£¬È»ºóµã»÷Q²é¿´Properity¡£¿´¿´ÊÇʲô²ã£¬È»ºó¿´¿´ÏÂÃæµÄ
netµÄProperityÊÇʲô²ã£¬ÒÔ¼°ÊÇʲôpurpose¡£pin¡£¾ßÌ庬ÒåÖ÷Òª¿´abstract UG¡£
<1> µã»÷
£¬ÊäÈëMap text labels to pins
²ã£ºMETAL3£¬Purpose£º
Map text labels to pins µÄÊéд¸ñʽ¼°º¬Òå²Î¿¼abstract UG¡£
<2>µã»÷
<3>µã»÷
<4> Export lef
<5>²é¿´abstract.lefÀïÃæÓÐûÓÐVDDºÍVSS
Ö®ºóÎÒÃǵõ½Ò»¸ö¸ÃÄ£¿éµÄlefÎļþ£¬ÏÂÃæÎÒÃǾÍÓÃÕâ¸öÄ£¿é×öÒ»´Îµ÷Óá£
9½«´Ëmacro×÷Ϊһ¸öÄ£¿éÔÚÁíÍâÒ»¸ötopÉè¼ÆÖнøÐе÷Óá£
µÚÒ»²½£ºÊ×ÏÈÎÒÃÇ»¹Êǻص½×ۺϣ¬ÎÒÃÇÖØÐÂÉè¼ÆÒ»¸ötop£¬Õâ¸ötop½«°üº¬ÐµÄÂß¼¹¦ÄÜ£¬Ö®Ç°µÄmuxÄ£¿é£¬»¹ÓÐPADÄ£¿é¡£Õâ¸öÉè¼ÆµÄ´ó¸Å¿òͼÈçÏ£º
PDIDGZΪÊý×ÖÊäÈëIO¿Ú PDO04CDGΪÊý×ÖÊä³öIO¿Ú PVDD1DGZ Ϊ¹©µçPAD¸ßµç¶Ë PVSS1DGZ Ϊ¹©µçPADµÄµØµç¶Ë MultipleΪ֮ǰ×öµÄºêÄ£¿é MuxΪмÓÂß¼
µÚ¶þ²½£¬´úÂëµÄ¸Äд£º
ÎÒÃÇÖØÐ±àд¹ýverilog´úÂ루´øPAD£©£¬´øPAD×ö×ÛºÏÓиöºÃ´¦£¬¿ÉÒÔ²»ÓÃÉèÖÃÊäÈëÊä³ö¶Ë¿ÚµÄÇý¶¯£¬ÒòΪPADµÄÇý¶¯ÒѾºÜ´óÁË£¬ÕâÑù×ۺϳöµÄ½á¹û¸ü½Ó½üʵ¼Ê¡£ еÄverilog´úÂëÈçÏ£º
module mux_1 (clk,clr,a,b,y);//£¨ÕâÀïÎÒÃÇÒýÓÃÁËеÄÂß¼£¬×¢ÒâÕâ¸ömux_1ºÍ֮ǰµÄû°ëµã¹ØÏµ£¬Ö»ÊÇΪÁËÌåÏÖµ÷ÓùØÏµËæ±ã¼ÓµÄÒ»¸ö¶øÒÑ£© input clk,clr; input [7:0] a,b; output [15:0] y; reg [15:0] y;
always @(posedge clk) begin
if(!clr)
begin
y<=0; end else begin
y<=a*b; end end
endmodule module
PAD(clk_pcb,clk_core,clr_pcb,clr_core,data1_pcb,data1_core,data2_pcb,data2_core,dataout_core,dataout_pcb);£¨ÕâÊÇPADÄ£¿é£¬×¢Òâ½áºÏÇ°ÃæµÄ¿òͼÊÇÏëÏëÊÇÈçºÎ¼ÓµÄ£© input clk_pcb,clr_pcb; output clk_core ,clr_core;
input [7:0] data1_pcb,data2_pcb; output [7:0] data1_core,data2_core; input [15:0] dataout_core; output [15:0] dataout_pcb;
PDIDGZ PAD_CLK (.PAD(clk_pcb),.C(clk_core)); PDIDGZ PAD_CLR (.PAD(clr_pcb),.C(clr_core));
PDIDGZ PAD_DATA1_0 (.PAD(data1_pcb[0]),.C(data1_core[0])); PDIDGZ PAD_DATA1_1 (.PAD(data1_pcb[1]),.C(data1_core[1])); PDIDGZ PAD_DATA1_2 (.PAD(data1_pcb[2]),.C(data1_core[2])); PDIDGZ PAD_DATA1_3 (.PAD(data1_pcb[3]),.C(data1_core[3])); PDIDGZ PAD_DATA1_4 (.PAD(data1_pcb[4]),.C(data1_core[4])); PDIDGZ PAD_DATA1_5 (.PAD(data1_pcb[5]),.C(data1_core[5])); PDIDGZ PAD_DATA1_6 (.PAD(data1_pcb[6]),.C(data1_core[6])); PDIDGZ PAD_DATA1_7 (.PAD(data1_pcb[7]),.C(data1_core[7])); PDIDGZ PAD_DATA2_0 (.PAD(data2_pcb[0]),.C(data2_core[0])); PDIDGZ PAD_DATA2_1 (.PAD(data2_pcb[1]),.C(data2_core[1])); PDIDGZ PAD_DATA2_2 (.PAD(data2_pcb[2]),.C(data2_core[2])); PDIDGZ PAD_DATA2_3 (.PAD(data2_pcb[3]),.C(data2_core[3])); PDIDGZ PAD_DATA2_4 (.PAD(data2_pcb[4]),.C(data2_core[4])); PDIDGZ PAD_DATA2_5 (.PAD(data2_pcb[5]),.C(data2_core[5])); PDIDGZ PAD_DATA2_6 (.PAD(data2_pcb[6]),.C(data2_core[6])); PDIDGZ PAD_DATA2_7 (.PAD(data2_pcb[7]),.C(data2_core[7]));
PDO04CDG PAD_DATAOUT_0 (.I(dataout_core[0]),.PAD(dataout_pcb[0])); PDO04CDG PAD_DATAOUT_1 (.I(dataout_core[1]),.PAD(dataout_pcb[1])); PDO04CDG PAD_DATAOUT_2 (.I(dataout_core[2]),.PAD(dataout_pcb[2])); PDO04CDG PAD_DATAOUT_3 (.I(dataout_core[3]),.PAD(dataout_pcb[3])); PDO04CDG PAD_DATAOUT_4 (.I(dataout_core[4]),.PAD(dataout_pcb[4])); PDO04CDG PAD_DATAOUT_5 (.I(dataout_core[5]),.PAD(dataout_pcb[5])); PDO04CDG PAD_DATAOUT_6 (.I(dataout_core[6]),.PAD(dataout_pcb[6]));