说说FPGA系统的仿真和测试

发布者:RadiantSerenity最新更新时间:2014-12-17 来源: eccn关键字:仿真验证模型  FPGA系统 手机看文章 扫描二维码
随时随地手机看文章

一、概述

FPGA仿真方法:

(1)交互式仿真方法:利用EDA工具的仿真器进行仿真,使用方便,但输入输出不便于记录规档,当输入量较多时不便于观察和比较。

(2)测试平台法:为设计模块专门设计的仿真程序,可以实现对被测模块自动输入测试矢量,并通过波形输出文件记录输出,便于将仿真结果记录归档和比较。

二、仿真程序的设计方法

1 仿真的三个阶段

(1)行为仿真:目的是验证系统的数学模型和行为是否正确,对系统的描述的抽象程度较高。在行为仿真时,VHDL的语法语句都可以执行。

(2)RTL仿真:目的是使被仿真模块符合逻辑综合工具的要求,使其能生成门级逻辑电路。在RTL仿真时,不能使用VHDL中一些不可综合和难以综合的语句和数据类型。该级仿真不考虑惯性延时,但要仿真传输延时。

(3)门级仿真:门级电路的仿真主要是验证系统的工作速度,惯性延时仅仅是仿真的时候有用在综合的时候将被忽略。

2 仿真程序的内容

(1)被测实体的引入。
(2)被测实体仿真信号的输入。
(3)被测实体工作状态的激活。
(4)被测实体信号的输出
(5)被测实体功能仿真的结果比较,并给出辨别信息
(6)被测实体的仿真波形比较处理

3 仿真要注意的地方

(1)仿真信号可以由程序直接产生,也可以用TEXTIO文件产生后读入。

(2)仿真程序中可以简化实体描述,省略有关端口的描述。仿真程序实体描述的简化形式为:
ENTITY 测试平台名 IS
END 测试平台名;

(3)对于功能仿真结果的判断,可以用断言语句(ASSORT)描述。

(4)为了比较和分析电子系统的功能,寻求实现指标的最佳结构,往往利用一个测试平台对实体的不同结构进行仿真,一般是应用配置语句为同一被测实体选用多个结构体。

CONFIGURATION 测试平台名 OF 被测实体名 IS
FOR 被测实体的A的结构体名
END FOR;
END 测试平台名;
同样,若选用结构体B,则配置语句可写为:

CONFIGURATION 测试平台名 OF 被测实体名 IS
FOR 被测实体的B的结构体名
END FOR;

END 测试平台名;

4 VHDL仿真程序结构

测试平台仅仅是用于仿真,因此可以利用所有的行为描述语言进行描述,下表表示了一个测试平台所包含的部分,典型的测试平台将包括测试结果和错误报告结果。

(1)产生时钟信号

-- Declare a clock period constant.
Constant ClockPeriod : TIME := 10 ns;
-- Clock Generation method 1:
Clock <= not Clock after ClockPeriod / 2;
-- Clock Generation method 2:
GENERATE CLOCK: process
begin
wait for (ClockPeriod / 2)
Clock <= ’1’;
wait for (ClockPeriod / 2)
Clock <= ’0’;
end process;

(2)提供仿真信号

提供仿真信号可以有两种方法:绝对时间仿真和相对时间仿真。在绝对时间仿真方法中,仿真时间只是相对于零时刻的仿真时间。在相对时间仿真方法中,仿真的时间首先提供一个初值,在后继的时间设置中相对于该初始时间进行事件动作。

绝对时间仿真:

MainStimulus: process begin
Reset <= ’1’;
Load <= ’0’;
Count_UpDn <= ’0’;
wait for 100 ns;
Reset <= ’0’;
wait for 20 ns;
Load <= ’1’;
wait for 20 ns;
Count_UpDn <= ’1’;
end process;

相对时间仿真:

Process (Clock)
Begin
If rising_edge(Clock) then
TB_Count <= TB_Count + 1;
end if;
end process;
SecondStimulus: process begin
if (TB_Count <= 5) then
Reset <= ’1’;
Load <= ’0’;
Count_UpDn <= ’0’;
Else
Reset <= ’0’;
Load <= ‘1’;
Count_UpDn <= ‘1’;
end process;

FinalStimulus: process begin
if (Count = "1100") then
Count_UpDn <= ’0’;
report "Terminal Count
Reached, now counting down."
end if;

end process;

(3)显示结果
VHDL提供标准的std_textio函数包把输入输出结果显示在终端上。

5 简单的仿真程序

library IEEE;

