日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

簡述FPGA系統(tǒng)的仿真和測(cè)試

出處:iammercy 發(fā)布于:2011-08-26 09:58:00

 

  一、概述

  FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。

  在FPGA 設(shè)計(jì)中,仿真一般分為功能仿真(前仿真)和時(shí)序仿真(后仿真)。功能仿真又叫邏輯仿真,是指在不考慮器件延時(shí)和布線延時(shí)的理想情況下對(duì)源代碼進(jìn)行邏輯功能的驗(yàn)證;而時(shí)序仿真是在布局布線后進(jìn)行,它與特定的器件有關(guān),又包含了器件和布線的延時(shí)信息,主要驗(yàn)證程序在目標(biāo)器件中的時(shí)序關(guān)系。在有些開發(fā)環(huán)境中,如Xilinx ISE 中,除了上述的兩種基本仿真外,還包括綜合后仿真,轉(zhuǎn)換(post-translate)仿真,映射后(post-map)仿真等,這樣做完每一步都可進(jìn)行仿真驗(yàn)證,從而保證設(shè)計(jì)的正確性。

  FPGA仿真方法:

 ?。?)交互式仿真方法:利用EDA工具的仿真器進(jìn)行仿真,使用方便,但輸入輸出不便于記錄規(guī)檔,當(dāng)輸入量較多時(shí)不便于觀察和比較。

 ?。?)測(cè)試平臺(tái)法:為設(shè)計(jì)模塊專門設(shè)計(jì)的仿真程序,可以實(shí)現(xiàn)對(duì)被測(cè)模塊自動(dòng)輸入測(cè)試矢量,并通過波形輸出文件記錄輸出,便于將仿真結(jié)果記錄歸檔和比較。

  二、仿真程序的設(shè)計(jì)方法

  1 仿真的三個(gè)階段

  (1)行為仿真:目的是驗(yàn)證系統(tǒng)的數(shù)學(xué)模型和行為是否正確,對(duì)系統(tǒng)的描述的抽象程度較高。在行為仿真時(shí),VHDL的語法語句都可以執(zhí)行。

 ?。?)RTL仿真:目的是使被仿真模塊符合邏輯綜合工具的要求,使其能生成門級(jí)邏輯電路。在RTL仿真時(shí),不能使用VHDL中一些不可綜合和難以綜合的語句和數(shù)據(jù)類型。該級(jí)仿真不考慮慣性延時(shí),但要仿真?zhèn)鬏斞訒r(shí)。

 ?。?)門級(jí)仿真:門級(jí)電路的仿真主要是驗(yàn)證系統(tǒng)的工作速度,慣性延時(shí)僅僅是仿真的時(shí)候有用在綜合的時(shí)候?qū)⒈缓雎浴?/P>

  2 仿真程序的內(nèi)容

 ?。?)被測(cè)實(shí)體的引入。

 ?。?)被測(cè)實(shí)體仿真信號(hào)的輸入。

 ?。?)被測(cè)實(shí)體工作狀態(tài)的激活。

 ?。?)被測(cè)實(shí)體信號(hào)的輸出

 ?。?)被測(cè)實(shí)體功能仿真的結(jié)果比較,并給出辨別信息

 ?。?)被測(cè)實(shí)體的仿真波形比較處理

  3 仿真要注意的地方

  (1)仿真信號(hào)可以由程序直接產(chǎn)生,也可以用TEXTIO文件產(chǎn)生后讀入。

 ?。?)仿真程序中可以簡化實(shí)體描述,省略有關(guān)端口的描述。仿真程序?qū)嶓w描述的簡化形式為:

  ENTITY 測(cè)試平臺(tái)名 IS

  END 測(cè)試平臺(tái)名;

  (3)對(duì)于功能仿真結(jié)果的判斷,可以用斷言語句(ASSORT)描述。

  (4)為了比較和分析電子系統(tǒng)的功能,尋求實(shí)現(xiàn)指標(biāo)的結(jié)構(gòu),往往利用一個(gè)測(cè)試平臺(tái)對(duì)實(shí)體的不同結(jié)構(gòu)進(jìn)行仿真,一般是應(yīng)用配置語句為同一被測(cè)實(shí)體選用多個(gè)結(jié)構(gòu)體。

  CONFIGURATION 測(cè)試平臺(tái)名 OF 被測(cè)實(shí)體名 IS

  FOR 被測(cè)實(shí)體的A的結(jié)構(gòu)體名

  END FOR;

  END 測(cè)試平臺(tái)名;

  同樣,若選用結(jié)構(gòu)體B,則配置語句可寫為:

  CONFIGURATION 測(cè)試平臺(tái)名 OF 被測(cè)實(shí)體名 IS

  FOR 被測(cè)實(shí)體的B的結(jié)構(gòu)體名

  END FOR;

  END 測(cè)試平臺(tái)名;

  4 VHDL仿真程序結(jié)構(gòu)

  VHDL語言是一種用于電路設(shè)計(jì)的語言。它在80年代的后期出現(xiàn)。初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計(jì)語言 .VHDL翻譯成中文就是超高速集成電路硬件描述語言,主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC.

  VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風(fēng)格以及語法是十分類似于一般的計(jì)算機(jī)語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。下表表示了一個(gè)測(cè)試平臺(tái)所包含的部分,典型的測(cè)試平臺(tái)將包括測(cè)試結(jié)果和錯(cuò)誤結(jié)果。

 ?。?)產(chǎn)生時(shí)鐘信號(hào)

  -- 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)提供仿真信號(hào)

  提供仿真信號(hào)可以有兩種方法:時(shí)間仿真和相對(duì)時(shí)間仿真。在時(shí)間仿真方法中,仿真時(shí)間只是相對(duì)于零時(shí)刻的仿真時(shí)間。在相對(duì)時(shí)間仿真方法中,仿真的時(shí)間首先提供一個(gè)初值,在后繼的時(shí)間設(shè)置中相對(duì)于該初始時(shí)間進(jìn)行事件動(dòng)作。

  時(shí)間仿真:

  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;

  相對(duì)時(shí)間仿真:

  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)顯示結(jié)果

  VHDL提供標(biāo)準(zhǔn)的std_textio函數(shù)包把輸入輸出結(jié)果顯示在終端上。

  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建立測(cè)試程序

  在由仿真程序直接產(chǎn)生輸入信號(hào)的方法中,測(cè)試矢量是仿真程序的一個(gè)部分,如果系統(tǒng)比較復(fù)雜,測(cè)試矢量的數(shù)目非常大,修改測(cè)試矢量時(shí)就必須修改程序,重新編譯和仿真。工作量大。因此,在測(cè)試矢量非常大的時(shí)候可以用TEXTIO的方法來進(jìn)行仿真。

  TEXTIO仿真方法:測(cè)試矢量從仿真程序中分離出來,單獨(dú)存于一個(gè)文件中(即TEXTIO文件),在仿真時(shí),根據(jù)定時(shí)要求按行讀出,并賦予相應(yīng)的輸入信號(hào)。這種方法允許采用同一個(gè)測(cè)試平臺(tái),通過不同的測(cè)試矢量文件進(jìn)行不同的仿真。值得注意的是,測(cè)試矢量文件的讀取,需要利用TEXTIO程序包的功能。在TEXTIO程序包中,包含有對(duì)文本文件進(jìn)行讀寫的過程和函數(shù)。

  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


 



  
關(guān)鍵詞:FPGA測(cè)試

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!