资源简介
配合《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.xm
文件 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个文件信息
- 上一篇:sigcomm2019论文集.zip
- 下一篇:自动控制原理习题解析
评论
共有 条评论