《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA仿真方法介紹及其仿真程序設計
FPGA仿真方法介紹及其仿真程序設計
摘要: 交互式仿真方法:利用EDA工具的仿真器進行仿真,使用方便,但輸入輸出不便于記錄規檔,當輸入量較多時不便于觀察和比較。測試平臺法:為設計模塊專門設計的仿真程序,可以實現對被測模塊自動輸入測試矢量,并通過波形輸出文件記錄輸出,便于將仿真結果記錄歸檔和比較。
Abstract:
Key words :

一、概述

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩精品欧美日韩精品| 亚洲国产精品专区久久| 欧美a级一区二区| 久久久久久久久久久久久久一区| 亚洲欧美久久久久一区二区三区| 99re热这里只有精品免费视频| 亚洲国产精品成人综合| 欧美有码在线观看视频| 校园春色国产精品| 香蕉久久夜色精品国产| 亚洲摸下面视频| 亚洲欧美中日韩| 香蕉成人啪国产精品视频综合网| 亚洲欧美日韩精品综合在线观看| 亚洲午夜av| 亚洲一区二区三区精品在线| 亚洲视频在线视频| 亚洲视频一区二区免费在线观看| 一区二区三区日韩| 一区二区三区不卡视频在线观看| 一区二区三欧美| 亚洲无线视频| 欧美一区二区日韩| 亚洲成人在线视频播放 | 亚洲三级网站| 亚洲精品视频在线观看免费| 亚洲欧洲三级电影| 日韩天堂在线观看| 亚洲视频精品在线| 亚洲欧美视频在线| 欧美一区午夜精品| 亚洲国产导航| 日韩一级不卡| 亚洲在线成人| 久久久久国产精品一区| 欧美高清在线播放| 欧美午夜一区二区三区免费大片| 国产精品欧美日韩久久| 国产自产v一区二区三区c| **欧美日韩vr在线| 亚洲开发第一视频在线播放| 亚洲午夜久久久久久久久电影院| 午夜精品久久久久久久久久久久| 久久国产一二区| avtt综合网| 性高湖久久久久久久久| 久久人人九九| 欧美日韩精品一区二区三区四区 | 久久精品1区| 一区二区av在线| 欧美一区二区日韩一区二区| 老鸭窝91久久精品色噜噜导演| 欧美激情精品久久久久久久变态| 欧美系列一区| 狠狠色2019综合网| 一本久久综合亚洲鲁鲁| 欧美淫片网站| 在线视频欧美日韩| 久久九九热re6这里有精品| 欧美黄色影院| 国产日韩精品一区二区| 亚洲欧洲另类国产综合| 亚洲欧美国产va在线影院| 亚洲人午夜精品| 欧美在线欧美在线| 欧美精品在线视频| 国产在线精品自拍| 在线视频亚洲一区| 亚洲欧洲综合| 欧美一区二区在线| 欧美日韩性生活视频| 国外成人免费视频| 亚洲网站在线播放| 亚洲美女区一区| 久久精品视频免费播放| 欧美视频久久| 亚洲国产精品精华液2区45| 亚洲尤物在线视频观看| 亚洲免费成人| 久久久久久自在自线| 欧美三区免费完整视频在线观看| 黄色精品一区二区| 亚洲一区二区欧美| 一区二区欧美在线| 免费成人高清视频| 国产丝袜一区二区| 亚洲视频一区| 在线视频一区观看| 免费高清在线一区| 国产香蕉97碰碰久久人人| 中文有码久久| 亚洲最新合集| 欧美福利一区二区| 狠狠爱综合网| 亚洲综合久久久久| 亚洲综合大片69999| 欧美日韩高清在线观看| 极品日韩久久| 欧美一区二区三区在线免费观看| 亚洲欧美在线网| 国产精品qvod| aa成人免费视频| 一区二区国产精品| 欧美激情综合网| 亚洲国产欧美久久| 亚洲国产你懂的| 久久躁日日躁aaaaxxxx| 国产一区二区三区久久久久久久久| 亚洲午夜精品网| 亚洲欧美第一页| 欧美午夜在线观看| 一区二区三区高清在线观看| 99热在线精品观看| 欧美日本韩国一区| 亚洲美女精品成人在线视频| 99精品视频网| 欧美日韩国产小视频| 亚洲精品一区二区三区樱花| 99精品国产99久久久久久福利| 欧美顶级少妇做爰| 亚洲国产欧美一区二区三区久久| 亚洲国产成人精品久久久国产成人一区| 久久久www成人免费毛片麻豆| 国产欧美日韩一区二区三区在线| 亚洲午夜在线| 性做久久久久久免费观看欧美| 国产精品美女999| 亚洲免费视频在线观看| 香蕉久久夜色精品国产| 国产精品亚洲一区| 亚欧美中日韩视频| 久久这里只有| 1024国产精品| 夜夜嗨av一区二区三区中文字幕 | 欧美日韩在线不卡| 在线亚洲免费| 欧美一区在线直播| 国产在线观看精品一区二区三区| 久久精品国产99精品国产亚洲性色 | 免费国产一区二区| 亚洲精品国产拍免费91在线| 中文久久精品| 国产精品日韩| 欧美自拍偷拍| 欧美不卡福利| 日韩一区二区精品视频| 亚洲女性喷水在线观看一区| 国产婷婷精品| 亚洲国产欧美一区二区三区丁香婷| 欧美成人精品三级在线观看| 亚洲美女黄色片| 午夜一区二区三区不卡视频| 国产亚洲人成a一在线v站| 91久久久国产精品| 欧美日韩在线影院| 亚洲欧美中文在线视频| 免费不卡亚洲欧美| 999在线观看精品免费不卡网站| 亚洲欧美日韩精品在线| 国产主播一区二区三区| 日韩一级视频免费观看在线| 欧美婷婷在线| 久久精品国产96久久久香蕉| 欧美精品18| 亚洲一区二区三区高清不卡| 久久人体大胆视频| 亚洲精选中文字幕| 久久超碰97人人做人人爱| 在线观看一区视频| 亚洲一区国产视频| 国内一区二区在线视频观看| 一本色道久久综合狠狠躁篇的优点| 国产精品无码永久免费888| 亚洲国产高潮在线观看| 欧美三级特黄| 亚洲国产高清自拍| 国产精品青草久久| 亚洲肉体裸体xxxx137| 国产精品丝袜白浆摸在线| 亚洲经典自拍| 国产精品一区二区你懂得 | 亚洲国产日韩欧美| 欧美视频日韩视频| 亚洲高清在线观看一区| 欧美午夜精品久久久久久超碰| 久久成人精品| 国产精品久久久久久模特| 91久久国产自产拍夜夜嗨| 国产精品一区二区久久久久| 欧美中文字幕视频| 国产精品久久久久免费a∨| 亚洲精品九九| 国产一区 二区 三区一级| 中文在线资源观看视频网站免费不卡| 国产亚洲a∨片在线观看| 亚洲一区二区三区高清不卡| 亚洲成在线观看| 久久久久九九九| 亚洲一区二区成人在线观看| 欧美精品午夜视频|