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

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

?? makehex.vhd

?? Actel Fusion System Management Development Kit UART Example. Contains Libero design using CoreABC. P
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
-- ********************************************************************/ 
-- Copyright 2007 Actel Corporation.  All rights reserved.
-- IP Engineering 
--
-- ANY USE OR REDISTRIBUTION IN PART OR IN WHOLE MUST BE HANDLED IN 
-- ACCORDANCE WITH THE ACTEL LICENSE AGREEMENT AND MUST BE APPROVED 
-- IN ADVANCE IN WRITING.  
--  
-- File:  makehex.vhd
--     
-- Description: Simple APB Bus Controller
--              Creates Hex Image Files  
--
-- Rev: 2.3   01Mar07 IPB  : Production Release   
--
-- Notes:
--   Converts the instructions encoded in instruction.txt into HEX files
--   
--
-- *********************************************************************/ 

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

use work.misc.all;
use work.textio.all;
use work.support.all;

use std.textio.all;


entity MAKEHEX is
  generic ( ENABLE   : boolean;
            ID       : integer range 0 to 9 ;
            FAMILY   : integer range 0 to 99;
            AWIDTH   : integer range 1 to 16;  
            DWIDTH   : integer range 8 to 32;   
            SDEPTH   : integer range 1 to 16;    
            ICWIDTH  : integer range 1 to 16;  
            IIWIDTH  : integer range 1 to 31;  
            IFWIDTH  : integer range 0 to 28;
            TESTMODE : integer range 0 to 99
           );
end MAKEHEX;


architecture RTL of MAKEHEX is

constant IWWIDTH    : integer := 32+16+4+6;   -- =58
constant SWIDTH     : integer := calc_swidth(SDEPTH);

constant AW : integer := AWIDTH;
constant DW : integer := DWIDTH;
constant SW : integer := max(1,SWIDTH);
constant IW : integer := ICWIDTH;

constant RAMDEPTH : integer := 2**IW;
constant RAMWIDTH : integer := AW+DW+SW+6;

constant NROWS   : integer := 1+ (RAMDEPTH-1)/512 ;
constant NCOLS   : integer := 1+ (RAMWIDTH-1)/9 ;
constant NRAMS   : integer :=  NCOLS*NROWS ;
constant RIDEPTH : integer :=  NRAMS*512 ;
constant RIWIDTH : integer :=  log2r(RIDEPTH);

constant APA  : boolean := (FAMILY=14);

component INSTRUCTIONS 
  generic ( AWIDTH   : integer range 1 to 16;  
            DWIDTH   : integer range 8 to 32;   
            SWIDTH   : integer range 0 to 4 ;    
            ICWIDTH  : integer range 1 to 16;  
            IIWIDTH  : integer range 1 to 32;
            IFWIDTH  : integer range 0 to 28;     
            IWWIDTH  : integer range 1 to 64;
            EN_MULT  : integer range 0 to 3;
            EN_INC   : integer range 0 to 1;
            ID       : integer range 0 to 9;
            TESTMODE : integer range 0 to 99
           );
  port     ( ADDRESS     : in  std_logic_vector(ICWIDTH-1 downto 0);
             INSTRUCTION : out std_logic_vector(IWWIDTH-1 downto 0)        
           );
end component;

signal  ADDRESS       : std_logic_vector(ICWIDTH-1 downto 0);
signal  INSTRUCTION   : std_logic_vector(IWWIDTH-1 downto 0);
signal  INSTRUCTIONX  : std_logic_vector(IWWIDTH-1 downto 0);
signal  INSCOMPRESSED : std_logic_vector(IWWIDTH-1+9 downto 0); -- RAM may be wider than instructions
    
constant DEBUG : BOOLEAN := FALSE;


subtype BYTEX       is std_logic_vector (7 downto 0);
type BYTE_ARRAYX    is array ( INTEGER range <>) of BYTEX;

function to_char( x: std_logic_vector) return character is
variable x1 :integer range 0 to 15;
variable c  : character;
begin
  x1 := conv_integer(x);
  case x1 is
    when 0  => c := '0';
    when 1  => c := '1';
    when 2  => c := '2';
    when 3  => c := '3';
    when 4  => c := '4';
    when 5  => c := '5';
    when 6  => c := '6';
    when 7  => c := '7';
    when 8  => c := '8';
    when 9  => c := '9';
    when 10 => c := 'A';
    when 11 => c := 'B';
    when 12 => c := 'C';
    when 13 => c := 'D';
    when 14 => c := 'E';
    when 15 => c := 'F';
  end case;
  return(c);
