基于Altera Quartus II的模块化设计应用.docx
《基于Altera Quartus II的模块化设计应用.docx》由会员分享,可在线阅读,更多相关《基于Altera Quartus II的模块化设计应用.docx(4页珍藏版)》请在优知文库上搜索。
1、基于AlteraQuartusII的模块化设计应用和ISE不一样,QII代码的模块化视图并不是你把子模块例化到顶层模块以后立马就能在工程代码窗口看到一个清晰的层次图。而是必须在你编译后才能够看到层次化的视图。我在这里列举一个串口通信(实验10)的实例:编写完该HDL的代码,还没有编译,此时在PrOjeCtNaVigator窗口中只有顶层模块my_uart_top,LJQ?L_rCUnProjectNavigator-顶层模块如下(详细的注释代码请参考相关实验)modulemy_uart_top(clk,rst_n,rs232_rx,rs232_tx);inputelk;inputrst_n;i
2、nputrs232_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_da
3、ta),.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_b
4、ps2),.bps_start(bps_start2);Endmodule我们一般不在顶层模块做任何逻辑设计,哪怕只是一个逻辑与操作。比较好的设计会明确的区分每一个模块单元。在上面这个设计中,是要实现一个串口自收发通信的功能。具体说就是不断的检测串口接收信号rs232-rx是否有数据,如果接收到起始位就把数据保存,然后再转手把接收到的数据通过串口发送信号rs232jX发回给对方。即使是这样一个还不算太复杂的功能,如果都堆到一个模块里,代码不仅又臭又长,编写代码者如果不理好思路很容易自己就写晕了,以后维护起来或者要移植就更难了。所以,模块化的设计势在必行。上面的代码把这个设计分成了四个模块:1、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Altera Quartus II的模块化设计应用 基于 Altera II 模块化 设计 应用