选题4基于预约表的非线性流水线调度模块设计.docVIP

选题4基于预约表的非线性流水线调度模块设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
选题4基于预约表的非线性流水线调度模块设计

选题四 基于预约表的非线性流水线调度模块设计 一、目的 (1)通过实例设计,学习基于预约表的非线性流水线调度逻辑的规划与设计,理解非线性流水线产生调度冲突的机理;学习用无冲突启动距离调度非线性流水线。 (2)学习使用Qartus Ⅱ 设计硬件逻辑,对典型数据进行仿真分析。 节拍 功能段 1 2 3 4 5 6 7 S1 × × × S2 × × S3 × × S4 × 图1 (b)预约表 在exp4中,调用了5种自定义功能模块: Task: 见图6。当Start有效(=1)时,就根据预约表启动一个任务周期。输出S[3..0]表示某节拍时4个流水段的使用情况,例如,当Start有效后的下一节拍,按照预约表,应有S[3..0]=(0,1,1,0),表示S3、S2工作,S4、S3不工作。本模块保存的文件为Task.bdf。 ProTab:Task模块调用的自定义功能模块,见图7。图中的lp_rom用于存放预约表,见图8。lp_rom与Precontract.mif文件关联。注意图8中的数据排列格式,Addr列对应预约表中的节拍行,数据列表示各功能段的使用情况。例如,Addr=1时,数据D7D6 ...D0 =D3D2D1D0 分别对应S4、S3、S2、S1, D3D2D1D0 = 0001表示在第1节拍S1要使用,S4、S3、S2不使用;D6D5D4 备用;D7 = 1表示本数据属于任务周期中的一个节拍。在定制lp_rom0时,不要选中步骤2/5中的 q output port项。 图6 Task.bdf 图7 ProTab.bdf Strob:选通脉冲形成模块,见图9。该模块检测某功能段是否有任务到达,若有则从ST输出一个选通脉冲,以选择该功能段工作。图中A、B、C表示3个分时启动的任务。本模块保存的文件为Strob.bdf Conflict: 冲突检测模块,见图10。该模块检测某功能段是否有两个以上的任务同时到达。若有则从Conflict输出一个高电平。图中A、B、C表示3个分时启动的任务,当采用存在冲突的启动距离时,他们可能在某节拍同时到达某功能段。本模块保存的文件为Confilct.bdf. 图9 Strob.bdf 图10 Conflict.bdf (2)建立仿真通道文件,如图11。编辑CLK。注意CLK的时间间隔选择。CLK的周期为100ns(50ns低电平+50ns高电平),CLK的上升时刻要按照图中的时刻指定,不要搞错。仿真总时间为2us,可通过Edit/End Time菜单来设置。编辑完成后,保存为exp4.vwf。 (3)仿真,结果如图11。 (4)结果分析 由仿真结果可见,Start1发送1个任务后,Start2即发送下一任务,表示启动距离为1;Start2发送个任务后,要经过7拍Start1才发送下一任务,表示启动距离为7。如此重复,实现了按启动距离(1,7)的发送。 U1~U4分别表示4个流水段的选通情况,对应时空图见图12。 Conft1~ Conft4均输出0,表示各功能段均无冲突。 图11 节拍 功能段 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … S1 ×1 ×2 ×1 ×2 ×1 ×2 ×3 ×4 ×3 ×4 ×3 ×4 … S2 ×1 ×2 ×1 ×2 ×3 ×4 ×3 ×4 … S3 ×1 ×2 ×1 ×2 ×3 ×4 ×3 ×4 … S4 ×1 ×2 ×3 ×4 … 图12 (5)按启动距离为(3),修改mc.mif的值,再仿真,观察是否有功能段冲突,分析冲突原因; (6)按启动距离为(5),修改mc.mif的值,再仿真,观察是否有功能段冲突; 四、问题讨论 (1)在exp4. bdf中,计数器lpm_counter1是如何归0的? (2)在exp4. bdf中,为什么要用3个Task模块?若启动距离为(2),用3个Task模块能行吗? *(3)当发生冲突时,U1~U3也会发出选通脉冲,这是不合理的。你能改进此问题吗?画出逻辑图。 *(4)按优化调度的方法(见课本30

文档评论(0)

pengyou2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档