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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vga_controller.pm

?? altera的ip核
?? PM
?? 第 1 頁 / 共 3 頁
字號(hào):
use strict;
use europa_all;

my $slave_name = 's1';
my $master_name = 'm1';

my $VGA_DAC_LATENCY = 8;

#####################################################################################
#                    SIGNAL TIMING FOR 640 x 480 VGA 60Hz                           #
#####################################################################################

my %vga_640x480_60Hz_timing;

$vga_640x480_60Hz_timing{"HSCAN_WIDTH"} = 800;
$vga_640x480_60Hz_timing{"VSCAN_DEPTH"} = 524;
$vga_640x480_60Hz_timing{"NUM_COLUMNS"} = 640;
$vga_640x480_60Hz_timing{"NUM_ROWS"} = 480;   

########################## HORIZONTAL TIMING CONSTANTS ###############################
# hblank                                   --------  ...  -----------
#       ___________________________________|                        |_________
# hsync ----------               ------------------  ...  -----------------
#                 |______________|                                        |____
# count           0              94       140                      781  794,0
#            HSYNC_LOW1     HSYNC_HIGH  HBLANK_HIGH         HBLANK_LOW  $HSYNC_LOW2
#
######################################################################################
$vga_640x480_60Hz_timing{"HSYNC_LOW1"} = 0;   
$vga_640x480_60Hz_timing{"HSYNC_LOW2"} = 800; 
$vga_640x480_60Hz_timing{"HSYNC_HIGH"} = 96;  
$vga_640x480_60Hz_timing{"HBLANK_HIGH"} = 144;
$vga_640x480_60Hz_timing{"HBLANK_LOW"} = 784; 

############################ VERTICAL TIMING CONSTANTS ###############################
# vblank -------                           --------  ...  -----------
#              |___________________________|                        |_________
# vsync ----------      ---------------------------  ...  ------------------
#                 |_____|                                                   |____
# linecount       0     2                 34                      514      528,0
#          VSYNC_LOW1 VSYNC_HIGH      VBLANK_HIGH             VBLANK_LOW  $VSYNC_LOW2
#
######################################################################################
$vga_640x480_60Hz_timing{"VSYNC_LOW1"} = 0;  
$vga_640x480_60Hz_timing{"VSYNC_LOW2"} = 524;
$vga_640x480_60Hz_timing{"VSYNC_HIGH"} = 2;  
$vga_640x480_60Hz_timing{"VBLANK_HIGH"} = 33;
$vga_640x480_60Hz_timing{"VBLANK_LOW"} = 513;
$vga_640x480_60Hz_timing{"SYNC_POLARITY"} = 0;  

######################################################################################

#####################################################################################
#                    SIGNAL TIMING FOR 800 x 600 VGA 60Hz                           #
#####################################################################################

my %vga_800x600_60Hz_timing;

$vga_800x600_60Hz_timing{"HSCAN_WIDTH"} = 1056;
$vga_800x600_60Hz_timing{"VSCAN_DEPTH"} = 628; 
$vga_800x600_60Hz_timing{"NUM_COLUMNS"} = 800; 
$vga_800x600_60Hz_timing{"NUM_ROWS"} = 600;    
$vga_800x600_60Hz_timing{"HSYNC_LOW1"} = 0;    
$vga_800x600_60Hz_timing{"HSYNC_LOW2"} = 1056; 
$vga_800x600_60Hz_timing{"HSYNC_HIGH"} = 128;  
$vga_800x600_60Hz_timing{"HBLANK_HIGH"} = 181; 
$vga_800x600_60Hz_timing{"HBLANK_LOW"} = 981;  
$vga_800x600_60Hz_timing{"VSYNC_LOW1"} = 0;    
$vga_800x600_60Hz_timing{"VSYNC_LOW2"} = 628;  
$vga_800x600_60Hz_timing{"VSYNC_HIGH"} = 4;    
$vga_800x600_60Hz_timing{"VBLANK_HIGH"} = 17;  
$vga_800x600_60Hz_timing{"VBLANK_LOW"} = 617;  
$vga_800x600_60Hz_timing{"SYNC_POLARITY"} = 1;  

