FPGA设计袁百灵课件

上传人:汽*** 文档编号:592764030 上传时间:2024-09-22 格式:PPT 页数:24 大小:205.50KB
返回 下载 相关 举报
FPGA设计袁百灵课件_第1页
第1页 / 共24页
FPGA设计袁百灵课件_第2页
第2页 / 共24页
FPGA设计袁百灵课件_第3页
第3页 / 共24页
FPGA设计袁百灵课件_第4页
第4页 / 共24页
FPGA设计袁百灵课件_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《FPGA设计袁百灵课件》由会员分享,可在线阅读,更多相关《FPGA设计袁百灵课件(24页珍藏版)》请在金锄头文库上搜索。

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

2、钟资源等组成。l返回FPGA设计袁百灵可编程的硬件单元l底层的可编程硬件单元l FF触发器lLUT查找表ll返回FPGA设计袁百灵时钟资源l锁相环(Phase-Locked Loop,PLL)l延迟锁定环(Delay-Locked Loop,DLL)l 返回FPGA设计袁百灵硬件原则l1.评判一段HDL代码的优劣标准:l其描述并实现的硬件电路的性能(包括面积和速度两个方面)。l2.举例:比较Verilog和语言的区别l C: For(I=0;I16;I+) function(); lVerilog: l reg 3:0counter;l always (negedge rst_n or neg

3、edge clk) always (negedge clk)l begin beginl if(!rst_n) case(counter)l counter=4b0; 4b0000:l else 4b0001:l counter = counter+1; l end endcasel endFPGA设计袁百灵 C: Verilog:1)if() 1) if() else else 2)swithch(variable) 2) case (var) value1: case value1 break; value2: case value2 break; default: endcase解决办法

4、:一:使用if() ;if() ;的结构描述出不带优先级的“平行”条件判断语句;二:使用软件将优先级树优化掉返回FPGA设计袁百灵同步设计原则l异步电路特点异步电路特点:l电路的核心逻辑用组合逻辑电路实现。比如异步的FIFO/RAM读写信号,地址译码等电路;l电路的主要信号,输出信号等并不依赖于任何一个时钟信号。不是由时钟信号驱动FF产生;l异步时序电路的最大缺点是容易产生毛刺。FPGA设计袁百灵同步时序电路的特点同步时序电路的特点:电路的核心逻辑用各种各样的触发器实现电路的主要信号、输出信号等都是由某个时钟沿驱动触发器产生出来的;同步时序电路可以很好的避免毛刺。同步时序电路设计的几个问题:同

5、步时序电路设计的几个问题:是否同步时序电路一定比异步电路更多使用逻辑资源?如何实现同步时序电路的延时?同步时序电路的时钟如何产生?返回FPGA设计袁百灵面积与速度的平衡和互换原则l概念:概念:l面积:指一个设计消耗的FPGA/CPLD的逻辑资源的数量l速度:指设计在芯片上稳定运行,所能够达到的最高频率l面积与速度的平衡:面积与速度的平衡:l对面积和速度的要求,和产品的质量和成本有直接关系。l面积与速度的互换:面积与速度的互换:FPGA设计袁百灵速度的优势换面积的节约速度的优势换面积的节约:从理论上讲,一个设计如果时序余量较大,那么就能通过功能模块的复用减少设计消耗的面积。面积复制换速度的提高面

6、积复制换速度的提高:如果,一个设计的时序要求比较高,普通方法达不到设计频率,那么一般可以通过将数据流串并转换,并行复制多个操作模块,对整个设计采取“乒乓操作”和“串并转换”的思想进行运作,在芯片输出模块再对数据进行“并串转换”。这样从宏观上看整个芯片满足了处理速度的要求。FPGA设计袁百灵返回FPGA设计袁百灵其它阻塞赋值与非阻塞赋值的区别和用法module non_block (a,c,clk); 非阻塞赋值 input a; input clk; output c; reg b,c; always (negedge clk) begin b=a; c=b; endendmoduleFPGA

7、设计袁百灵FPGA设计袁百灵module non_block (a,c,clk); 阻塞赋值input a;input clk; output c; reg b,c; always (negedge clk) begin b=a; c=b; endendmoduleFPGA设计袁百灵FPGA设计袁百灵两种赋值方式的使用l规则:l在always块中,组合逻辑设计使用阻塞赋值“”。l在always块中,时序逻辑设计使用非阻塞赋值“”。l在always块中,当即存在组合逻辑,有存在时序逻辑时,使用非阻塞赋值“” 。FPGA设计袁百灵module test(a,b,c,d,y); module tes

8、t(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 =tmp1 | tmp2; end endendmodule endmodule返回FPGA设计袁百灵module t

9、est(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 endmoduleFPGA设计袁百灵解决二:module test(d,clk,q3); 解决三: module t

10、est(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返回FPGA设计袁百灵

11、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 moduleFPGA设计袁百灵谢谢大家!FPGA设计袁百灵

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号