• 大小: 89.15MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-21
  • 语言: 其他
  • 标签:

资源简介

配合《Verilog SOPC高级实验教程》(北航)一书使用,共分十讲。每讲都给出了相应的源代码供读者参考

资源截图

代码片段和文件信息

#include “system.h“
#include “alt_types.h“
#include 
#include “anywhere_avalon_lcd_regs.h“
#include “anywhere_avalon_bitblt_regs.h“
    
alt_u32 framebufferOffset = SSRAM_0_base;

void Fill(alt_u32 XPos alt_u32 YPos alt_u32 Width alt_u32 Height alt_u16 Color)
{
    int ij;
    alt_u16* DataOffset;
        
    DataOffset = framebufferOffset;
    DataOffset += (XPos + YPos * 640) ;
   
    //Fill a Rect
    for(i = 0; i < Height; i++)
    {
      for(j = 0;j < Width;j++)
      {
        *(DataOffset+j) = Color;
      }
      DataOffset += 640 ; 
    }
        
    //Flush Data to Mem
    alt_dcache_flush_all();

}

void Blt(alt_u32 SrcXPos alt_u32 SrcYPosalt_u32 DesXPos alt_u32 DesYPos alt_u32 Width alt_u32 Height)
{
    alt_u16* SrcDataOffset;
    alt_u16* DesDataOffset;
    
    alt_u16 Status;
    alt_u8  Mode=0;
    
    alt_u8  WorkFinished=0;
    alt_u32 Try=0;

//Set Mode 
    Mode=IORD_ANYWHERE_AVALON_BITBLT_CTRL(ANYWHERE_AVALON_BITBLT_0_base);
    Mode|=0x02;       // 光栅操作使能地址选择为矩形
      IOWR_ANYWHERE_AVALON_BITBLT_CTRL(ANYWHERE_AVALON_BITBLT_0_baseMode);

//Set Rop code =copy   
IOWR_ANYWHERE_AVALON_BITBLT_ROP_CODE(ANYWHERE_AVALON_BITBLT_0_base0x0C);
    
    //Set Para
    SrcDataOffset = framebufferOffset;
    SrcDataOffset += (SrcXPos + SrcYPos * 640);
    DesDataOffset = framebufferOffset;
    DesDataOffset += (DesXPos + DesYPos * 640);
    
IOWR_ANYWHERE_AVALON_BITBLT_SRC_START_ADR(ANYWHERE_AVALON_BITBLT_0_baseSrcDataOffset);
    IOWR_ANYWHERE_AVALON_BITBLT_SRC_MEM_OFFSET(ANYWHERE_AVALON_BITBLT_0_base1280);
    IOWR_ANYWHERE_AVALON_BITBLT_DEST_START_ADR(ANYWHERE_AVALON_BITBLT_0_baseDesDataOffset);
    IOWR_ANYWHERE_AVALON_BITBLT_DEST_MEM_OFFSET(ANYWHERE_AVALON_BITBLT_0_base1280);
    IOWR_ANYWHERE_AVALON_BITBLT_WIDTH(ANYWHERE_AVALON_BITBLT_0_baseWidth);
    IOWR_ANYWHERE_AVALON_BITBLT_HEIGHT(ANYWHERE_AVALON_BITBLT_0_baseHeight);
    
//Start Blt
IOWR_ANYWHERE_AVALON_BITBLT_CMD(ANYWHERE_AVALON_BITBLT_0_base0x05);  
    
//Wait while busy
while((WorkFinished == 0) && (Try < 10000000))
   {
      Status=IORD_ANYWHERE_AVALON_BITBLT_STATUS(ANYWHERE_AVALON_BITBLT_0_base);
      if(Status & 0x80) //BLT_STATUS_BUSY
      {
        Try++;
      }
      else
      {
        WorkFinished=1;
      }
    }
    
}

int BitBlt(void)
{
  alt_u32 tXPos;
  alt_u32 tYPos;
  
  static alt_32 BlockNum = 0;
  static alt_32 ColorNum = 0;
  
  alt_u16 BGColor;
  alt_u16 FGColor;
  
  //Set Color
  BGColor = ColorNum * rand();
  FGColor = ~BGColor;

  //Draw First Block and then Blt to all Blocks
  if(BlockNum == 0)
  { 
//Draw 80×80 block
    Fill(004040BGColor);
    Fill(0404040FGColor);
    Fill(4004040FGColor);
    Fill(40404040BGColor);
  }
  else
  {  
//Blt    
    tXPos = (BlockNum % 8)*80;
    tYPos = (BlockNum / 8)*80;
    Blt(00tXPostYPos8080);
  }
  
  //for next 
  ColorNum+

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2734  2009-04-19 10:37  lecture4\工程\myadder8\adder8_lpm.bsf

     文件        376  2009-04-19 10:37  lecture4\工程\myadder8\adder8_lpm.qip

     文件       5074  2009-04-19 10:37  lecture4\工程\myadder8\adder8_lpm.v

     文件       4294  2009-04-19 10:37  lecture4\工程\myadder8\adder8_lpm_bb.v

     文件      59364  2009-04-19 10:37  lecture4\工程\myadder8\adder8_lpm_wave0.jpg

     文件        536  2009-04-19 10:37  lecture4\工程\myadder8\adder8_lpm_waveforms.html

     文件       1585  2009-04-19 10:46  lecture4\工程\myadder8\db\add_sub_1ei.tdf

     文件       1185  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(0).cnf.cdb

     文件        578  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(0).cnf.hdb

     文件       1351  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(1).cnf.cdb

     文件        642  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(1).cnf.hdb

     文件       1126  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(2).cnf.cdb

     文件        562  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(2).cnf.hdb

     文件        991  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(3).cnf.cdb

     文件        540  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.(3).cnf.hdb

     文件       2186  2009-04-19 10:48  lecture4\工程\myadder8\db\myadder8.asm.qmsg

     文件      12980  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.asm_labs.ddb

     文件        227  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.cbx.xml

     文件        631  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.cmp.bpm

     文件       4367  2009-04-19 10:48  lecture4\工程\myadder8\db\myadder8.cmp.cdb

     文件         28  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.cmp.ecobp

     文件       8749  2009-04-19 10:48  lecture4\工程\myadder8\db\myadder8.cmp.hdb

     文件        339  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.cmp.kpt

     文件          4  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.cmp.logdb

     文件      23270  2009-04-19 10:48  lecture4\工程\myadder8\db\myadder8.cmp.rdb

     文件       4397  2009-04-19 10:48  lecture4\工程\myadder8\db\myadder8.cmp.tdb

     文件      57507  2009-04-19 10:48  lecture4\工程\myadder8\db\myadder8.cmp0.ddb

     文件      42396  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.cmp2.ddb

     文件        345  2009-04-19 10:47  lecture4\工程\myadder8\db\myadder8.cmp_merge.kpt

     文件        137  2009-04-19 10:46  lecture4\工程\myadder8\db\myadder8.db_info

............此处省略6436个文件信息

评论

共有 条评论

相关资源