亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? roms19fr.vhd

?? ARM7內核,vhdl源碼形式
?? VHD
字號:
-- *********************************************************************************************				  
-- ROM initialized by .S19 (S-record) file
-- Modified 01.02.2003
-- Designed by Ruslan Lepetenok
-- *********************************************************************************************				  

library	IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;

use STD.textio.all;

use WORK.S19FRPackage.all;

entity ROMS19FR is generic(
								ROMWidth   : positive  := 32;
                                ROMSize    : positive  := 4096; 
	                            InFileName : string    := "test.s19";
	                            BaseAdr    : natural   := 16#300000#;
                                BigEndian  : boolean   := FALSE;
	                           	ROMBlank   : std_logic := '0';
							    DisChSTest : boolean   := FALSE   
						  );
		                port(
					         Address   : in  std_logic_vector(LOG2(ROMSize/(ROMWidth/8))-1 downto 0);
		                     DataOut   : out std_logic_vector(ROMWidth-1 downto 0)
					        );
end ROMS19FR;

architecture Beh of ROMS19FR is
type MemFileType is array(0 to ROMSize/(ROMWidth/8)-1) of std_logic_vector(ROMWidth-1 downto 0);
signal ROMFile : MemFileType := (others => (ROMWidth-1 downto 0 => '0'));

begin

assert not DisChSTest 
 report"Check-Sum test is disabled"
  severity WARNING;	
	
InitMemory:process

procedure ReadS19ToMem(MemFile : inout MemFileType; FileName : in string; 
                       BaseAdr : natural; BigEndian : boolean)is

file InputTextFile   : text open read_mode is FileName;
variable L           : line;
variable ch          : character;
variable j           : natural := 0;
variable k           : natural range 0 to 1 :=0;
variable LT          : character;
variable Address     : integer := 0;
variable LineAdrSize : positive := 1;
variable DataByte    : natural range 0 to 16#FF# := 0;
variable LineLength  : natural range 0 to 16#FF# := 0;
variable CheckSum    : std_logic_vector(7 downto 0) := x"00"; -- Checksum which was calculated 
variable CheckSumRd  : std_logic_vector(7 downto 0) := x"00"; -- Checksum which was read

begin

while not endfile(InputTextFile) loop
readline(InputTextFile,L);

-- Searching for 'S'
for i in L'range loop
read(L,ch);
if ch/=' ' then
 if ch/='S' then 
   report "Not a S-record string" severity FAILURE;	 
 else exit;
  end if;
  end if;	 
end loop;	

-- Reading of line type  
read(L,LT);
if LT<'0' or LT>'9' then 
 report "Not a S-record string" severity FAILURE;	 
end if;

-- Read line length (in bytes)
read(L,ch);
LineLength := CharToNatural(ch)*16;
read(L,ch);
LineLength := LineLength + CharToNatural(ch);

CheckSum := CONV_STD_LOGIC_VECTOR(LineLength,8);

if LT='1' or LT='2' or LT='3' then  
-- Calculate base address for the line
Address := 0;
k:=1;
 ReadStrAdr:for j in (CharToNatural(LT)+1)*2-1 downto 0 loop
  read(L,ch);
   Address := Address + CharToNatural(ch)*(16**j);
   CheckSum := CheckSum + CONV_STD_LOGIC_VECTOR(CharToNatural(ch)*(16**k),8);

 if k=1 then k:=0; 
  else k:=1;
   end if;	 

 end loop;	

-- Calculates real address
assert BaseAdr<=Address
 report"Wrong base address"
  severity FAILURE;

 Address := Address - BaseAdr;

assert Address<=ROMSize-1
 report"ROM size is not enough  to fit source S-record file"
  severity FAILURE;   
      
for j in 1 to LineLength-(CharToNatural(LT)+2) loop -- Number of data bytes to read

-- Read byte of data 
read(L,ch);
 DataByte := CharToNatural(ch)*16;
  read(L,ch);
   DataByte := DataByte + CharToNatural(ch);

CheckSum := CheckSum + CONV_STD_LOGIC_VECTOR(DataByte,8);

