FPGA设计.

Slides:



Advertisements
Similar presentations
高级服务器设计和实现 1 —— 基础与进阶 余锋
Advertisements

竹苗區100學年度擴大高中職 免試入學宣導說明會
通州国税纳税信用等级A类纳税人 取消发票认证操作培训 2016 通州国税.
中國古典文獻學 主講:羅積勇教授.
Introduction to Verilog
用“自言自语法”提高学生 英语口头表达能力 李奉栖.
EDA技术 第9章 FPGA硬件设计.
第一单元 人在社会中生活 综合探究一 从地图上获取信息 第1课时 带着地图定向越野间.
实验四 利用中规模芯片设计时序电路(二).
第二部分 人文地理 第一单元 人口与城市 第5课 城市化过程和特点. 第二部分 人文地理 第一单元 人口与城市 第5课 城市化过程和特点.
第2章 FPGA/CPLD结构与应用.
Chapter 5 Sequential Logic Circuit
秦王该不该杀? 张艺谋把秦始皇描述为千古一帝的英雄,对这个问题,你有什么看法?.
第10章 FPGA硬件设计 <EDA技术与应用> 课程讲义
Chapter 4 流程控制.
可综合Verilog语言及FPGA验证
Verilog HDL 及Modelsim仿真
国产动画 ——童年的回忆.
Greatest Common Divisor ---最大公约数
水煮FPGA 传统FPGA设计流程简介.
《中级经济法》模考点评 主讲老师:武劲松.
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 30, 2017 ZDMC.
Chapter 5 Verilog 硬體描述語言
Chapter 5 Verilog硬體描述語言
第1章 概 述.
Verilog HDL 数字系统设计及实践 第5章 时序逻辑建模.
Ch01-2 Verilog語法 資料流(DataFlow)設計 行為(Behavior)設計
第17章 Verilog中的高级结构 学习内容: 任务和函数的定义和调用 怎样使用命名块 怎样禁止命名块和任务 有限状态机(FSM)及建模.
EDA技术 廖义奎.
第四阶段实验 ISP器件的设计与应用 一、实验目的 二、实验内容与要求 三、ISP器件的开发流程 四、EDA Pro2K实验系统介绍
Danny Mok Altera HK FAE AHDL培训教材 Danny Mok Altera HK FAE 2018/12/9 P.1.
第四阶段实验 Verilog HDL简介 1 Verilog描述的一般结构 2 Verilog HDL基础知识 3 设计举例
摩擦力.
 与非门参数测试与组合逻辑电路设计  集成触发器  计数、译码、显示电路
课程设计.
语法进阶.
时序电路设计 刘鹏 浙江大学信息与电子工程系 Apr. 24, 2011 EE141
第二章 Java语言基础.
CPU结构和功能.
复杂数字逻辑系统的 Verilog HDL 设计方法简介
精简指令集(RISC)CPU的构造原理和设计方法
14.2 时序逻辑电路的分析 概述 时序逻辑电路是由存储电路和组合逻辑电路共同组成的,它的输出状态不仅与输入有关,还与电路的过去状态有关,即具有存储功能。 输入信号 输出信号 输出方程 驱动方程 描述时序逻辑电路的三个方程 状态方程 存储电路的输入信号 时序逻辑电路构成框图 存储电路的输出信号.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
C语言程序设计 主讲教师:陆幼利.
班級:財金一A 姓名:吳佩玲 學號:4990S024 指導老師:蔡享翰 老師
第14章 对验证的支持 学习内容 理解Verilog文本输出 理解不同的读取仿真时间的系统函数 理解 Verilog文件I/O功能.
计算机学院 数字逻辑实验的要求.
晶体管及其小信号放大 -单管共射电路的频率特性.
计算机EDA设计 教 程 北航计算机学院 艾明晶.
晶体管及其小信号放大 -单管共射电路的频率特性.
设计描述 从16位乘法器的设计谈起.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
设计示例一 用门级结构描述D触发器:.
信号量(Semaphore).
核探测与核电子学国家重点实验室 中国科学技术大学近代物理系
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
埃及永生之旅 報告者:陳菱霙.
第四章 基本平面图形 线段、射线、直线.
HSC高速输出例程 HORNER APG.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
FPGA组合逻辑 王安然.
Verilog HDL 基本语法 STEP 2016/12/3.
FPGA有限状态机设计 王安然.
按键处理部分 王安然.
國立政治大學 96學年度學雜費調整 第二次公聽會
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
解题报告 七(5)班 严崟杰 03:20.
Presentation transcript:

