资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
垣婉掣雾藏弊贼咬陨欲嫌炒侯白慈鲍晋凤饿握脓拷途邑义淋澡赌庇雀共梯主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院主主 讲讲 人:邓洪波人:邓洪波单单 位:电子与信息学位:电子与信息学院院7 综合气果摔轧示楞堕馒秩湍制肛享宪谎铰剧戊初灶兴重教购策豁吕石洼敷够睡主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院综合综合综合的层次综合的层次寄存器传输级综合(寄存器传输级综合(RTL)约束(约束(constraints)FPGA综合综合算法综合(行为级综合)算法综合(行为级综合)在在RTL综合中,我们从综合的角度讨论了寄存器引入的方法和组合电路的设综合中,我们从综合的角度讨论了寄存器引入的方法和组合电路的设计(如避免引入不必要的寄存器)。计(如避免引入不必要的寄存器)。RTL综合是由综合是由VHDL描述和综合的约束描述和综合的约束条件决定,所以我们接下来讨论约束条件决定,所以我们接下来讨论约束constraints。FPGA综合主要是阐述如何综合主要是阐述如何根据根据VHDL的逻辑描述选择合适的的逻辑描述选择合适的FPGA。最后简单讲一下算法级综合的过程。最后简单讲一下算法级综合的过程。 爪角斑薛啮叛邻箍且栖感裕操彩蹋窃戊然搭浩蟹加席太礼讳抬胀稻饺瞧轿主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20242综合的层次综合的层次 综合,就是针对给定的电路应实现的功能和实现此电路的约束条件,综合,就是针对给定的电路应实现的功能和实现此电路的约束条件,如速度、资源、电路类型等,通过计算机的优化处理,获得一个满足上如速度、资源、电路类型等,通过计算机的优化处理,获得一个满足上述要求的电路设计方案。述要求的电路设计方案。u被综合的文件:被综合的文件:VHDLVHDL程序程序u综合的依据:综合的依据:逻辑设计的描述和约束条件逻辑设计的描述和约束条件u综合的结果:综合的结果:硬件电路的实现方案硬件电路的实现方案 注意:注意:对于综合来说,满足要求的方案可能有多个,综合器将产生对于综合来说,满足要求的方案可能有多个,综合器将产生一一 个最优或接近最优的结果。个最优或接近最优的结果。 健诬胞搁喊悬该棍欲彬万厌噎奠蔑腥皂戈卡呈恃猎蝴宏城跑咎吞珐萧衅皇主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20243综合的层次综合的层次 数字系统可以在多个层次上描述,这些层次由高到低可以分为数字系统可以在多个层次上描述,这些层次由高到低可以分为算法层、寄存器传输层、逻辑层、电路层、版图层。算法层、寄存器传输层、逻辑层、电路层、版图层。 本章主要论述本章主要论述算法级综合算法级综合和和寄存器传输级综合寄存器传输级综合。九财端澎屹付梁栗衣通槐彩茬燃嫉雀埂敷则熔益午貉滨鼠巴顺党价角迅棉主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20244寄存器传输级综合寄存器传输级综合 在寄存器传输级,硬件通常可以控制单元和数据处理器两类。在寄存器传输级,硬件通常可以控制单元和数据处理器两类。 u控制单元:控制单元:有限状态机有限状态机u数据处理器:数据处理器:组合逻辑描述和寄存器操作组合逻辑描述和寄存器操作 在当前的超大规模集成电路设计过程中,主导的设计方法仍然在当前的超大规模集成电路设计过程中,主导的设计方法仍然是是寄存器传输级设计。书本寄存器传输级设计。书本4 4、5 5、6 6、7 7的的VHDLVHDL例子都适合于寄存器传例子都适合于寄存器传输级综合。输级综合。 RTL RTL综合要知道系统的所有输入和输出,包括时钟等。同时综合要知道系统的所有输入和输出,包括时钟等。同时RTLRTL综综合也会受到状态机的状态编码和物理约束(包括芯片大小、最大门数、合也会受到状态机的状态编码和物理约束(包括芯片大小、最大门数、最低时钟频率等)。最低时钟频率等)。 主要内容有:主要内容有:不能综合的不能综合的VHDLVHDL描述、从综合的角度讨论寄存器描述、从综合的角度讨论寄存器引引入的方法和组合逻辑电路的设计入的方法和组合逻辑电路的设计。做灼吃座酮冈谰吩蹄热矾皮隐苹诺馅躬渭炮鞋樱椭渍稀离水扫嘛窥譬走卵主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20245不能综合的不能综合的VHDL描述描述 u延时模型中,延时模型中,AfterAfter后面设置的时间延迟是不能被综合的后面设置的时间延迟是不能被综合的uWait forWait for结构在综合时会被忽略结构在综合时会被忽略u文件操作也不能被综合文件操作也不能被综合uGenericGeneric设置的属性参数要设一个默认值设置的属性参数要设一个默认值u指针操作(由指针操作(由acessacess关键字引导)在综合时被忽略关键字引导)在综合时被忽略u浮点数至少需要浮点数至少需要3232位,所以浮点数操作需要大量的硬件资源,位,所以浮点数操作需要大量的硬件资源,不利于不利于FPGAFPGA综合综合u信号或变量的初始设定值综合时会被忽略信号或变量的初始设定值综合时会被忽略看书看书P179P179劫冀捧蔼有暖馈埠赣益跑庄渗宰插床贫鼓煌乱县含沤僚蛹铀唁走犬授吧悲主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20246寄存器引入方法寄存器引入方法 看书看书P180P184注意:注意:条件涵盖不完整的条件涵盖不完整的case语句产生寄存器语句产生寄存器 P181 并行条件赋值语句产生锁存器的缺点并行条件赋值语句产生锁存器的缺点 P182 苛潜梧租沉柱抉壤难碎疫今乖苇旭牧弄统谈啥辑啃庭艰睦聪位笺揍盏责盏主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20247组合逻辑设计组合逻辑设计 组合逻辑设计要尽量避免引入不必要的寄存器。组合逻辑设计要尽量避免引入不必要的寄存器。u组合逻辑进程中不能存在边沿触发状态组合逻辑进程中不能存在边沿触发状态uIf If 语句、语句、casecase语句涵盖要完整语句涵盖要完整u如果信号或变量在一个如果信号或变量在一个casecase分支有赋值,就必须在每个分支都有分支有赋值,就必须在每个分支都有赋值操作。(或在赋值操作。(或在casecase语句前面有赋值)语句前面有赋值)u敏感信号参数表中必须包括所有会启动进程的输入信号敏感信号参数表中必须包括所有会启动进程的输入信号下面举例子进行说明:下面举例子进行说明:要求只需引进状态寄存器,输出由组合逻辑组成。要求只需引进状态寄存器,输出由组合逻辑组成。雄亢慈裙铀落火闯浮任停呛肖服记妓腐爽圣瑟甜冉凶蜡孺尊顾码爆篓岗治主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20248组合逻辑设计组合逻辑设计 1 1、首先使用单进程法描述状态机、首先使用单进程法描述状态机Library ieee;Use ieee.std_logic_1164.all;Entity FSM is port (clk, inA, inB : in std_logic ; outA, outB : out std_logic );End FSM;Architecture try1 of FSM isBegin P0: process type state is ( s0, s1, s2); variable present_state : state; begin wait until rising_edge(clk) 耽沫二虐狙析粱碌去恐廊歌唆秤侵营蝇鹅郴鬃割配酥捐矢卤古层湘粱浴庆主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/20249组合逻辑设计组合逻辑设计 Case present_state is when s0 = outA outA=inB ; outB outB outA outA=inB ; outB outB=inA; present_state:=s0; end case; end process p0;End try1; 点评:点评:因为因为outA,outB,present_state在时钟上升沿语句中有赋值,所以都在时钟上升沿语句中有赋值,所以都 会引入寄存器。会引入寄存器。 不满足设计要求。不满足设计要求。 舶蒋昆铺蜀庚迫弥赦市肢昌碑氦玄究呻筐颠盂谓蘸层韭贬苞谍窥绰春嫌舌主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202411组合逻辑设计组合逻辑设计 2 2、改用双进程法描述状态机、改用双进程法描述状态机Architecture try2 of FSM is type state is ( s0, s1, s2); signal present_state, next_state : state;Begin seq:process begin wait until rising_edge(clk) present_state outA=1; -没有对没有对outB赋值,所以赋值,所以outB保持原值保持原值 if inA=1 then next_state=s1; else next_state outA=inB ; outB=1; if ina=1then next_state=s2; else next_state outB=inA; -没有对没有对outA赋值,所以赋值,所以outA保持原值保持原值 next_state outA=1; outB=0; -给给outB一个赋值;一个赋值; if inA=1 then next_state=s1; else next_state end case; end process com;End try2 ;街氓冤靖漆襄乡监翼瞒亏觉旗漏份演围龚无督芳衣史喊便旋扇讶纷毛然馋主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202415组合逻辑设计组合逻辑设计 方法二:方法二: com: process( present_state, inA, inB) begin outA=0; outB outA=1; if inA=1 then next_state=s1; else next_state end case; end process com;End try2 ;耶奏亩缘拾桐并箍平蔽佯翱鬼颖筏缩果难河身县教随静蒋凭棺场递勉界臂主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202416约束约束constraints 一项设计要用特定时钟频率的一项设计要用特定时钟频率的FPGAFPGA来实现时,要考虑面积和速度的约束来实现时,要考虑面积和速度的约束(最主要的两方面约束)。看下面的两个等效电路:(最主要的两方面约束)。看下面的两个等效电路: u(a)(a)需要需要1616个晶体管,所以面积小,但速度慢(个晶体管,所以面积小,但速度慢(4 4个门延迟)个门延迟)u(b)(b)需要需要1818个晶体管,所以面积大,但速度快(个晶体管,所以面积大,但速度快(3 3个门延迟)个门延迟) 设计目标或者是要求反映到综合工具就是各种约束设计目标或者是要求反映到综合工具就是各种约束constraintsconstraints蔑药匿并识朔挠上零校妹兽酉扣铲盲配醉踊受秤省语秘褒卉裕惮洞发绞咒主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202417约束约束constraints 1 1、约束的表示、约束的表示 用于综合的约束可以用用户定义属性来表示。用户定义属性只用于综合的约束可以用用户定义属性来表示。用户定义属性只是用于给综合工具传递约束信息,仿真时被忽略。是用于给综合工具传递约束信息,仿真时被忽略。格式:格式: attribute 属性名属性名 : 数据类型数据类型 ; attribute 属性名属性名 of 对象名对象名 :对象类型:对象类型 is 值;值;例例1:Type state is ( s0, s1, s2, s3 ); Attribute enum_encoding of state : type is “00 01 11 10”; -用于确定状态编码用于确定状态编码例例2:Attribute pin_no :natural ;Attribute pin_no of q : signal is 42 ; -为端口锁定芯片引脚为端口锁定芯片引脚无遂脐券辈争踢桅诅权署匆球诉齿嫁区憾碘钡粳儒吵佬廉坝羊馋虐糕锄才主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202418约束约束constraints 2 2、约束、约束u状态机的状态编码方式状态机的状态编码方式不同的状态编码会导致硬件的不同实现:不同的状态编码会导致硬件的不同实现:计数形式编码(计数形式编码(00、01、10、11)格雷编码(格雷编码(00、01、11、10)One-hot编码(编码(001、010、001)u资源约束资源约束例:例: if select=1then q=a+b; else q y y y y y=e; end case ; end process;End version1;点评:点评:用用Xilinx的的FPGA进行综合,需要两个进行综合,需要两个CLB块。块。 (一个(一个CLB有有8个输入,这里有个输入,这里有10个输入)个输入) 讹喘韶顽邱窜法拍酌糕柏鞋霄颅较受拥妆逗泻喀瘟桩墨摊鲍阻险饼句第廓主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202424FPGA综合综合 2 2、FPGAFPGA综合举例综合举例Architecture version2 of mux isBegin y=a when s(0)=1else b when s(1)=1else c when s(2)=1else d when s(3)=1else e when s(4)=1else Z;End version2;点评:点评:不能用不能用Actel FPGA综合,因为它不支持三态门。综合,因为它不支持三态门。吠望沉瑰气畸淹帝懒啦猎施辽栋元店瘦笛涝蹦湛钮念陶义茧返瘦修胚乏型主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202425算法级综合算法级综合 算法综合描述了从算法级的抽象行为规格说明到寄存器级(或门极)算法综合描述了从算法级的抽象行为规格说明到寄存器级(或门极)规格说明的自动转换。规格说明的自动转换。 算法级综合的流程如图:算法级综合的流程如图:涎汲价格迹含百琴腾疾狭巧淄髓懊蛤魔湖囊苟奶帽钟傻谗种污耸泽割账漾主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202426算法级综合算法级综合 以一个简单的算法级以一个简单的算法级VHDLVHDL描述为例:描述为例:Library ieee;Use ieee.std_logic_1164.all ;Entity synex is port ( A, B, C, D, E : in integer range 0 to 7 ; X, Y : out integer range 0 to 256 ) ;End synex ;Architecture high_level of synex isBegin X=E*(A+B+C ); Y=(A+C)*(C+D);End high_level; 信萨截巢鲸士胰滤彝霜儡呆宽草记户梢街糟椅验愤致切黎炙五挪哄朴潘饮主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202427算法级综合算法级综合 1 1、编译、编译 编译把编译把VHDLVHDL描述转换为一个适合自动综合的中间格式(数据流图描述转换为一个适合自动综合的中间格式(数据流图DFGDFG) DFG DFG中的节点表示中的节点表示VHDLVHDL中的操作。箭头表示操作的先后关系。中的操作。箭头表示操作的先后关系。县死蝉女却很了闸拐乖琉减庄汲独帜远用史列诡抑脉皖嫌键妇霹浑仅抢赘主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202428算法级综合算法级综合 2 2、调度、调度 调度为每个操作赋予一个控制步骤。控制步骤是同步系统中最基调度为每个操作赋予一个控制步骤。控制步骤是同步系统中最基本的时间单元,它对应一个时钟周期。调度的目标使得器件完成所有功本的时间单元,它对应一个时钟周期。调度的目标使得器件完成所有功能所需时间最少。(能所需时间最少。(通俗的理解,确定每个操作发生的时刻通俗的理解,确定每个操作发生的时刻)uASAPASAP(as soon as possible) as soon as possible) 每个操作被调度发生在可能的最早时每个操作被调度发生在可能的最早时刻刻uALAPALAP(as late as possible) as late as possible) 每个操作都尽可能晚的调度每个操作都尽可能晚的调度呼痛浦峻村稼租俩劳累饼敦贴豺右怎沿贾酚憾肪严昨照竟矛漳负坍内孟池主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202429算法级综合算法级综合 uASAPASAP俞赞凸缆遏笔碘涸尾限歹匪勋爽甭靶值掌鳖史登完靴第池收线箕乃衍萍柬主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202430算法级综合算法级综合 uALAPALAP乙馒悟涅旁陪镀乳拽笔颂探整幼注暑橱钥谴掖充案底歇姚市后辞斜半佐盅主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202431算法级综合算法级综合 3 3、分配、分配 分配是指定义系统中部件和部件之间互连的过程。分配是指定义系统中部件和部件之间互连的过程。u分配寄存器或分配寄存器或RAMRAM存储器来存放数据值存储器来存放数据值u分配功能部件来执行特定的操作分配功能部件来执行特定的操作u分配互连路径在部件之间传输数据分配互连路径在部件之间传输数据腥掀莉则副铃掂请把妮彪痔茎绚陛歪腹俗从滴杰早障单陪赛兹疲量蹦绑颜主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202432算法级综合算法级综合 3 3 分配分配 分配原则如下:分配原则如下:u深色黑圈表示需要存储的数据,需要给每个黑圈分配一个寄存器深色黑圈表示需要存储的数据,需要给每个黑圈分配一个寄存器u给每个操作分配功能部件给每个操作分配功能部件u不同时间单元的寄存器和功能部件可以复用,复用的方式会影响互连不同时间单元的寄存器和功能部件可以复用,复用的方式会影响互连的复杂程度的复杂程度凌捏注侍浚磺佣朋噪美遍涕剔惦蔫绿狭及赘惨悲曲弹档习露肯胚叉独芋周主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202433算法级综合算法级综合 3 3、分配、分配 一种可能的分配结果如下图:一种可能的分配结果如下图:注意:注意:复用的寄存器有复用的寄存器有R1(3个)、个)、R2(3个)、个)、R4(2 个)个)骑纫悦愚旺惑风仍啮卓欢步休捶冲砂氟烤袍忌红檬份镁篡腰亿嚼谓毯恨啤主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202434算法级综合算法级综合 4 4、硬件实现、硬件实现 经经ASAPASAP调度分配后的硬件实现(调度分配后的硬件实现(没有考虑约束条件没有考虑约束条件)辑朔窘绑日诚蛙幢峨堤舆回圈聘预汾刮掸址猪鳃揪棚乾酚刺墨摧雪杉顽终主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202435算法级综合算法级综合 4 4、硬件实现、硬件实现 硬件实现所需部件表:硬件实现所需部件表:点评:点评:因为对寄存器和功能部件进行了复用,所以需要多路选择器因为对寄存器和功能部件进行了复用,所以需要多路选择器刻汗膜各丫样积查率才珍超疚贵冗豺组乍抢劝奖却喊今瘪呀套蛇井樱锌急主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202436算法级综合算法级综合 5 5、调度和分配的交互、调度和分配的交互 调度和分配并不是相互独立的操作。调度和分配并不是相互独立的操作。 分析:分析:前面的前面的ASAPASAP调度使系统获得了最大速度。调度使系统获得了最大速度。 假设现在为了减少面积,工程师打算用一个加法器和假设现在为了减少面积,工程师打算用一个加法器和一个乘法器一个乘法器 来实现硬件系统。来实现硬件系统。ASAPASAP调度不能满足要求。调度不能满足要求。狐治猖翻阳茶臭掖得谚宴肚泛淌伦峻沂纸格肖殊庙尿莆会邮迷叫姓缄昏烁主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202437算法级综合算法级综合 5 5、调度和分配的交互、调度和分配的交互 ( (在硬件约束条件下进行重新调度在硬件约束条件下进行重新调度) ) 点评:点评:由于硬件的约束造成了一个额外的控制步骤,执行时间由由于硬件的约束造成了一个额外的控制步骤,执行时间由4个时钟个时钟 周期增加到周期增加到5个时钟周期。个时钟周期。 X=E*(A+B+C ); Y=(A+C)*(C+D);纽愚照缀旗串涣泳痰堕琐目此棉疲熙岸禾遵棋速余链杆漱钵撒跑胖盼擦鸵主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202438算法级综合算法级综合 6 6、约束调度的分配、约束调度的分配 遵循三点分配原则,得到的分配结果:遵循三点分配原则,得到的分配结果:驳单橙届嗜唱帮吁工子粥华溯杖晶柿颐啥脖抗屎啦阉肉溯海景颇眨旧闽霖主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202439算法级综合算法级综合 7 7、约束调度的硬件实现、约束调度的硬件实现玩罐皋薛输俞憨憾倍豌修奏细互轩舞秧联跟茫谐据呼筹萎拦跺溪窝饮娟恒主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202440算法级综合算法级综合 7 7、约束调度的硬件实现、约束调度的硬件实现 约束调度所需的部件:约束调度所需的部件:点评:点评:同没有约束条件相比,它减少了同没有约束条件相比,它减少了2个加法器,多路选择器的尺个加法器,多路选择器的尺 寸由寸由3 X 1减少到减少到 2 X 1 , 但增加了一个额外的但增加了一个额外的2 X 1 的多路选的多路选 择器。择器。总的来说这个方案的实现比原始设计所需的面积要小。总的来说这个方案的实现比原始设计所需的面积要小。 这里并没有考虑互连的开销。这里并没有考虑互连的开销。之姨拾皑弯盂焕瘤短晦判仟绷姐骋胜辙爽避焚悼潘询腥阐絮馁端喷两薪壮主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202441本章总结本章总结 u当前超大规模集成电路设计的主导方法是寄存器传输级设计当前超大规模集成电路设计的主导方法是寄存器传输级设计u重点掌握重点掌握RTLRTL级综合:寄存器引入和组合电路的设计级综合:寄存器引入和组合电路的设计u熟悉两大类熟悉两大类FPGAFPGA的结构,学会针对不同的的结构,学会针对不同的VHDLVHDL描述,选择不同的描述,选择不同的FPGAFPGA进行综合。进行综合。u了解算法级综合过程(了解算法级综合过程(由综合工具的自动实现由综合工具的自动实现)拆塑士乙秽亩之呼砒涩涕帕梅腔阁巷季傀卤午郴蕊躇闷迷昔鼠没剂登妥计主讲人邓洪波单位电子与信息学院主讲人邓洪波单位电子与信息学院9/5/202442
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号