--ROMWidth 8/16/32
if ROMWidth=32 then 
 -- 32-bit memory system

 if not BigEndian then 
 -- Little endian

if CONV_STD_LOGIC_VECTOR(Address,2)="00" then 
 -- A[1..0]=00

 MemFile(Address/4) := MemFile(Address/4)(31 downto 8)&
                       CONV_STD_LOGIC_VECTOR(DataByte,8); 
 
elsif CONV_STD_LOGIC_VECTOR(Address,2)="01" then 
 -- A[1..0]=01
 MemFile(Address/4) := MemFile(Address/4)(31 downto 16)&
	                   CONV_STD_LOGIC_VECTOR(DataByte,8)&
	  				   MemFile(Address/4)(7 downto 0);  

elsif CONV_STD_LOGIC_VECTOR(Address,2)="10" then 						 
 -- A[1..0]=10
   MemFile(Address/4) := MemFile(Address/4)(31 downto 24)&
    	                 CONV_STD_LOGIC_VECTOR(DataByte,8)&
                         MemFile(Address/4)(15 downto 0);   
 
elsif CONV_STD_LOGIC_VECTOR(Address,2)="11" then 						 
 -- A[1..0]=11
 MemFile(Address/4) := CONV_STD_LOGIC_VECTOR(DataByte,8)&
	                   MemFile(Address/4)(23 downto 0);
 end if;
 
 else                  
  -- Big endian 	

if CONV_STD_LOGIC_VECTOR(Address,2)="11" then 
 -- A[1..0]=11

 MemFile(Address/4) := MemFile(Address/4)(31 downto 8)&
                       CONV_STD_LOGIC_VECTOR(DataByte,8); 
 
elsif CONV_STD_LOGIC_VECTOR(Address,2)="10" then 
 -- A[1..0]=10
 MemFile(Address/4) := MemFile(Address/4)(31 downto 16)&
	                   CONV_STD_LOGIC_VECTOR(DataByte,8)&
	  				   MemFile(Address/4)(7 downto 0);  

elsif CONV_STD_LOGIC_VECTOR(Address,2)="01" then 						 
 -- A[1..0]=01
   MemFile(Address/4) := MemFile(Address/4)(31 downto 24)&
    	                 CONV_STD_LOGIC_VECTOR(DataByte,8)&
                         MemFile(Address/4)(15 downto 0);   
 
elsif CONV_STD_LOGIC_VECTOR(Address,2)="00" then 						 
 -- A[1..0]=00
 MemFile(Address/4) := CONV_STD_LOGIC_VECTOR(DataByte,8)&
	                   MemFile(Address/4)(23 downto 0);
 end if;
 end if; 

 elsif ROMWidth=16 then 
 -- 16-bit memory system
 
 if not BigEndian then 
 -- Little endian

if CONV_STD_LOGIC_VECTOR(Address,1)="0" then 
 -- A[0]=0

 MemFile(Address/2) := MemFile(Address/2)(16 downto 8)&
                       CONV_STD_LOGIC_VECTOR(DataByte,8); 
 
 elsif CONV_STD_LOGIC_VECTOR(Address,1)="1" then 						 
  -- A[0]=1
  MemFile(Address/2) := CONV_STD_LOGIC_VECTOR(DataByte,8)&
    	                MemFile(Address/2)(7 downto 0);
 end if;
 
 else                  
  -- Big endian 	
 
 if CONV_STD_LOGIC_VECTOR(Address,1)="1" then 
 -- A[0]=1

 MemFile(Address/2) := MemFile(Address/2)(16 downto 8)&
                       CONV_STD_LOGIC_VECTOR(DataByte,8); 
 
 elsif CONV_STD_LOGIC_VECTOR(Address,1)="0" then 						 
  -- A[0]=0
  MemFile(Address/2) := CONV_STD_LOGIC_VECTOR(DataByte,8)&
    	                MemFile(Address/2)(7 downto 0);
 
 end if;
 end if; 
  
