基于fpga数字频率计的设计和实现内容摘要:

连接起来,构成各种复杂功能的系统。 FPGA的发展非常迅速,形成了各种不同的结构。 按逻辑功能块的大小分类, FPGA可分为细粒度 FPGA和粗粒度 FPGA。 细粒度 FPGA的 逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度 FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。 从逻辑功能块的结构上分类,可分为查表结构、多路开关结构和多级与非门结构。 根据 FPGA内部连线的结构不同,可分为分段互连型 FPGA和连续互连型 FPGA两类。 分段互连型 FPGA中具有各种不同长度的金属线,各金属线段之间通过开关矩阵或反熔丝编程连接,走线灵活方便,但是无法预测走线延时。 连续互连型 FPGA是利用相同长度的金属线,连接与距离远近无关,布线延时是固定的和可预测的。 Xilinx公司提供的 产品有 XC4000 XC5200, XC9500,XC9500XL, Spartan, Virtex系列。 FPGA是由存放在片内 RAM中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM进行编程。 用户可以根据不同的配置模式,采用不同的编程方式。 加电时, FPGA芯片将 EPROM中数据读入片内编程 RAM中,配置完成后, FPGA进入工作状态。 掉电后, FPGA恢复成白片,内部逻辑关系消失,因此, FPGA能够反复使用。 FPGA的编程无须专用的 FPGA编程器,只须用通用的 EPROM. PROM编程器即可。 当需要 修改 FPGA功能时,只需换一片 EPROM即可。 这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。 因此, FPGA的使用非常灵活。 FPGA有多种配置模式 :并行主模式为一片 FPGA加一片 EPROM的方式。 主从模式可以支持一片 PROM编 13 程多片 FPGA。 串行模式可以采用串行 PROM编程 FPGA。 外设模式可以将 FPGA作为微处理器的外设,由微处理器对其编程。 Xilinx FPGA 设计流程及本文的设计方式选择 Xilinx 作为当今世界上最大的 FPGA/CPLD生产商之一,提供了多种支持Xilinx FPGA/CPLD结构的开发系统开发产品,其中包括具有当代水平的设计软件,与流行原理图编辑器和时序仿真器配合的库和接口软件,以及基于行为级的设计输入工具等等。 其开发软件不断升级,由早期的 Foundation系列逐步发展到现在的 ISE。 ISE是集成综合环境的简称,本文设计选用的是。 完整的 Xilinx FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真和下板调试等主要步骤。 电路设计与输入 (Design Entry) 电路设计与输入是根据工程师的设计方 法将所设计的功能描述给 EDA软件。 通常采用硬件描述语言( HDL)和原理图设计输入方法。 但原理图设计输入法在大型的设计中维护性差,而且所选用的芯片升级换代后,所有的原理图都要作相应的改动。 HDL设计输入法中使用最为广泛的语言是 VHDL、 Verilog HDL,它们共同特点是利于由顶向下设计,利于模块的划分和复用,可移植性好,通用性好。 波形输入法和状态机输入法是两种常用的辅助设计输入方法,可以在某些特殊情况下缓解设计者的工作量。 本文设计选用的是 VHDL语言的设计。 功能仿真 (Behavioral Simulation) 通过功能仿真可以验证电路功能是否符合设计要求,及时发现设计中的错误,加快设计进度,提高设计的可靠性。 常用仿真工具有 :ModelTech公司的 Modelsim, Synopsys公司的 VCS, Canence公司的 NCVerilog和 NCVHDL等。 本文设计选用的是 Modelsim SE。 综合 (Synthesize) 综合指将 HDL语言,原理图等设计输入翻译成由与门,或门,非门, RAM寄存器等基本逻辑单元组成的逻辑连接 (网表 ),并根据目标与要求优化所生成的逻辑连接,输出 edf和 edn等格式的文件 ,供 FPGA厂家的布局布线器进行实现。 常用 FPGA综合工具有 :Synplicity公司的 Synplify/Synplify Pro, Synopsys公司的 FPGA 14 Compiler II, Xilinx集成开发环境自带的 XST(Xilinx Synthesis Technology)等。 由于 Xilinx对自己的 FPGA/CPLD内部结构最为了解,所以本文设计选用的是XST。 综合后仿真 (Postsynthesize Simulation) 综合后仿真用于检查综合结果是否与原设计一致。 综合后仿 真把综合生成的延时文件反标到综合仿真模型中,可估计门延时带来的影响,但是不能估计连线延时,仿真结果与布线后实际情况还有差距。 实现 (Implementation) 使用 FPGA厂商提供的工具软件,根据所选芯片型号,将综合输出的逻辑网表示配置到具体的 FPGA器件上。 对于 Xilinx FPGA,实现过程分为 :翻译(Translate),映射 (MAP)和布局布线 (Place and Route)三个步骤。 因为只有器件开发商最了解器件的内部结构,所以实现步骤必须选用器件开发商提供的软件工具。 布线后 仿真 (PostPlace amp。 Route Simulation) 布线后仿真即时序仿真,是将布局布线的延时文件反标到设计中,使仿真既包含门延时,又包括连线延时,全面准确的反映芯片的实际工作情况。 下板调试 (Download) 设计的最后步骤是将生成的配置文件写入芯片中进行测试。 ISE中包含下载工具 IMPACT,它具有生成 PROM格式的下载文件、向 FPGA/CPLD/PROM下载配置文件、验证配置数据是否正确等功能。 本文运用的配置模式为 JTAG模式 (边界扫描模式 ),通过 TDI(数据输 入)、 TDO(数据输出)、 TMS(测试模式)、 TCK(测试时钟)等四根信号线实现 FPGA的下载与配置。 这种模式下,每个 TCK传送 1bit配置文件。 FPGA 设计原则 FPGA设计的一个重要指导原则:面积和速度的平衡与互换。 这里“面积”指一个设计消耗 FPGA/CPLD的逻辑资源的数量,对于 FPGA可以用所消耗的触发器 (FF)和查找表 (LUT)来衡量,更一般的衡量方式可以用设计所占用的等价逻辑门数来衡量。 “速度”指设计在芯片上稳定运行所能够达到的最高频率,这个频率由设 15 计的时序状况决定,和设计满足的时 钟周期, PAD to PAD Time, Clock Setup Time, Clock Hold Time, ClocktoOutput Delay等众多时序特征量密切相关。 面积(area)和速度 (speed)这两个指标贯穿着 FPGA设计的始终,是设计质量评价的终极标准。 关于面积和速度的两个最基本的概念 :面积与速度的平衡和面积与速度的互换。 科学的设计目标应该是在满足设计时序要求 (包含对设计频率的要求 )的前提下,占用最小的芯片面积。 或者在所规定的面积下,使设计的时序余量更大,频率跑得更高。 面积和速度的地 位是不一样的。 相比之下,满足时序、工作频率的要求更重要一些,当两者冲突时,采用速度优先的准则。 面积和速度的互换是 FPGA设计的一个重要思想。 数字频率计的测量方案选取 测量部分方案比较: 在频率测量方法中 ,常用的有直接测频法、倍频法和等精度测频法。 这三种方案各有利弊 ,其中直接测频法是依据频率的含义把被测频率信号加到闸门的输入端 ,只有在闸门开通时间 T (以 1 s 计 )内 ,被测 (计数 )的脉冲送到十进制计数器进行计数。 设计数器的计数值为 N,则可得到被测信号频率为 f =N。 但是由于闸门的开通、关闭的时间与被测频率信号的跳变难以同步 ,因此采用此测量方法在低频段的相对测量误差可能达到 50% ,即在低频段不能满足设计要求。 但根据三个方案的分析 ,直接测频法比其他两个方案更加简单方便可行 ,直接测频法虽然在低频段测量时误差较大 ,但在低频段我们可以采用直接测周法测量 ,这样就可以提高测量精度了。 直接周期测量法是用被测周期信号直接控制计数门控电路 ,使主门开放时间等于 Tx , 时标为 Ts 的脉冲在主门开放时间进入计数器。 设在 Tx 期间计数值为 N,可以根据 Tx =N Ts 来算得被测信号周期。 与直接 测频法相似 ,经误差分析 ,用该测量法测量时 ,被测信号的周期越短 ,测量误差越大。 也就是说 ,直接周期测量法在高频段时误差较大 ,但同样可以在高频段采用直接测频法来提高测量精度。 占空比测量是分别测被测信号的上升沿脉宽 Tw和 16 周期 T, 并分别将两数值直接显示出来 , 以示占空比 : Q = Tw ∶ T ( 1) 脉冲宽度测量时 ,测量电路在检测到脉冲信号的上升沿时打开计数器 , 在下降沿时关闭计数器。 设脉冲宽度为 Twx , 计数时钟周期为 TS = 1 / fs , 计数结果为 N,则根据 Twx = N / fs = N TS 就可 得出测量结果。 这种脉宽测量方法与周期测量方法基本相同。 根据测频、测周误差分析 ,在不同的测量档位 ,选择合理的时基信号频率 ,可以降低测量误差 ,在此给出数字频率计的量程档位与时基信号分配 ,如表 1 所示。 将数字频率计分成 6 个量程档位 ,在 1MHz、 100kHz、 10 kHz 量程档位完成频率测量。 在 1 ms、 10 ms、 100 ms 量程档完成周期测量。 测量方案确定 综合上述分析,方案三为本设计测量部分最佳选择方案。 方案一 : 采用小规模数字集成电路制作 被测信号经过放大整形变换为脉冲信号后加到主 控门的输入端,时基信号经控制电路产生闸门信号送至主控门,只有在闸门信号采样期间内输入信号才通过主控门,若时基信号周期为 T,进入计数器的输入脉冲数为 N,则被信号的测频率其频率 F=N/T。 17 方案一测频原理图如下 图 : 图 方案二:采用单片机进行测频控制 单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入测频电路,由单片机对测频电路的输出信号进行处理,得出相应的数据送至显示器显示。 方案二测频原理图如下 图 : 图 该方案优点是依赖 成熟的单片机技术、运算功 能较强、软件编程灵活、自由度大、设计成本也较低,缺点是显而易见的,在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,整个系统显得十分复杂,并且单片机的频率不能做得很高,使得测量精度大大降低。 方案三:采用现场可编程门阵列 (FPGA)为控制核心 采用 FPGA 为控制核心,利用 VHDL 语言编程,下载烧制实现。 将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,可实现大规模和超大规模的集成电路,测频测量精度高,测量频率范围大,而且编程灵活、调试方便。 18 第 4 章 简易数字频率计的设计 数字频率计的软件实现 频率计的整体实现结构 设计一个 6 位十进制数字频率计 ,需要由四种器件来组成 ,即 :测频控制信号发生器 (TESTCTL) 、有时钟使能的十进制计数器 (CNT10) 、 24 位锁存器(REG32B) 、 7 段显示译码器 (LEDL7S)。 因为是 6 位十进制数字频率计 ,所以计数器 CNT10需用 6 个 ,7 段显示译码器 LED7 也需用 6 个。 图 电路设计原理框图 19 频率计的具体设计 VHDL (VHSIC Hardware Description Language)即超高速集成电路硬件描述语言。 若按传统的设计方法 ,完成这个频率计需用上述的四种器件共计十几块芯片构成 ,不仅体积大 ,而且因外接引脚多 ,影响可靠性。 而采用 EDA 技术 ,整个设计分仅两步 :第一步 ,在 MAX + PLUS Ⅱ开发工具中 ,先用 VHDL 语言分别编写出以上四种器件的文本文件 (称为底层文件 ) ,并将它们分别转换成相应的器件 ,然后分别进行时序仿真 ,使每个器件的时序仿真结果与设计要求一致。 第二步 ,将这四种器件共十几块芯片按电路设计图连接起来 ,形成顶层文件后进行整个系统的综合 ,并将整个频率计作 为一个器件进行时序仿真。 下面分步给出设计过程。 ( 1)测频控制信号发生器 频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。 为此 ,测频控制信号发生器 TESTCTL 应设置一个控制信号时钟 CLK,一个计数使能信号输出端TESTEN、一个与 TESTEN 输出信号反向的锁存输出信号 LOAD、和清零输出信号CLRJ_CNT。 如 CLK的输入频率为 1HZ ,则输出信号端 TESTEN 输出一个脉宽恰好为 1 秒的周期信号 ,可以作为闸门信号用。 由它对频率计的每一个计数器的使能端进行同步控制。 当 JSEN 高电平时允许计数 ,低 电平时停止计数 ,并保持所计的数。 在停止计数期间 ,锁存信号 LOAD 的上跳沿将计数器在前 1 秒钟的计数值锁存进24 位锁存 SCQ32B ,由 7 段译码器译出并稳定显示。 设置锁存器的好处是 ,显示的数据稳定 ,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。