use IEEE.std_logic_1164.all;
entity testbench is
end entity testbench;
architecture test_reg of testbench
component shift_reg is
port (clock : in std_logic;
reset : in std_logic;
load : in std_logic;
sel : in std_logic_vector(1 downto 0);
data : in std_logic_vector(4 downto 0);
shiftreg : out std_logic_vector(4 downto 0));
end component;
signal clock, reset, load: std_logic;
signal shiftreg, data: std_logic_vector(4 downto 0);
signal sel: std_logic_vector(1 downto 0);
constant ClockPeriod : TIME := 50 ns;
begin
UUT : shift_reg port map (clock => clock, reset => reset,
load => load, data => data,
shiftreg => shiftreg);
process begin
clock <= not clock after (ClockPeriod / 2);
end process;
process begin
reset <= ’1’;
data <= "00000";
load <= ’0’;

set <= "00";

wait for 200 ns;

reset <= ’0’;

load <= ’1’;

wait for 200 ns;

data <= "00001";

wait for 100 ns;

sel <= "01";

load <= ’0’;

wait for 200 ns;

sel <= "10";

wait for 1000 ns;

end process;

end architecture test_reg;

6 TEXTIO建立测试程序

在由仿真程序直接产生输入信号的方法中,测试矢量是仿真程序的一个部分,如果系统比较复杂,测试矢量的数目非常大,修改测试矢量时就必须修改程序,重新编译和仿真。工作量大。因此,在测试矢量非常大的时候可以用TEXTIO的方法来进行仿真。

TEXTIO仿真方法:测试矢量从仿真程序中分离出来,单独存于一个文件中(即TEXTIO文件),在仿真时,根据定时要求按行读出,并赋予相应的输入信号。这种方法允许采用同一个测试平台,通过不同的测试矢量文件进行不同的仿真。值得注意的是,测试矢量文件的读取,需要利用TEXTIO程序包的功能。在TEXTIO程序包中,包含有对文本文件进行读写的过程和函数。

LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
LIBRARY ieee;
USE IEEE.STD_LOGIC_TEXTIO.ALL;
USE STD.TEXTIO.ALL;
ENTITY testbench IS
END testbench;
ARCHITECTURE testbench_arch OF testbench IS
COMPONENT stopwatch

关键字:仿真验证模型  FPGA系统 引用地址:说说FPGA系统的仿真和测试

上一篇:导弹综合测试系统的程控电源设计
下一篇:数字开关电源控制系统测试过程

推荐阅读最新更新时间:2024-03-30 22:51