######################################################################################

#####################################################################################
#                    SIGNAL TIMING FOR 1024 x 768 VGA 60Hz                          #
#####################################################################################

my %vga_1024x768_60Hz_timing;

$vga_1024x768_60Hz_timing{"HSCAN_WIDTH"} = 1344;
$vga_1024x768_60Hz_timing{"VSCAN_DEPTH"} = 806;
$vga_1024x768_60Hz_timing{"NUM_COLUMNS"} = 1024;
$vga_1024x768_60Hz_timing{"NUM_ROWS"} = 768;
$vga_1024x768_60Hz_timing{"HSYNC_LOW1"} = 0;
$vga_1024x768_60Hz_timing{"HSYNC_LOW2"} = 1344;
$vga_1024x768_60Hz_timing{"HSYNC_HIGH"} = 136;
$vga_1024x768_60Hz_timing{"HBLANK_HIGH"} = 296;
$vga_1024x768_60Hz_timing{"HBLANK_LOW"} = 1320;
$vga_1024x768_60Hz_timing{"VSYNC_LOW1"} = 0;
$vga_1024x768_60Hz_timing{"VSYNC_LOW2"} = 806;
$vga_1024x768_60Hz_timing{"VSYNC_HIGH"} = 6;
$vga_1024x768_60Hz_timing{"VBLANK_HIGH"} = 35;
$vga_1024x768_60Hz_timing{"VBLANK_LOW"} = 803;
$vga_1024x768_60Hz_timing{"SYNC_POLARITY"} = 0;  

	
######################################################################################

sub vga_controller
{
  # Simple syntax check is invoked with no parameters.
  return if !@_;

  my $project = e_project->new(@_);

  make($project);
  $project->output();
}

sub make_slave_interface(@)
{
  my %type_map;

  $type_map{"slave_address"} = "address";
  $type_map{"slave_write"} = "write";
  $type_map{"slave_writedata"} = "writedata";
  $type_map{"slave_readdata"} = "readdata";
  $type_map{"slave_chipselect"} = "chipselect";
  $type_map{"clk"} = "clk";
  $type_map{"reset_n"} = "reset_n";

  e_avalon_slave->add({
    name => $slave_name,
    type_map => \%type_map,
  });
}

sub make_master_interface(@)
{
  my %type_map;

  $type_map{"master_address"} = "address";
  $type_map{"master_readdata"} = "readdata";
  $type_map{"master_read"} = "read";
  $type_map{"master_waitrequest"} = "waitrequest";
  $type_map{"master_data_valid"} = "readdatavalid";
  $type_map{"clk"} = "clk";

  e_avalon_master->add({
    name => $master_name,
    type_map => \%type_map,
  });
}