end to_char;
       
    
function create_ihex(n,addr : integer;  bytes : byte_arrayx ) return string is
variable p : integer;
variable str : string(1 to 80);
variable x   : std_logic_vector(31 downto 0);
variable csum : std_logic_vector(7 downto 0);
begin
 p := 1;
 csum := ( others => '0');
 str := ( others => NUL );
 str(1) := ':';
 x := conv_std_logic_vector(n,32);  
 str(2) :=to_char(x(7 downto 4));
 str(3) :=to_char(x(3 downto 0));
 csum := csum + x(7 downto 0);
 x := conv_std_logic_vector(addr,32);
 for i in 0 to 3 loop
   str(4+i) := to_char(x(15-4*i downto 12-4*i));
 end loop;
 csum := csum + x(15 downto 8) + x(7 downto 0);
 x := conv_std_logic_vector(0,32);  -- record type
 str(8) :=to_char(x(7 downto 4));
 str(9) :=to_char(x(3 downto 0));
 csum := csum + x(7 downto 0); 
 for i in 0 to n-1 loop
   str(10+2*i) :=to_char(bytes(i)(7 downto 4));
   str(11+2*i) :=to_char(bytes(i)(3 downto 0));
   csum := csum + bytes(i);
 end loop;
 csum := 1 -csum -1;
 str(10+2*n) := to_char(csum(7 downto 4));
 str(11+2*n) := to_char(csum(3 downto 0));
 return(str(1 to 80));
end create_ihex;    
    
--:020000021000EC
    
function create_addr_ihex(addr : integer ) return string is
variable p : integer;
variable str : string(1 to 80);
variable x   : std_logic_vector(31 downto 0);
variable csum : std_logic_vector(7 downto 0);
begin
 p := 1;
 csum := ( others => '0');
 str := ( others => NUL );
 str(1) := ':';
 x := conv_std_logic_vector(2,32);  
 str(2) :=to_char(x(7 downto 4));
 str(3) :=to_char(x(3 downto 0));
 csum := csum + x(7 downto 0);
 x := conv_std_logic_vector(0,32);
 for i in 0 to 3 loop
   str(4+i) := to_char(x(15-4*i downto 12-4*i));
 end loop;
 csum := csum + x(15 downto 8) + x(7 downto 0);
 x := conv_std_logic_vector(02,32); -- record type
 str(8) :=to_char(x(7 downto 4));
 str(9) :=to_char(x(3 downto 0));
 csum := csum + x(7 downto 0); 
 x := conv_std_logic_vector(addr,32);   -- record type 2
 x(15 downto 0) := x(19 downto 4);      -- shift by 4
 str(10) :=to_char(x(15 downto 12));
 str(11) :=to_char(x(11 downto 8));
 str(12) :=to_char(x(7 downto 4));
 str(13) :=to_char(x(3 downto 0));
 csum := csum + x(15 downto 8);
 csum := csum + x(7 downto 0);
 csum := 1 -csum -1;
 str(10+2*2) := to_char(csum(7 downto 4));
 str(11+2*2) := to_char(csum(3 downto 0));
 return(str(1 to 80));
end create_addr_ihex;   
        
begin
    
-------------------------------------------------------------------------------------------------
-- VHDL Code with Instruction Sequence
-- Note this gives out a 58 bit instruction heavily populated with dont cares


UINS : INSTRUCTIONS  generic map
          ( AWIDTH   => AWIDTH,  
            DWIDTH   => DWIDTH,   
            SWIDTH   => SWIDTH,    
            EN_MULT  => 1,           -- assume MULT and no INC
            EN_INC   => 0,           -- INC's will be mapped to ADDS
            ICWIDTH  => ICWIDTH, 
            IIWIDTH  => IIWIDTH, 
            IFWIDTH  => IFWIDTH, 
            IWWIDTH  => IWWIDTH, 
            ID       => ID,
            TESTMODE => TESTMODE
           )
  port map ( ADDRESS     => ADDRESS,    
             INSTRUCTION => INSTRUCTIONX      
           );