基于nRF24L01和Actel FPGA的智能探测系统设计
摘要:设计了基于nRF24L01无线数据传输芯片和Fusion StartKit开发板的智能探测系统。通过开启nRF24L01的ACK PAYLOAD功能实现车载系统与上位机之间的双向通信,采用Actel公司带有APB3总线的8051S软核在Fusion StartKit开发板上构建片上系统,使用MFC编写Windows环境下的人机交互界面,实现了具有实时数据传送、自动避障、远程操控等功能的智能探测系统。   目前一些恶劣或危险的环境人类仍然无法置身其中进行现场检测,如出现险情的矿井地道、地形崎岖的岩洞等,很难取得现场的参数。在这种情况下只有借助于智能探测装置。因智能小车控制方便、行动灵活,对比其他载体工具更容易胜任探测任务,因此成
[工业控制]
基于nRF24L01和Actel <font color='red'>FPGA</font>的智能探测<font color='red'>系统</font>设计
基于FPGA的电子稳像系统的设计
电子摄像系统已广泛应用于军用及民用测绘系统中,但是效果受到其载体不同时刻姿态变化或震动的影响。当工作环境比较恶劣,尤其是在航空或野外操作时,支撑摄像机平台的震动会引起图像画面的抖动,令观察者视觉疲劳,从面产生漏警和虚警。所以在运行中,如何稳像成为十分重要的问题,特别是在长焦距、高分辨力的监视跟踪系统中更加突出。具璞蒿、实性性强、体积小巧等特点,得到更广泛的应用。 稳像系统的反应速度是电子稳像要解决的关键技术之一。传统的基于“摄像机-图像采集卡-计算机”模式的稳像系统、图像检测和匹配算法全部由计算机以软件方式实现。尽管当今计算机的性能很高,能够部分满足单传感器电子稳系统的实时处理要求,但在以下几个方面有着难以解决的问题:首先,
[嵌入式]
基于<font color='red'>FPGA</font>的电子稳像<font color='red'>系统</font>的设计
基于FPGA的相检宽带测频系统的设计
在电子丈量技术中,频率丈量是最基本的丈量之一。常用的测频法和测周期法在实际应用中具有较大的局限性,并且对被测信号的计数存在 1个字的误差。而在直接测频方法的基础上发展起来的等精度测频方法消除了计数所产生的误差,实现了宽频率范围内的高精度丈量,但是它不能消除和降低标频所引进的误差。本文将先容的系统采用相检宽带测频技术,不仅实现了对被测信号的同步,也实现了对标频信号的同步,大大消除了一般测频系统中的 1个字的计数误差,并且结合了现场可编程门阵列(FPGA),具有集成度高、高速和高可靠性的特点,使频率的丈量范围可达到1Hz~2.4GHz,测频精度在 1s闸门下达到10-11数目级。 测频原理 本测频系统中采用的测
[测试测量]
基于<font color='red'>FPGA</font>的相检宽带测频<font color='red'>系统</font>的设计
基于FPGA的DDR3多端口读写存储管理系统设计
机载视频图形显示系统主要实现2D图形的绘制,构成各种飞行参数画面,同时叠加实时的外景视频。由于FPGA具有强大逻辑资源、丰富IP核等优点,基于FPGA的嵌入式系统架构是机载视频图形显示系统理想的架构选择。视频处理和图形生成需要存储海量数据,FPGA内部的存储资源无法满足存储需求,因此需要配置外部存储器。 与DDR2 SDRAM相比,DDR3 SDRAM带宽更好高、传输速率更快且更省电,能够满足吞吐量大、功耗低的需求,因此选择DDR3 SDRAM作为机载视频图形显示系统的外部存储器。 本文以Kintex-7系列XC7K410T FPGA芯片和两片MT41J128M16 DDR3 SDRAM芯片为硬件平台,设计并实现了基于FPGA
[电源管理]
基于<font color='red'>FPGA</font>的DDR3多端口读写存储管理<font color='red'>系统</font>设计
基于FPGA实现多路模拟信号自适应采集系统的设计
引言     目前,在PCM/FM遥测体系中模拟信号采集普遍采用8位量化,全部模拟信号均归一化到O~5 V范围内,随着需要采集的模拟信号的类型多样化,势必增加信号调理电路的多样性,不利于系统的简化和模块化。在量化位数一定的系统中,被衰减处理的信号中实际量化误差等于N倍(N是信号被衰减的倍数)的最小量化误差,因此合理的信号调理电路和A/D取值是保证量化精度的关键。本文提供的方式有效地解决了这个问题,既简化了前端信号调理电路的复杂度,又充分利用了A/D转换器的输入电压动态范围和量化位数优势,实现了对多路模拟信号的自适应采集,对其他信号采集系统也具有一定的借鉴意义。 l 系统设计     该系统主要由信号调理电路、采集电路和时序控
[嵌入式]
基于ARM的FPGA从串配置方案设计适用于嵌入式系统的应用
1 、引言 ARM(Advanced RISC Machines)既可以认为是一个公司。也可以认为是对一类微处理器的统称,还可以认为是一项技术。基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面。到目前为止,ARM微处理器及技术已经广泛应用到各个领域,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等。 FPGA(Field Programmable Gate Array)是一种高密度现场可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置到器件内部的静态配置数据存储器(SRAM)来实现的。FPGA具有可重复编程性,能灵活实现各种逻辑功能。
[单片机]
基于ARM的<font color='red'>FPGA</font>从串配置方案设计适用于嵌入式<font color='red'>系统</font>的应用
基于ARM+FPGA+多DSP的嵌入式实时图像处理系统
摘 要: 介绍了一款通用的嵌入式图像处理系统的设计方法。系统采用FPGA设计FIFO实现ARM与多DSP的高速数据传输方法。实验结果表明,所设计的多DSP协同工作的实时嵌入式图像处理系统,其工作性能稳定、数据处理能力强,适用于高端的雷达信号处理、电子对抗、超声图像处理等场合。 关键词: ARM11; TMS320C6416T; FIFO; FPGA; 多DSP嵌入式系统 实时图像处理、高速数据运算处理要求其系统具有对数据处理速度快、数据吞吐率高以及多任务处理功能。目前大多数方案都是采用HPI数据传输方式,将ARM和DSP进行组合完成一些图像处理,DSP处理器只是完成图像采集、压缩、编码等简单的处理 工作,不能满足实时的智能
[嵌入式]
基于ARM+<font color='red'>FPGA</font>+多DSP的嵌入式实时图像处理<font color='red'>系统</font>
DSP和FPGA构成的感应发电机励磁控制系统
   摘 要: 介绍了针对3/3相双绕组感应发电机设计的励磁系统,该系统由DSP和FPGA构成。给出了控制系统的接口电路和实验结果。    关键词: DSP FPGA 3/3相双绕组感应发电机 1 系统简介   3/3相双绕组感应发电机带有两个绕组:励磁补偿绕组和功率绕组,如图1所示。励磁补偿绕组上接一个电力电子变换装置,用来提供感应发电机需要的无功功率,使功率绕组上输出一个稳定的直流电压。   图1中各参数的含义如下:   i sa , i sb , i sc ——补偿绕组中的励磁电流;   u sa , u sb , u sc ——补偿绕组相电压;   i pa , i pb , i pc ——功
[嵌入式]
DSP和<font color='red'>FPGA</font>构成的感应发电机励磁控制<font color='red'>系统</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved