欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    基于Altera Quartus II的模块化设计应用.docx

    • 资源ID:6723263       资源大小:42.21KB        全文页数:4页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Altera Quartus II的模块化设计应用.docx

    基于AlteraQuartusII的模块化设计应用和ISE不一样,QII代码的模块化视图并不是你把子模块例化到顶层模块以后立马就能在工程代码窗口看到一个清晰的层次图。而是必须在你编译后才能够看到层次化的视图。我在这里列举一个串口通信(实验10)的实例:编写完该HDL的代码,还没有编译,此时在PrOjeCtNaVigator窗口中只有顶层模块my_uart_top,»LJ"Q?L_rCUnProjectNavigator-×顶层模块如下(详细的注释代码请参考相关实验)modulemy_uart_top(clk,rst_n,rs232_rx,rs232_tx);inputelk;inputrst_n;inputrs232_rx;outputrs232_tx;wirebps_start1,bps_start2;wireclk_bps1,clk_bps2;wire7:0rx_data;wirerx_int;HHiniHHHllHlllinillHnillIllHIIHIspeed_selectspeed_rx(.clk(clk),.rst_n(rst_n),.bps_start(bps_start1),.clk_bps(clk_bps1);my_uart_rxmy_uart_rx(.clk(clk),.rst_n(rst_n),.rs232_rx(rs232_rx),.rx_data(rx_data),.rx_int(rx_int),.clk_bps(clk_bpsl),.bps_start(bps_start1);IllllllHlllllHinillllllllllllllHlIIIIIIspeed_selectspeed_tx(.clk(clk),.rst_n(rst_n),.bps_start(bps_start2),.clk_bps(clk_bps2);my_uart_txmy_uart_tx(.clk(clk),.rst_n(rst_n).rx_data(rx_data),.rx_int(rx_int),.rs232_tx(rs232_tx),.clk_bps(clk_bps2),.bps_start(bps_start2);Endmodule我们一般不在顶层模块做任何逻辑设计,哪怕只是一个逻辑与操作。比较好的设计会明确的区分每一个模块单元。在上面这个设计中,是要实现一个串口自收发通信的功能。具体说就是不断的检测串口接收信号rs232-rx是否有数据,如果接收到起始位就把数据保存,然后再转手把接收到的数据通过串口发送信号rs232jX发回给对方。即使是这样一个还不算太复杂的功能,如果都堆到一个模块里,代码不仅又臭又长,编写代码者如果不理好思路很容易自己就写晕了,以后维护起来或者要移植就更难了。所以,模块化的设计势在必行。上面的代码把这个设计分成了四个模块:1、My_uart_tx:串口数据接收模块;2、Speedjx:串口数据接收时钟校推模块;3、My_uart_rx:串口数据发送模块;4、Speed-rx:串口数据发送时钟校准模块。5、如此划分,层次清晰而且思路明确,写起代码来更是游刃有余。先来说模块6、例化的一些细节吧。就拿SPeed_select模块例化来看。第一行的SPeed_select7、8、speed_rx,其中SPeed_select是要例化的模块名,是固定的;而SPeed_rx9、则是你任意给这个模块取的名字,它是用于区分例化多个相同的模块。就如SPeedjX和SPeeLrX两个模块,因为它们的逻辑设计都是一样的,所以写一个模块,然后在例化的时候给个不同的名称就可以了。这有点类似软件设计中的子程序调用,但又有不同,由于硬件设计的并行性,这里的逻辑复制实际上在最后的硬件上是实现了两个一模一样的SPeeLSeleCt设计原型,可以说它们是完全独立的。即便是对于硬件资源的消耗没有减少,采用模块化设计以后也能从很大程度上减少设计者的重复劳动。10、11、信号的例化是这样的.clk(clk),点号后的Clk代表例化模块内部的信号(是12、固定的,必须和内部的信号名一致),而括号内的Clk则是例化模块的外部连接,可以例化模块内的信号名不同。在编译后,可以从ProjectNavigator窗口中看到例化的子模块:ProjectNavigator另外,从QUartUSII提供的RTL视图里,我们能够更深刻的感受到模块化带来的层次感:模块化设计方法的设计流程将这种模块化设计思路运用于FPGA/CPLD设计,将大规模复杂系统按照一定规则划分成若干模块,然后对每个模块进行设计输入、综合,并将实现结果约束在预先设置好的区域内,最后将所有模块的实现结果有机地组织起来,就能完成整个系统的设计。(1)顶层模块的设计:项目管理者需要完成顶层模块的设计输入与综合,为进行ModularDeSign实现阶段的第一步一初始预算阶段(InitialBUdgetingPhaSe)做准备。(2)子模块的设计:每个项目成员相对独立地并行完成各自子模块的设计输入和综合,为进行ModularDesign实现阶段的第二步一子模块的激活模式实现(ActiveModuleImplementation)做准备。模块化设计的实现步骤是整个模块化设计流程中最重要、最特殊的,它包含:(1)初始预算-本阶段是实现步骤的第一步,对整个MOdUlarDeSign起着指导性的作用。在初始预算阶段,项目管理者需要为设计的整体进行位置布局,只有布局合理,才能够在最大程度上体现MOdUIarDeSign的优势;反之,如果因布局不合理而在较后的阶段需要再次进行初始预算,则需要对整个实现步骤全面返工。(2)子模块的激活模式实现(ACtiVeMOdUIelmPlementatiOn)-在该阶段,每个项目成员并行完成各自子模块的实现。(3)模块的最后合并(FinalASSembIy)-在该阶段项目管理者将顶层的实现结果和所有子模块的激活模式实现结果有机地组织起来,完成整个设计的实现步骤。模块化设计中模块划分的基本原则为:子模块功能相对独立,模块内部联系尽量紧密,而模块间的连接尽量简单。所以对于那些难以满足模块划分准则的具有强内部关联的亚杂设计,并不适合采用模块化设计方法。

    注意事项

    本文(基于Altera Quartus II的模块化设计应用.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开