Synplicity 培训以及试验相关资料(PDF 107).pdf
《Synplicity 培训以及试验相关资料(PDF 107).pdf》由会员分享,可在线阅读,更多相关《Synplicity 培训以及试验相关资料(PDF 107).pdf(107页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1Advanced Synthesis with the Synplify ProToolWinter/Spring 20032Course OutlineCourse Outline?Introduction?HDL Coding for PerformanceLab 1?Technology Independent Attributes?Technology Specific AttributesLab 3?Advanced Synthesis Topics for Altera CPLD?Complex Clocking?RetimingLab 2Lab 4Lab 5?Advanced
2、Synthesis Topics for Xilinx FPGA?MultiPoint Synthesis Flow23IntroductionIntroductionIntroduction?Introduction?HDL Coding for Performance4Synplicity s SolutionsSynplicity s SolutionsCertifyAmplifyPhysical OptimizerSynplify Proand SynplifySynplify ASICASICsolutionsFPGAsolutionsbrings leading-edgelogic
3、 synthesisandverificationproductsto FPGAand ASICdesignersSynplicityIntroduction35FPGA Product Line OverviewFPGA Product Line OverviewSynplifyPro ToolChallenging DesignsComplex ProjectsThe Ultimate in FPGA SynthesisSynplify ToolFastEasy to UseExcellent ResultsAmplify Physical Optimizer Physical Synth
4、esis for FPGAsHighest Circuit PerformanceFastest Timing ClosureOption to Synplify ProIntroduction6FPGA Synthesis with the Synplify Pro ToolFPGA Synthesis with the Synplify Pro Tool?Ultra Fast?B.E.S.T.TMalgorithms?Easy to Use?Language sensitive Text Editor?HDL Analysttool?S.C.O.P.E.?Excellent Results
5、?Timing-driven?Direct mapping to technology-specific primitivesIntroductionMarket Leader in FPGA Synthesis47Getting HelpGetting Help?Online Help?Select Help-Help,or F1 function key from the Synplify Pro UI?Synplify Pro User Guide?Pdf file found in/docs?Synplify Pro Reference Guide?Pdf file found in/
6、docs?Synplicity Support?SynplifyOnline SupportSOS and Synplify Newsgroup?http:/ First Level Support?Can be accessed from S.O.S?Send email to ?Call the Technical Support Hotline at(408)215-6000Introduction8HDL Coding for PerformanceHDL Coding for Performance?Introduction?HDL Coding for PerformanceHDL
7、 Coding Techniques for Performance59OverviewOverview?Discuss various HDL coding issues that affect performance?Shared Expressions?Shannon Expansion?Operand Reordering?Priority Encoding?Parallel Case?RAM Inferencing?Other coding issues?Latch Generation?Sensitivity ListHDL Coding Techniques for Perfor
8、mance10Common Boolean ExpressionsCommon Boolean Expressions?Definition?Share identical boolean(sub-)expressions(&,|,)?Pros and Cons?Saves Area?Done automatically?Generally have minimal timing impact?Some situations require source code changes?manual replication?When to use it?Share common expression
9、s to save area(automatic)?Manually replicate expressions to control loading?Large number of loads within a black box?Reduce loading on a critical pathHDL Coding Techniques for Performance611Common Boolean ExpressionsCommon Boolean Expressions?Example?Design details?Goal:meet load restriction of 10?D
10、esign has two black boxes,each with 8 loads on the en input?The Synplify Pro tool does not know about loading within the black boxes?Original Design?a_en and b_en were shared,resulting in 16 loads on en?Fixed Design?Manually forced the a_en and b_en to remain separate?Each enable signal drive only o
11、ne black box(8 loads)HDL Coding Techniques for Performance12Common Boolean ExpressionsCommon Boolean Expressionsmodule bb_load(a1,a2,b1,b2,opcode,clk,rst,a_out,b_out);input clk,rst;input 3:0 opcode;input 7:0 a1,a2,b1,b2;output 7:0 a_out,b_out;reg 7:0 a1_reg,a2_reg,b1_reg,b2_reg;wire 3:0 a_opcode;wir
12、e 3:0 b_opcode;wire a_en;wire b_en;always(posedge clk or negedge rst)if(!rst)begina1_reg=8h00;a2_reg=8h00;b1_reg=8h00;b2_reg=8h00;endelse begina1_reg=a1;a2_reg=a2;b1_reg=b1;b2_reg=b2;endassign a_opcode=opcode;assign b_opcode=opcode;assign a_en=(a_opcode=4b1011)?1b1:1b0;assign b_en=(b_opcode=4b1011)?
13、1b1:1b0;function_a bb_A(a1_reg,a2_reg,a_en,a_out);function_b bb_B(b1_reg,b2_reg,b_en,b_out);endmodulemodule function_a(in1,in2,en,out)/*synthesis syn_black_box*/;input en;input 7:0 in1,in2;output 7:0 out;endmodulemodule function_b(in1,in2,en,out)/*synthesis syn_black_box*/;input en;input 7:0 in1,in2
14、;output 7:0 out;endmodulea_en being shared between function_a and function_b,causing load on it to be(8+8)=16HDL Coding Techniques for Performance713Common Boolean ExpressionsCommon Boolean Expressionsmodule function_a(in1,in2,en,out)/*synthesis syn_black_box*/;input en;input 7:0 in1,in2;output 7:0
15、out;endmodulemodule function_b(in1,in2,en,out)/*synthesis syn_black_box*/;input en;input 7:0 in1,in2;output 7:0 out;endmodulemodule bb_load(a1,a2,b1,b2,opcode,clk,rst,a_out,b_out);input clk,rst;input 3:0 opcode;input 7:0 a1,a2,b1,b2;output 7:0 a_out,b_out;reg 7:0 a1_reg,a2_reg,b1_reg,b2_reg;wire 3:0
16、 a_opcode/*synthesis syn_keep=1*/;wire 3:0 b_opcode/*synthesis syn_keep=1*/;wire a_en;wire b_en;always(posedge clk or negedge rst)if(!rst)begina1_reg=8h00;a2_reg=8h00;b1_reg=8h00;b2_reg=8h00;endelse begina1_reg=a1;a2_reg=a2;b1_reg=b1;b2_reg=b2;endassign a_opcode=opcode;assign b_opcode=opcode;assign
17、a_en=(a_opcode=4b1011)?1b1:1b0;assign b_en=(b_opcode=4b1011)?1b1:1b0;function_a bb_A(a1_reg,a2_reg,a_en,a_out);function_b bb_B(b1_reg,b2_reg,b_en,b_out);endmoduleApplying syn_keep on the signals a_opcode and b_opcode,divide the load on the enable signal to meet the design requirement.HDL Coding Tech
18、niques for Performance14Shannon ExpansionShannon Expansion?Definition?Boolean Transformation?F(a,b,c)=a F(0,b,c)+aF(1,b,c)?Example-F=a b+ac(2 to 1 Mux)?F(a,b,c)=a F(0,b,c)+aF(1,b,c)a(1b+0c)+a(0b+1c)a b+ac?Pros and Cons?Can dramatically improve timing on critical signals?May require substantial chang
19、es in the code?Increases areaHDL Coding Techniques for Performance815Shannon ExpansionShannon Expansion?When to use it?Path is far from meeting timing(25%or more off)?If path is within 20%of the goal,try Synthesis and P&R constraints first.?Critical path has many logic levels?The Synplify Pro tool m
20、ay need to break complex paths limiting its ability to prioritize critical signals.?A small subset of signals have priority?If all signals feeding a cone of logic are equally critical there is no advantage to prioritize one over the other.?Need to move critical signals past an operator?The Synplify
21、Pro tool cannot replicate operators(+,-,*,.)HDL Coding Techniques for Performance16Shannon Expansion ExampleShannon Expansion Example?Design details?65 MHz goal?Signal late has input delay of 8ns?target technology:Actel 54SX Std?Original design?Speed 67.6MHz Area:35 Cells?Fast design(prioritize late
22、 as much as possible-Shannon expansion)?Speed 77.2MHz Area:42 CellsHDL Coding Techniques for Performance917Shannon Expansion ExampleShannon Expansion Examplemodule shannon(in0,in1,in2,late,en,out);input 7:0 in0,in1,in2;input late,en;output out;assign out=(8late|in0)+in1)=in2)&en;endmoduleRequested E
23、stimated Requested Estimated Clock Frequency Frequency Period Period Slack-System 70.0 MHz 67.6 MHz 14.286 14.785 -0.500=Original source-latetraverses an OR gate,an adder,a comparator,and an AND gateHDL Coding Techniques for Performance18Shannon Expansion Example(Cont d)Shannon Expansion Example(Con
24、t d)Requested Estimated Requested Estimated Clock Frequency Frequency Period Period Slack-System 70.0 MHz 77.2 MHz 14.286 12.949 1.337=module shannon_fast(in0,in1,in2,late,en,out);input 7:0 in0,in1,in2;input late,en;output out;wire late_eq_0,late_eq_1;assign late_eq_0=(81b0|in0)+in1)=in2)&en;assign
25、late_eq_1=(81b1|in0)+in1)=in2)&en;assign out=(late)?late_eq_1:late_eq_0;endmoduleRe-coding using Shannon Expansion reduces the number of levels of logic from late to out.HDL Coding Techniques for Performance1019Operand ReorderingOperand Reordering?Definition?Use algebraic identities to prioritize si
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Synplicity 培训以及试验相关资料PDF 107 培训 以及 试验 相关 资料 PDF 107
限制150内