elsif ROMWidth=8 then 
 -- 8-bit memory system	
 MemFile(Address) := CONV_STD_LOGIC_VECTOR(DataByte,8);
end if;	

Address := Address + 1;

end loop;  -- Data bytes reading is finished for current string

else      -- Not a data line (S0,S4-S9)

 -- Dummy read 	
 for j in 1 to LineLength-1 loop -- Number of data bytes to read	
  -- Read byte of data 
   read(L,ch);
    DataByte := CharToNatural(ch)*16;
     read(L,ch);
      DataByte := DataByte + CharToNatural(ch);
	   -- Checksum
        CheckSum := CheckSum + CONV_STD_LOGIC_VECTOR(DataByte,8);	
 end loop;	
end if;

-- Checksum comparison
-- Read byte of checksum
read(L,ch);
DataByte := CharToNatural(ch)*16;
read(L,ch);
DataByte := DataByte + CharToNatural(ch);

CheckSum := not CheckSum;

if not DisChSTest then
assert CheckSum = CONV_STD_LOGIC_VECTOR(DataByte,8)
 report "Error in checksum"	 
  severity FAILURE;
end if;
  
end loop; -- Reading of the file is finished	

report "S19 file read is done"	 
  severity NOTE;

end ReadS19ToMem;					   
-- End of procedures

variable MemoryFile : MemFileType := (others => (ROMWidth-1 downto 0 => ROMBlank));
 begin
  ReadS19ToMem(MemoryFile,InFileName,BaseAdr,BigEndian);
   ROMFile <= MemoryFile;
    wait;
end process;

DataOut <= ROMFile(CONV_INTEGER(Address));
	