-------------------------------------------------------------------------------------------------
-- Remove Dont Cares

process(INSTRUCTIONX)
begin
  for j in INSTRUCTIONX'range loop
    if INSTRUCTIONX(j)='0' or INSTRUCTIONX(j)='1' then
      INSTRUCTION(j) <= INSTRUCTIONX(j);
    else
      INSTRUCTION(j) <= '0';
    end if;
  end loop;
end process;    

-- Compress the 58 Bit instruction to the Miniumn Size based on AW,DW,SW
process(INSTRUCTION)
begin   
  INSCOMPRESSED <= ( others => '0');
  INSCOMPRESSED(5 downto 0) <= INSTRUCTION(5 downto 0);
  if SW>0 then
    INSCOMPRESSED(SW-1+6 downto 6) <= INSTRUCTION(SW-1+6 downto 6); 
  end if;   
  INSCOMPRESSED(AW-1+SW+6 downto SW+6)        <= INSTRUCTION(AW-1+4+6 downto 4+6);        
  INSCOMPRESSED(DW-1+AW+SW+6 downto AW+SW+6 ) <= INSTRUCTION(DW-1+16+4+6 downto 16+4+6 ); 
end process;


-------------------------------------------------------------------------------------------------
    
process
file FSTR             : text ; 
file FSTRC            : text ; 
file Fmem             : text ; 
file Fhex             : text ; 
variable INS          : std_logic_vector(IWWIDTH-1 downto 0);
variable addr         : integer;
variable dbits        : integer;
variable data         : std_logic_vector(8 downto 0);
variable dataw        : std_logic_vector(72 downto 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜免费电影| 一本到不卡精品视频在线观看| 婷婷丁香久久五月婷婷| 亚洲成人免费看| 丝袜美腿亚洲综合| 香蕉加勒比综合久久| 午夜婷婷国产麻豆精品| 日韩和欧美一区二区| 麻豆一区二区在线| 国产精品一区二区在线播放| 成人网页在线观看| 色综合视频在线观看| 欧美视频在线播放| 日韩欧美国产综合一区| 国产亚洲综合色| 18涩涩午夜精品.www| 天天影视色香欲综合网老头| 日韩一区二区三区观看| 久久精品欧美日韩| 中文字幕乱码亚洲精品一区| 久久精品欧美日韩| 国产精品麻豆视频| 亚洲精品日韩专区silk| 亚洲欧美色综合| 亚洲午夜视频在线| 美女一区二区三区在线观看| 久久精品国产网站| 国产精品1区二区.| 99久久免费视频.com| 色综合久久久久综合99| 欧美三级电影在线看| 欧美不卡视频一区| 不卡的电影网站| 色哦色哦哦色天天综合| 欧美性猛片aaaaaaa做受| 91精品国产免费久久综合| 日韩精品专区在线影院重磅| 国产精品久久网站| 午夜精品免费在线观看| 国产精品影视在线| 欧洲精品在线观看| 精品国产污污免费网站入口| 中文久久乱码一区二区| 亚洲一区二区在线免费看| 久久99久久久久| 91在线你懂得| 亚洲精品一区二区三区精华液 | 亚洲欧美日韩在线播放| 三级欧美韩日大片在线看| 国产传媒久久文化传媒| 91福利视频网站| 国产精品私人自拍| 美女看a上一区| 在线亚洲人成电影网站色www| 精品国产亚洲在线| 亚洲bdsm女犯bdsm网站| www.66久久| 国产亚洲精品中文字幕| 日韩专区中文字幕一区二区| av成人免费在线观看| 精品欧美黑人一区二区三区| 一本久久精品一区二区| 国产免费成人在线视频| 久久99精品国产.久久久久久| 日本高清不卡在线观看| 中文字幕精品一区二区精品绿巨人| 青娱乐精品视频| 欧美丝袜丝交足nylons图片| 亚洲欧美激情一区二区| 国产福利精品导航| wwwwww.欧美系列| 国产精品一卡二| 精品国精品自拍自在线| 亚洲午夜国产一区99re久久| 在线免费一区三区| 亚洲视频资源在线| 欧美中文字幕亚洲一区二区va在线 | 欧美日韩一区久久| 亚洲激情图片qvod| av亚洲精华国产精华精华 | 一区二区三区免费看视频| 懂色av一区二区夜夜嗨| 国产嫩草影院久久久久| 成人精品视频一区二区三区| 国产女人18水真多18精品一级做| 丁香桃色午夜亚洲一区二区三区| 国产无遮挡一区二区三区毛片日本| 国产精品18久久久久久久久| 国产欧美一区二区精品婷婷| 国产三级精品三级在线专区| 国产成人在线网站| 一色屋精品亚洲香蕉网站| 91片黄在线观看| 日韩二区在线观看| 久久午夜羞羞影院免费观看| av欧美精品.com| 亚洲一区二区欧美| 欧美一级在线免费| 国产精品夜夜嗨| 亚洲精品国产视频| 欧美亚洲国产怡红院影院| 精品一区二区三区香蕉蜜桃| 欧美极品少妇xxxxⅹ高跟鞋| 不卡一区在线观看| 首页亚洲欧美制服丝腿| 久久久国际精品| 色香色香欲天天天影视综合网| 日韩国产高清影视| av中文字幕不卡| 日韩综合一区二区| 国产日产精品一区| 8x8x8国产精品| 成人av电影在线| 日韩精品视频网站| 日本一区二区成人| 91精品中文字幕一区二区三区| 国产一区二区三区电影在线观看| 亚洲精品成a人| 久久久久久免费网| 欧美日韩国产区一| 成人理论电影网| 久色婷婷小香蕉久久| 亚洲精品伦理在线| 亚洲国产电影在线观看| 欧美电影免费观看高清完整版在 | 成年人网站91| 精品系列免费在线观看| 日日摸夜夜添夜夜添国产精品| 国产女主播在线一区二区| 精品免费国产一区二区三区四区| 91色porny| 99久久精品国产毛片| 成人免费黄色大片| 国产成人综合亚洲网站| 国产一区二区在线观看视频| 日本不卡视频在线| 日韩精品亚洲一区二区三区免费| 亚洲国产精品久久不卡毛片| 亚洲欧美日韩中文字幕一区二区三区 | 7777女厕盗摄久久久| 午夜久久久久久| 亚洲精品中文字幕乱码三区 | 精品国产一区二区三区av性色| 制服丝袜av成人在线看| 欧美日韩精品免费| 日韩欧美在线综合网| www激情久久| 综合久久国产九一剧情麻豆| 夜夜精品视频一区二区| 激情综合网av| 色欧美片视频在线观看| 精品理论电影在线观看| 亚洲激情第一区| 另类中文字幕网| 欧美三级一区二区| 久久久久国产精品人| 亚洲一线二线三线视频| 国产风韵犹存在线视精品| 欧美日韩精品综合在线| 中文字幕精品在线不卡| 蜜桃一区二区三区在线| 日本福利一区二区| 国产在线精品一区二区夜色 | 88在线观看91蜜桃国自产| 精品国产乱码久久久久久夜甘婷婷| 欧美精品一区二| 一区二区成人在线| 麻豆国产精品一区二区三区 | 精品一区二区三区欧美| 99这里都是精品| 日韩午夜av电影| 亚洲另类色综合网站| 精品综合久久久久久8888| 色综合久久99| 国产亚洲精品中文字幕| 视频一区视频二区在线观看| 成人动漫一区二区| 精品国产成人系列| 7777女厕盗摄久久久| 国产精品国产a级| 日韩二区三区四区| 欧洲av一区二区嗯嗯嗯啊| 久久精品一区八戒影视| 久久国产乱子精品免费女| 欧美影院午夜播放| 亚洲欧美一区二区三区国产精品 | 欧美国产乱子伦| 免费精品99久久国产综合精品| 色婷婷国产精品| 久久夜色精品一区| 精品亚洲成a人在线观看| 欧美日韩在线一区二区| 亚洲欧洲日韩女同| 国产成人免费xxxxxxxx| 久久久精品国产99久久精品芒果| 精品亚洲欧美一区| 久久超级碰视频| 777亚洲妇女| 免费在线观看精品| 91精品国产欧美一区二区|