sub make($)
{
  my $project = shift;

  my $module = $project->top();
  my $marker = e_default_module_marker->new($module);

  my $mod_ptf = $project->system_ptf()->{"MODULE " . $module->name()};

  # Work with genuine writeable-to-ptf WSA and SBI hashes.
  my $SBI_slave = $mod_ptf->{"SLAVE $slave_name"}->{SYSTEM_BUILDER_INFO};
  my $SBI_master = $mod_ptf->{"MASTER $master_name"}->{SYSTEM_BUILDER_INFO};
  my $WSA = $mod_ptf->{WIZARD_SCRIPT_ARGUMENTS};

  ######################### VGA TIMING CONSTANTS #####################

	my $width = $WSA->{screen_width};
	my $height = $WSA->{screen_height};
#	print STDERR "Width = $width, Height = $height\n";

	# Here we choose which timing values we're going to use based on the wizard settings.
	my %vga_timing;
	my $key;
	my $value;

	if ($WSA->{screen_resolution} eq "640x480")
	{
		while (($key, $value) = each(%vga_640x480_60Hz_timing))
		{
			$vga_timing{$key} = $vga_640x480_60Hz_timing{$key};
		}
#	  e_signal->add({name => "clk_25", width => 1,});
#		e_assign->add (["vga_clk", "clk_25"]);
		
		print STDERR "VGA Controller resolution has been set to 640x480\n";
		print STDERR "Ensure that vga_clk is connected to a 25MHz clock\n";
	}
	if ($WSA->{screen_resolution} eq "800x600")
	{
		while (($key, $value) = each(%vga_800x600_60Hz_timing))
		{
			$vga_timing{$key} = $vga_800x600_60Hz_timing{$key};
		}
#	  e_signal->add({name => "clk_40", width => 1,});
#		e_assign->add (["vga_clk", "clk_40"]);
		
		print STDERR "VGA Controller resolution has been set to 800x600\n";
		print STDERR "Ensure that vga_clk is connected to a 40MHz clock\n";
	}
	if ($WSA->{screen_resolution} eq "1024x768")
	{
		while (($key, $value) = each(%vga_1024x768_60Hz_timing))
		{
			$vga_timing{$key} = $vga_1024x768_60Hz_timing{$key};
		}
#	  e_signal->add({name => "clk_65", width => 1,});
#		e_assign->add (["vga_clk", "clk_65"]);
		
		print STDERR "VGA Controller resolution has been set to 1024x768\n";
		print STDERR "Ensure that vga_clk is connected to a 65MHz clock\n";
	}

  my $HSCAN_WIDTH = $vga_timing{'HSCAN_WIDTH'};
  my $VSCAN_DEPTH = $vga_timing{'VSCAN_DEPTH'};
  my $NUM_COLUMNS = $vga_timing{'NUM_COLUMNS'};
  my $NUM_ROWS = $vga_timing{'NUM_ROWS'};
  my $HSYNC_LOW1 = $vga_timing{'HSYNC_LOW1'};
  my $HSYNC_LOW2 = $vga_timing{'HSYNC_LOW2'};
  my $HSYNC_HIGH = $vga_timing{'HSYNC_HIGH'};
  my $HBLANK_HIGH = $vga_timing{'HBLANK_HIGH'};
  my $HBLANK_LOW = $vga_timing{'HBLANK_LOW'};
  my $VSYNC_LOW1 = $vga_timing{'VSYNC_LOW1'};
  my $VSYNC_LOW2 = $vga_timing{'VSYNC_LOW2'};
  my $VSYNC_HIGH = $vga_timing{'VSYNC_HIGH'};
  my $VBLANK_HIGH = $vga_timing{'VBLANK_HIGH'};
  my $VBLANK_LOW = $vga_timing{'VBLANK_LOW'};
  my $SYNC_POLARITY = $vga_timing{'SYNC_POLARITY'};

  ################################################################
  #                     THIS IS THE DMA FIFO                     #
  ################################################################

  ####################### FIFO CONSTANTS #########################

  my $FIFO_DEPTH = $WSA->{fifo_depth};
  my $FIFO_WRITE_THRESHOLD = ($WSA->{fifo_depth} * 7 / 8);
  my $FIFO_READ_THRESHOLD = ($WSA->{fifo_depth} / 2);

  # These ports are for debugging only.
  #e_port->add({name => "fifo_data_out", width => $SBI_master->{Data_Width}, direction => "output", });
  #e_port->add({name => "fifo_used", width => 12, direction => "output", });

  # We need to declare the width of these signals
  my $fifo_counter_width = ceil(log2($FIFO_DEPTH));
  e_signal->add({name => "fifo_data_out", width => 32,});
  e_signal->add({name => "fifo_data_in", width => 32,});
  e_signal->add({name => "fifo_used", width => "$fifo_counter_width",});

  e_blind_instance->add({
     tag            => 'normal',
     use_sim_models => 1,
     name           => 'the_dcfifo',
     module         => 'dcfifo',
     in_port_map    => {data => "fifo_data_in",
                        rdclk => "vga_clk",
                        rdreq => "fifo_read_req",
                        wrclk => "fifo_write_clk",
                        wrreq => "fifo_write_req",
                        aclr => "!reset_n",},
     out_port_map   => {"q", "fifo_data_out",
                        wrusedw => "fifo_used",
                        rdempty => "fifo_rdempty",},
#                         wrfull => "fifo_wrfull"},
     parameter_map  => {LPM_WIDTH => "32",
                      LPM_NUMWORDS => $FIFO_DEPTH,
                      LPM_SHOWAHEAD => "\"ON\""},
  });

  e_assign->add (["fifo_write_clk", "clk"]);
  e_assign->add (["fifo_data_in", "master_readdata"]);

  # This is our signal that the fifo has fallen below the write threshold, and
  # should be written with some data as soon as possible.  We double register
  # it to avoid any possible clock-crossing metastability issues.
  e_register->add({
    out => {name => "fifo_has_room_reg1", export => 0,},
    in => "fifo_used < $FIFO_WRITE_THRESHOLD",
    enable => 1,
  });
  e_register->add({
    out => {name => "fifo_has_room", export => 0,},
    in => "fifo_has_room_reg1",
    enable => 1,
  });

  # This is our signal that the fifo has reached the read threshold
  # and we can start reading out of it.  We double register it to
  # avoid any possible clock-crossing metastability issues.
  e_register->add({
    out => {name => "fifo_has_data_reg1", export => 0,},
    in => "fifo_used > $FIFO_READ_THRESHOLD",
    clock => "vga_clk",
    enable => 1,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本丶国产丶欧美色综合| 日韩高清不卡一区二区三区| 樱花影视一区二区| 日韩精品一二三区| 国产一本一道久久香蕉| av亚洲精华国产精华精| 欧美日韩一区二区三区高清 | 亚洲三级理论片| 亚洲综合图片区| 韩国理伦片一区二区三区在线播放 | av中文字幕不卡| 欧美日韩精品免费| 国产视频亚洲色图| 亚洲一卡二卡三卡四卡| 国产一区二区三区视频在线播放| jlzzjlzz欧美大全| 3d成人h动漫网站入口| 欧美经典三级视频一区二区三区| 亚洲18女电影在线观看| 丁香天五香天堂综合| 欧美卡1卡2卡| 中文字幕中文字幕中文字幕亚洲无线| 五月婷婷综合在线| 成人高清视频免费观看| 欧美一区二区私人影院日本| 中文字幕在线一区免费| 久久精品免费观看| 欧洲一区二区三区在线| 精品免费国产二区三区| 性做久久久久久免费观看欧美| 国产成人高清视频| 日韩欧美中文字幕公布| 一区二区免费看| 国产suv一区二区三区88区| 91麻豆精品国产91久久久更新时间 | 伊人色综合久久天天人手人婷| 国产一区不卡在线| 欧美一区二区美女| 亚洲激情在线播放| 成人av网站免费| 精品国产免费人成电影在线观看四季 | 精品在线你懂的| 在线不卡a资源高清| 国产精品久久久久aaaa| 国产一区二区在线观看视频| 欧美精品久久99久久在免费线 | 成人精品免费视频| 26uuu色噜噜精品一区二区| 亚洲动漫第一页| 色呦呦一区二区三区| 国产欧美日韩视频在线观看| 精品一区在线看| 欧美一区国产二区| 天堂一区二区在线免费观看| 在线影视一区二区三区| 亚洲欧美一区二区三区久本道91| 高清不卡一区二区| 久久久久久9999| 精品亚洲porn| www成人在线观看| 韩国女主播成人在线| 精品裸体舞一区二区三区| 蜜臀va亚洲va欧美va天堂| 欧美网站大全在线观看| 亚洲精品国产一区二区精华液| 成人三级在线视频| 国产清纯白嫩初高生在线观看91| 国产麻豆精品视频| 国产亚洲精品免费| 成人中文字幕在线| 欧美国产精品v| 成人高清免费观看| 中文字幕一区二区在线播放| 成人理论电影网| 中文字幕日韩av资源站| 97久久精品人人做人人爽| 亚洲人成在线观看一区二区| 99久久综合99久久综合网站| 亚洲欧美日韩在线| 在线观看免费视频综合| 亚洲高清免费在线| 欧美一区二区三区免费大片 | 日韩精品在线一区二区| 裸体一区二区三区| 久久综合精品国产一区二区三区| 国内久久精品视频| 日本一区二区电影| 色综合中文字幕| 亚洲一区二区偷拍精品| 欧美日产在线观看| 老汉av免费一区二区三区| 久久综合九色综合久久久精品综合| 国产乱子伦视频一区二区三区| 久久精品亚洲国产奇米99| 成人激情av网| 亚洲国产成人av网| 精品国产91九色蝌蚪| 丁香激情综合国产| 亚洲与欧洲av电影| 精品国产一区二区三区忘忧草| 国产精品77777竹菊影视小说| 国产精品毛片大码女人| 色婷婷久久久综合中文字幕| 视频在线观看一区二区三区| 精品国产一区二区精华| 不卡一区中文字幕| 午夜影院在线观看欧美| 精品对白一区国产伦| 成人av集中营| 日本一区中文字幕| 国产三级三级三级精品8ⅰ区| 91无套直看片红桃| 秋霞午夜鲁丝一区二区老狼| 久久久综合视频| 欧美综合色免费| 精品一区二区在线观看| 亚洲欧洲成人自拍| 欧美一级日韩一级| 成人黄色国产精品网站大全在线免费观看 | 韩国欧美国产1区| 亚洲激情av在线| 久久综合久久综合久久综合| 91看片淫黄大片一级在线观看| 青青青爽久久午夜综合久久午夜| 亚洲国产精品激情在线观看 | 美女视频一区在线观看| 国产精品久久久久久一区二区三区| 欧美日韩国产a| 国产91精品露脸国语对白| 亚洲成人av免费| 国产欧美日韩激情| 91精品国产一区二区| 北条麻妃一区二区三区| 男男成人高潮片免费网站| 亚洲欧美自拍偷拍色图| 日韩欧美专区在线| 在线观看91精品国产入口| 国产黄色91视频| 日韩国产欧美三级| 亚洲免费在线观看视频| 久久久久久**毛片大全| 欧美美女直播网站| 99久久综合精品| 国产剧情在线观看一区二区| 亚洲午夜私人影院| 亚洲视频一二三| 久久久久久久国产精品影院| 91.成人天堂一区| 91成人在线免费观看| 高清免费成人av| 精品中文字幕一区二区小辣椒| 亚洲大片在线观看| 亚洲啪啪综合av一区二区三区| 久久久久高清精品| 欧美α欧美αv大片| 欧美精品aⅴ在线视频| 91丨porny丨国产入口| 国产成人在线视频播放| 美国欧美日韩国产在线播放| 五月天久久比比资源色| 一区二区三区四区亚洲| 国产精品传媒视频| 欧美激情一区二区三区蜜桃视频| 精品国产乱子伦一区| 欧美一区二区三区在线观看 | 免费三级欧美电影| 亚洲一区二区成人在线观看| 又紧又大又爽精品一区二区| 亚洲视频一区二区免费在线观看 | 91色婷婷久久久久合中文| 成人在线综合网| 成人免费看片app下载| 国产乱对白刺激视频不卡 | 国产精品毛片a∨一区二区三区| 欧美mv日韩mv国产网站app| 91精品国产色综合久久| 6080国产精品一区二区| 91精品国产综合久久精品app| 欧美日韩精品欧美日韩精品| 欧美视频在线观看一区二区| 欧美亚洲高清一区| 欧美四级电影网| 欧美性xxxxx极品少妇| 欧美丝袜第三区| 欧美乱熟臀69xxxxxx| 91精品国产综合久久久久久久| 在线不卡免费av| 日韩欧美在线1卡| 欧美不卡在线视频| 久久蜜臀精品av| 国产精品欧美一级免费| 国产精品国产a级| 一二三区精品视频| 亚洲一区二区视频| 日韩电影在线免费观看| 奇米在线7777在线精品| 久久精品国产久精国产| 国产精一品亚洲二区在线视频| 国产大陆a不卡| jlzzjlzz国产精品久久|