FPGA设计

内容 1FPGA设计流程 2设计举例 3FPGA设计基本原则 4其它

典型的FPGA设计流程 设计输入 前仿真(功能仿真) 综合(优化、综合、映射) 布局布线 后仿真(时序仿真) 生成下载文件,进行板级调试

FPGA设计的基本原则 系统原则 硬件原则 同步设计原则 面积和速度的平衡和互换

系统原则 原则: FPGA/CPLD的资源情况: 返回   一般是由底层可编程硬件单元、BLOCK RAM资源、布线资源、可配置的IO单元、时钟资源等组成。                    返回    

可编程的硬件单元 底层的可编程硬件单元=FF+LUT  FF --触发器  LUT --查找表                   返回

时钟资源 锁相环(Phase-Locked Loop,PLL) 延迟锁定环(Delay-Locked Loop,DLL) 返回

硬件原则 1.评判一段HDL代码的优劣标准: 2.举例:比较Verilog和C语言的区别   其描述并实现的硬件电路的性能(包括面  积和速度两个方面)。 2.举例:比较Verilog和C语言的区别 C: For(I=0;I<16;I++) { function(); } Verilog: reg [3:0]counter; always @(negedge rst_n or negedge clk) always @(negedge clk) begin begin if(!rst_n) case(counter) counter<=4’b0; 4’b0000: else 4’b0001: counter <= counter+1; …… end endcase end     

C: Verilog: if() … 1) if() … else… else … 2)swithch(variable) 2) case (var) { value1: … case value1 …break; value2: … case value2 … break; … … … … default: … } endcase 解决办法: 一:使用if() …;if() …;的结构描述出不带优先级的“平行”条件判断语句; 二:使用软件将优先级树优化掉                       返回

同步设计原则 异步电路特点: 1.电路的核心逻辑用组合逻辑电路实现。比 如异步的FIFO/RAM读写信号,地址译码 等电路; 2.电路的主要信号,输出信号等并不依赖于  任何一个时钟信号。不是由时钟信号驱动  FF产生; 3.异步时序电路的最大缺点是容易产生毛刺。 

同步时序电路的特点: 同步时序电路设计的几个问题: 1.电路的核心逻辑用各种各样的触发器实现 2.电路的主要信号、输出信号等都是由某个时  钟沿驱动触发器产生出来的; 3.同步时序电路可以很好的避免毛刺。 同步时序电路设计的几个问题: 1.是否同步时序电路一定比异步电路更多使用  逻辑资源? 2.如何实现同步时序电路的延时? 3.同步时序电路的时钟如何产生?                    返回     

面积与速度的平衡和互换原则 概念: 面积与速度的平衡: 面积与速度的互换: 面积:指一个设计消耗的FPGA/CPLD的逻辑 资源的数量 速度:指设计在芯片上稳定运行,所能够达到   的最高频率 面积与速度的平衡:    对面积和速度的要求,和产品的质量和 成本有直接关系。 面积与速度的互换:

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

                  返回

其它 阻塞赋值与非阻塞赋值的区别和用法 module non_block (a,c,clk); 非阻塞赋值 input a; input clk; output c; reg b,c; always @(negedge clk) begin b<=a; c<=b;  end  endmodule

module non_block (a,c,clk); 阻塞赋值   input a;   input clk; output c; reg b,c; always @(negedge clk) begin b=a; c=b; end endmodule

两种赋值方式的使用 规则: 1.在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 <=tmp1 | tmp2; end  end endmodule 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         end endmodule     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) 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 <= 1’b0; if(!rst_n) q <= 1’b0; else begin else begin tmp = a & b; tmp <= a & b; q <= tmp; q = tmp; end end end end end module end module

谢谢大家!