基于FPGA的数字系统设计.pptx

上传人:一*** 文档编号:82681462 上传时间:2023-03-26 格式:PPTX 页数:79 大小:3.26MB
返回 下载 相关 举报
基于FPGA的数字系统设计.pptx_第1页
第1页 / 共79页
基于FPGA的数字系统设计.pptx_第2页
第2页 / 共79页
点击查看更多>>
资源描述

《基于FPGA的数字系统设计.pptx》由会员分享,可在线阅读,更多相关《基于FPGA的数字系统设计.pptx(79页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1常见状态分配编码#BinaryOne-HotGrayJohnson01234567891011121314150000000100100011010001010110011110001001101010111100110111101111000000000000000100000000000000100000000000000100000000000000100000000000000100000000000000100000000000000100000000000000100000000000000100000000000000100000000000000100000000000000

2、1000000000000001000000000000001000000000000001000000000000001000000000000000000000010011001001100111010101001100110111111110101010111001100000000000000000010000001100000111000011110001111100111111011111111111111111111110111111001111100011110000111000001100000010000000第1页/共79页2Binary码:使用最少数量的触发器,译码逻辑

3、较复杂。Gray码:与Binary位数相同,其特点是两个相邻的码值仅变化一位,使用时可减少电路中的电噪声。Johnson码:特点同Gray码。但使用位数较多。Gray码和Johnson码的优点是不会产生中间过渡状态。第2页/共79页3One-Hot(独热)码、One-Cold(独冷)码:每个状态只有一个触发器有效;下一状态及输出译码逻辑简单;one-hot机有更快的速度;状态的增减修改方便;用较少的位完成状态转移,比二进制编 码更可靠。第3页/共79页46.9 隐式状态机、寄存器及 计数器的综合状态机分为:显式状态机(FSM)、隐式状态机第4页/共79页56.9.1 隐式状态机隐式状态机:不能

4、用明确的寄存器变量(reg)来表示状态机的状态值,而是由周期性(always)行为中动作的进程来隐性定义其状态。任何一个在每个时钟周期中具有相同动作流的时序机都是一个单周期隐式状态机,可用一个状态来描述其动作。第5页/共79页6 always (posedge clk)begin reg_a=reg_b;/第一个周期执行 reg_c=reg_d;(posedge clk)begin reg_g=reg_f;/第二个周期执行 reg_m=reg_r;end end 隐式状态机可以内嵌多个时钟同步的事件控制表达式,多个事件控制表达式将行为动作分派到机器的不同时钟周期。第6页/共79页76.9.2

5、计数器综合例6.29 4位行波计数器第7页/共79页8第8页/共79页96.9.3 寄存器综合例6.31 触发器输出综合 module shift_1(output reg sig_d,new_signal,input data_in,clock,reset);reg sig_a,sig_b,sig_c;always(posedge reset,posedge clock)begin if(reset=1b1)begin sig_a=0;sig_b=0;sig_c=0;sig_d=0;new_signal=0;end 第9页/共79页10 else begin sig_a=data_in;si

6、g_b=sig_a;sig_c=sig_b;sig_d=sig_c;new_signal=(sig_a)&sig_b;end end endmodule 第10页/共79页11综合电路第11页/共79页12例6.32 组合输出综合 module shift_1(output reg sig_d,output new_signal,input data_in,clock,reset);reg sig_a,sig_b,sig_c;always(posedge reset or posedge clock)begin if(reset=1b1)begin sig_a=0;sig_b=0;sig_c=

7、0;sig_d=0;end 第12页/共79页13 else begin sig_a=data_in;sig_b=sig_a;sig_c=sig_b;sig_d=sig_c;end end assign new_signal=(sig_a)&sig_b;endmodule 第13页/共79页14综合电路第14页/共79页156.10 复位复位分为:1、同步复位、异步复位:同步复位稳定可靠、抗干扰。异步复位不可靠,毛刺(glitch)会 产生干扰。2、不完整复位、完整复位:信号的复位必须完整。否则系统工作 不正常或综合出额外的逻辑。第15页/共79页16例6.34 检测两个连续位是否相等第16页

8、/共79页17第17页/共79页18不完全复位仿真结果:完全复位仿真结果:第18页/共79页19不完全复位综合结果:第19页/共79页20完全复位综合结果:第20页/共79页216.11 门控时钟与时钟使能综合门控时钟(Gated Clocks)由内部组合逻辑产生的信号作为时钟,又称为阵列时钟。派生时钟:由分频、倍频等产生的信号作为时钟。门控(派生)时钟的问题:(1)容易产生“毛刺”,触发器工作不可靠 (2)增加了时钟偏移(skew)应坚决避免使用门控时钟。第21页/共79页22不可靠的门控(派生)时钟:RCO计数器第22页/共79页23不可靠的门控(派生)时钟转换为全局时钟:第23页/共79

9、页24时钟使能描述与综合:module best_gated_clock(output reg q,input clock,reset_,data,data_gate);always (posedge clock or negedge reset_)if(reset_=0)q=0;else if(data_gate)q=data;endmodule第24页/共79页25综合电路:第25页/共79页266.12 可预期的综合结果 6.12.1 数据类型综合 设计中的输入输出综合时保留;内部使用的线网变量在综合时可能会被删除;寄存类型变量可能被综合成硬件寄存器;未指定大小的整数会被综合成32位的硬

10、件结构;用定长数字(如:8b0110_1110)以减少所占用的硬件资源;x值或z值没有对应的硬件生成。第26页/共79页276.12.2 运算符分组 运算符+,-,=可直接映射为一个库单元,或转换成等效的布尔方程组。移位运算符()在常数位移位的条件下可综合。条件运算符(?:)可综合成库mux或完成mux功能的逻辑门。第27页/共79页28例6.35 运算符分组 module operator_group(output 4:0 sum1,sum2,input 3:0 a,b,c,d);assign sum1=a+b+c+d;assign sum2=(a+b)+(c+d);endmodule第28

11、页/共79页29综合电路:第29页/共79页306.12.3 表达式替代例6.36第30页/共79页31第31页/共79页32第32页/共79页33第33页/共79页346.13 循环的综合Verilog的循环语句:for、forever、repeat、while第34页/共79页35静态循环:循环的迭代次数在仿真前能由编译器确定(即迭代次数是固定的并且与数据无关)。非静态循环:循环的迭代次数是由运算中的某个变量决定的。与数据相关。第35页/共79页36第36页/共79页376.13.1 不带内嵌定时控制的 静态循环例6.38 求数据中1的个数。单个时钟周期内完成。循环不包含内部定时控制,是一

12、个静 态循环,即循环次数与输入数据无关。循环计算生成组合逻辑电路,采用寄 存类型输出第37页/共79页38第38页/共79页39仿真结果:第39页/共79页40第40页/共79页416.13.2 带内嵌定时控制的 静态循环 如果一个静态循环具有一个内嵌边沿敏感事件控制表达式,该循环的计算可以被外部时钟信号同步,并且可分布在一个或多个时钟周期上。第41页/共79页42例6.39 求数据中1的位数的等效描述一第42页/共79页43第43页/共79页44例6.39 求数据中1的位数的等效描述二第44页/共79页45第45页/共79页46例6.39 求数据中1的位数的等效描述三第46页/共79页47三

13、种描述的仿真结果:第47页/共79页486.13.3 不带内嵌定时控制的 非静态循环 对于仿真前不能确定循环次数的非静态循环,如果该循环没有内嵌定时控制,则其行为能够被仿真,但不能综合。因为循环次数依赖于数据,此种循环不能静态地展开。第48页/共79页49例6.40 第49页/共79页50仿真结果:第50页/共79页51仿真结果:第51页/共79页526.13.4 带内嵌定时控制的 非静态循环 带内嵌定时控制的非静态循环可以实现多周期运算。数据依赖性并不是综合的障碍,可将循环的动作分布到多个时钟周期上实现。第52页/共79页53例6.41 采用while循环内部的边沿敏感 定时控制第53页/共

14、79页54第54页/共79页55仿真结果:输出计算时间可变第55页/共79页56消除数据依赖性的描述方式:第56页/共79页57第57页/共79页58第58页/共79页59仿真结果:第59页/共79页60第60页/共79页616.13.5 用状态机替代 不可综合的循环 综合工具不支持没有内嵌定时控制的非静态循环。其循环结构可由等效的可综合时序行为替代。第61页/共79页62例6.42对数据字中的1计数的ASMD图第62页/共79页第63页/共79页64第64页/共79页65第65页/共79页66第66页/共79页67第67页/共79页68第68页/共79页69仿真结果:第69页/共79页70第

15、70页/共79页71例6.43 隐式状态机描述第71页/共79页72第72页/共79页736.15 设计划分 设计划分是高效逻辑综合的重要因素。划分的不同方式会在很大程度上影响逻辑综合工具的输出。模块划分原则:(1)应沿功能线分割成较小的功能单元,每 个功能单元都有一个公共的时钟域,并 且每个功能单元都能独立地进行验证。第73页/共79页746.15 设计划分模块划分原则:(2)功能相关的逻辑应组合在一起。(3)不同时钟域的逻辑应封装在不同的划分块 中。用同步器使信号穿越不同的时钟域。(4)不应把组合逻辑分配在模块之间,应保留 模块的边界。第74页/共79页75 划分技术水平划分:使用位划分方

16、式为逻辑综合工具提 供更小的模块进行优化。垂直划分:把模块按功能划分成更小的模块。并行化设计:用更多资源构成速度更快的设计。第75页/共79页76逻辑综合建模技巧完全同步设计,禁用门控时钟。禁用计数器分频后的信号做其他模块的时钟。一个模块只用一个时钟。禁止采用混合上升沿与下降沿的设计。进入FPGA的信号必须先同步,所有模块的输出都要寄存器化,提高系统的工作频率。第76页/共79页77逻辑综合建模技巧避免高层的循环结构 综合工具可能无法产生优化的结果。避免嵌套使用if-then-else语句 大多数工具能够用并行的方式实现这个语句,但是,多重嵌套 的if-then-else语句可能导致优先级编码逻辑。对较大的译码器设计,使用case语句 不要使用if-then-else。第77页/共79页78逻辑综合建模技巧为算术和逻辑操作排序或分组。避免未经注意产生的latch。尽量在底层模块上做逻辑,在高层模块做例化,顶层模块只能做例化。给设计加上时序约束。设计要参数化。信号命名要规范化。第78页/共79页感谢您的观看!第79页/共79页

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

当前位置:首页 > 管理文献 > 管理工具

本站为文档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