FPGA设计袁百灵.ppt

上传人:wuy****n92 文档编号:70756575 上传时间:2023-01-27 格式:PPT 页数:24 大小:202KB
返回 下载 相关 举报
FPGA设计袁百灵.ppt_第1页
第1页 / 共24页
FPGA设计袁百灵.ppt_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《FPGA设计袁百灵.ppt》由会员分享,可在线阅读,更多相关《FPGA设计袁百灵.ppt(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、FPGA设计FPGA设计流程设计举例FPGA设计基本原则内容其它典型的FPGA设计流程l设计输入l前仿真(功能仿真)l综合(优化、综合、映射)l布局布线l后仿真(时序仿真)l生成下载文件,进行板级调试FPGA设计的基本原则l系统原则l硬件原则l同步设计原则l面积和速度的平衡和互换系统原则l原则:原则:lFPGA设计要求对设计的全局有个宏观的上的合理安排。比如时钟域、模块复用、约束、面积和速度等问题。lFPGA/CPLD的资源情况的资源情况:l一般是由底层可编程硬件单元、BLOCK RAM资源、布线资源、可配置的IO单元、时钟资源等组成。l返回可编程的硬件单元l底层的可编程硬件单元l FF触发器

2、lLUT查找表ll返回时钟资源l锁相环(Phase-Locked Loop,PLL)l延迟锁定环(Delay-Locked Loop,DLL)l 返回硬件原则l1.评判一段HDL代码的优劣标准:l其描述并实现的硬件电路的性能(包括面积和速度两个方面)。l2.举例:比较Verilog和语言的区别l C:For(I=0;I16;I+)function();lVerilog:l reg 3:0counter;l always(negedge rst_n or negedge clk)always(negedge clk)l begin beginl if(!rst_n)case(counter)l

3、counter=4b0;4b0000:l else 4b0001:l counter=counter+1;l end endcasel end C:Verilog:1)if()1)if()else else 2)swithch(variable)2)case(var)value1:case value1 break;value2:case value2 break;default:endcase解决办法:一:使用if();if();的结构描述出不带优先级的“平行”条件判断语句;二:使用软件将优先级树优化掉返回同步设计原则l异步电路特点异步电路特点:l电路的核心逻辑用组合逻辑电路实现。比如异步的

4、FIFO/RAM读写信号,地址译码等电路;l电路的主要信号,输出信号等并不依赖于任何一个时钟信号。不是由时钟信号驱动FF产生;l异步时序电路的最大缺点是容易产生毛刺。同步时序电路的特点同步时序电路的特点:电路的核心逻辑用各种各样的触发器实现电路的主要信号、输出信号等都是由某个时钟沿驱动触发器产生出来的;同步时序电路可以很好的避免毛刺。同步时序电路设计的几个问题:同步时序电路设计的几个问题:是否同步时序电路一定比异步电路更多使用逻辑资源?如何实现同步时序电路的延时?同步时序电路的时钟如何产生?返回面积与速度的平衡和互换原则l概念:概念:l面积:指一个设计消耗的FPGA/CPLD的逻辑资源的数量l

5、速度:指设计在芯片上稳定运行,所能够达到的最高频率l面积与速度的平衡:面积与速度的平衡:l对面积和速度的要求,和产品的质量和成本有直接关系。l面积与速度的互换:面积与速度的互换:速度的优势换面积的节约速度的优势换面积的节约:从理论上讲,一个设计如果时序余量较大,那么就能通过功能模块的复用减少设计消耗的面积。面积复制换速度的提高面积复制换速度的提高:如果,一个设计的时序要求比较高,普通方法达不到设计频率,那么一般可以通过将数据流串并转换,并行复制多个操作模块,对整个设计采取“乒乓操作”和“串并转换”的思想进行运作,在芯片输出模块再对数据进行“并串转换”。这样从宏观上看整个芯片满足了处理速度的要求

6、。返回其它阻塞赋值与非阻塞赋值的区别和用法module non_block(a,c,clk);非阻塞赋值 input a;input clk;output c;reg b,c;always(negedge clk)begin b=a;c=b;endendmodulemodule non_block(a,c,clk);阻塞赋值input a;input clk;output c;reg b,c;always(negedge clk)begin b=a;c=b;endendmodule两种赋值方式的使用l规则:l在always块中,组合逻辑设计使用阻塞赋值“”。l在always块中,时序逻辑设计使

7、用非阻塞赋值“”。l在always块中,当即存在组合逻辑,有存在时序逻辑时,使用非阻塞赋值“”。module test(a,b,c,d,y);module test(a,b,c,d,y);input a,b,c,d;input a,b,c,d;output y;output y;reg y,tmp1,tmp2;reg y,tmp1,tmp2;always(a or b or c or d)always(a or b or c or d or tmp1 or tmp2)begin begin tmp1=a&b;tmp1=a&b;tmp2=c&d;tmp2=c&d;y =tmp1|tmp2;y =

8、tmp1|tmp2;end endendmodule endmodule返回module test(d,clk,q3);解决方法:module test(d,clk,q3);input d,clk;input d,clk;output q3;output q3;reg q1,q2,q3;reg q1,q2,q3;always(negedge clk)always(negedge clk)begin begin q1=d;q3=q2;q2=q1;q2=q1;q3=q2;q1=d;end endendmodule endmodule解决二:module test(d,clk,q3);解决三:mod

9、ule test(d,clk,q3);input d,clk;input d,clk;output q3;output q3;reg q1,q2,q3;reg q1,q2,q3;always(negedge clk)always(negedge clk)q1=d;q3=q2;always(negedge clk)always(negedge clk)q2=q1;q2=q1;always(negedge clk)always(negedge clk)q3=q2;q1=d;endmodule endmodule返回 module test()module test()input a,b,clk,rst_n;input a,b,clk,rst_n;output q;output q;reg q;reg q;always always (negedge clk or negedge rst_n)(negedge clk or negedge rst_n)begin begin if(!rst_n)q=1b0;if(!rst_n)q=1b0;else begin else begin tmp=a&b;tmp=a&b;q =tmp;q =tmp;end end end end end module end module谢谢大家!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com