end Beh;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜一区二区三区| 日韩精品亚洲专区| 午夜精品久久久久久不卡8050| 亚洲综合一区二区三区| 国产麻豆视频精品| 欧美日韩国产天堂| 中文字幕一区二区不卡| 乱一区二区av| 99精品久久只有精品| 欧美一区二区三区人| 国产亚洲精品资源在线26u| 一区二区三区中文在线观看| 精品一区二区av| 久久久久久久网| 亚洲免费电影在线| 国产剧情一区二区三区| 51精品国自产在线| 一区二区不卡在线播放| 懂色av中文一区二区三区| 日韩欧美一级二级| 日韩精品福利网| 欧美日韩日本视频| 一区二区三区中文字幕电影 | 成人不卡免费av| 久久综合九色综合97婷婷| 污片在线观看一区二区| 国产成人在线网站| 久久综合久久综合亚洲| 国产在线不卡视频| 久久久久久久久伊人| 精久久久久久久久久久| 7777精品久久久大香线蕉| 亚洲国产另类av| 欧美色图天堂网| 一级日本不卡的影视| 91猫先生在线| 亚洲一区在线看| 欧美性极品少妇| 韩国三级在线一区| 久久久蜜臀国产一区二区| 激情五月激情综合网| 久久久久久**毛片大全| 成人一级片网址| 亚洲女性喷水在线观看一区| 在线日韩一区二区| 免费成人深夜小野草| 久久九九影视网| 99r国产精品| 日韩电影在线一区二区| 久久精品男人天堂av| 一本大道久久精品懂色aⅴ| 午夜激情一区二区| wwww国产精品欧美| 99精品黄色片免费大全| 亚洲午夜激情av| 欧美变态tickle挠乳网站| 99精品视频在线观看| 日韩和欧美一区二区| 国产精品网站一区| 欧美一级在线观看| 色综合 综合色| 国产一区二区三区日韩| 亚洲一区欧美一区| 国产精品无人区| 日韩视频免费观看高清完整版 | 国产乱理伦片在线观看夜一区| 国产精品三级av| 精品国产成人系列| 欧美日韩高清在线播放| 成人国产精品视频| 狠狠色丁香久久婷婷综合_中 | 亚洲国产高清aⅴ视频| 欧美成人高清电影在线| 欧美日韩国产不卡| 欧美视频第二页| 色狠狠桃花综合| 成人中文字幕电影| 国产大陆亚洲精品国产| 激情综合网最新| 日本欧美一区二区| 日韩国产欧美在线播放| 亚洲电影一级黄| 一区二区三区在线看| 亚洲天堂成人网| 三级成人在线视频| 天天影视网天天综合色在线播放| 亚洲一区二区三区国产| 日韩毛片一二三区| 亚洲欧美在线aaa| 亚洲男同1069视频| 亚洲国产视频网站| 日本成人中文字幕| 国产在线国偷精品产拍免费yy| 免费久久99精品国产| 麻豆一区二区99久久久久| 六月丁香婷婷色狠狠久久| 国产一区激情在线| 成人免费观看视频| 91在线免费视频观看| 91亚洲国产成人精品一区二三| 99v久久综合狠狠综合久久| 欧美午夜一区二区三区免费大片| 欧美性xxxxxx少妇| 日韩一区二区在线看| 欧美mv日韩mv亚洲| 亚洲欧洲日产国码二区| 亚洲精品视频在线观看网站| 亚洲国产精品一区二区久久 | 国产精品一二一区| 在线日韩一区二区| 亚洲精品中文在线| 免费在线观看不卡| 成人精品视频.| 欧美二区三区91| 国产精品动漫网站| 日韩av网站免费在线| 暴力调教一区二区三区| 5月丁香婷婷综合| 亚洲三级久久久| 经典三级在线一区| 欧美男男青年gay1069videost| 91精品麻豆日日躁夜夜躁| 亚洲欧美日韩一区二区| 国产成人综合亚洲网站| 日韩一区二区三区四区| 一区二区三区在线播| 成年人国产精品| 久久嫩草精品久久久久| 视频一区国产视频| 在线亚洲人成电影网站色www| 久久久久亚洲蜜桃| 精品在线免费视频| 56国语精品自产拍在线观看| 亚洲成av人影院| 欧美在线|欧美| 一区二区三区高清| 91在线看国产| 中文字幕日韩欧美一区二区三区| 久久成人综合网| 日韩欧美色综合| 激情六月婷婷综合| 久久影视一区二区| 久久精品久久精品| 精品少妇一区二区三区在线播放| 日韩精品一区第一页| 欧美肥胖老妇做爰| 精品中文字幕一区二区小辣椒| 日韩欧美中文字幕公布| 国产一区二区导航在线播放| 久久久久国产精品厨房| 国产高清精品在线| 国产精品久久久久久久久快鸭| 成人91在线观看| 精品综合久久久久久8888| 久久蜜桃一区二区| 不卡欧美aaaaa| 亚洲一区二区欧美激情| 日韩欧美中文字幕精品| 丰满亚洲少妇av| 一区二区三区在线播| 欧美电视剧在线看免费| 成人性视频网站| 亚洲一区二区三区四区五区中文| 欧美情侣在线播放| 国产成a人亚洲| 亚洲国产欧美在线人成| 国产午夜精品久久| 欧美日韩在线精品一区二区三区激情| 日韩福利电影在线观看| 久久免费看少妇高潮| 一色屋精品亚洲香蕉网站| 色欧美片视频在线观看| 精品一区二区在线播放| 亚洲婷婷在线视频| 日韩视频一区二区| 日本道在线观看一区二区| 蜜臀va亚洲va欧美va天堂 | 久久99国产精品成人| 亚洲欧美一区二区视频| 欧美mv日韩mv国产网站| 精品视频1区2区3区| 成人午夜伦理影院| 乱中年女人伦av一区二区| 一区二区高清在线| 国产精品毛片久久久久久| 久久综合久久久久88| 日韩一级黄色大片| 欧美日韩国产bt| 欧美午夜片在线观看| heyzo一本久久综合| 国产99久久久国产精品潘金网站| 美女一区二区三区在线观看| 亚洲综合丁香婷婷六月香| 亚洲欧美二区三区| 欧美国产一区在线| 国产精品成人一区二区艾草| 国产视频亚洲色图| 国产午夜一区二区三区| 欧美国产精品v| 国产欧美日韩一区二区三区在线观看|