verilogVGA显示太极图案
/*
2017.9.19 gy DE2
vga 640x480 60hz
ADV7123 D/A
输入时钟50MHz 低电平复位时序:水平同步参数h 行扫描同步 后沿 有效视屏 前沿 总
时间us 3.8 1.9 25.4 0.6 31.7
计数 96 48 640(l) 16 800垂直同步参数v 列扫描 同步 后沿 有效视屏 前沿 总
行数 2 33 480(w) 10 525
时间us = 行数X扫描一行所需要的时间像素时钟25MHz yue=800x525x60
总时间 =31.7usX525X60 yue=1s
计一个数的时间为 1/25MHz or 3.8/96
*/
module vga(clk,rst_n, //inputvga_sync,vga_blank,vga_clk, //output ADV7123 vga_r,vga_g,vga_b,vga_hs,vga_vs //output VGA
);
input clk,rst_n;
output reg [9:0] vga_r,vga_g,vga_b;
output reg vga_clk,vga_hs,vga_vs;
output vga_blank,vga_sync;
//-------------------分频-------------------------
always @(posedge clk or negedge rst_n)if (!rst_n)vga_clk<=1'b0;else vga_clk<=~vga_clk;
//---------------时序参数800x525------------------
parameter H_SYNC=10'd96;
parameter H_BACK=10'd48;
parameter H_LENGTH=10'd640;
parameter H_FRONT=10'd16;parameter V_SYNC=10'd2;
parameter V_BACK=10'd33;
parameter V_WIDTH=10'd480;
parameter V_FRONT=10'd10;reg [9:0] x,y;
//不用SOG(sync on green 同步信号只在绿色信号中出现)
assign vga_sync=1'b0;
//---------------------计数-----------------------
always@(posedge vga_clk or negedge rst_n)
begin if(!rst_n) x<=10'd0;else if(x==800) x<=0;else x<=x+1'b1;
end
always@(posedge vga_clk or negedge rst_n)
begin if(!rst_n) y<=10'd0;else if(y==525) y<=0;else if(x==800) y<=y+1'b1;
end
//------------通过计的数字输出同步信号---------
always@(posedge vga_clk or negedge rst_n)
begin if(!rst_n) vga_hs<=1'b1;else if(x==0) vga_hs<=1'b0;else if(x==H_SYNC) vga_hs<=1'b1;
end
always@(posedge vga_clk or negedge rst_n)
beginif(!rst_n) vga_vs<=1'b1;else if(y==0) vga_vs<=1'b0;else if(y==V_SYNC) vga_vs<=1'b1;
end
//--------------以上为了时序用vga_clk 以下为了计算精确用clk这个时钟-----------------------//----------通过横纵坐标x,y计算出显示的区域---
reg [9:0] vga_x,vga_y;
always@(posedge clk)
beginvga_x=x-H_SYNC-H_BACK;vga_y=y-V_SYNC-V_BACK;
end
//---------------进行同步时消隐------------------
assign vga_blank=vga_x<H_LENGTH && vga_y<V_WIDTH;
//----------通过vga_x,vga_y显示一个太极----------
//圆心坐标
parameter ox1=10'd320,oy1=10'd190;
parameter ox=10'd320,oy=10'd240;
parameter ox2=10'd320,oy2=10'd290;
//圆上的点距离圆心的距离
integer rx1,ry1;
integer rx,ry;
integer rx2,ry2;
always@(posedge clk)
beginrx1=vga_x-ox1;ry1=vga_y-oy1;rx=vga_x-ox;ry=vga_y-oy;rx2=vga_x-ox2;ry2=vga_y-oy2;
end
//先画小圆后画大圆
always @(posedge clk or negedge rst_n)if (!rst_n) hei;else if(rx1*rx1+ry1*ry1<=100) bai;else if(rx2*rx2+ry2*ry2<=100) hei;else if(rx1*rx1+ry1*ry1<=2500) hei;else if(rx2*rx2+ry2*ry2<=2500) bai;else if(rx*rx+ry*ry<=10000) beginif(vga_x<320) bai;else hei;end else if(vga_x<320) hei;else bai;
//----------------设置颜色------------------------
task hei;
beginvga_r=10'b0;vga_g=10'b0;vga_b=10'b0;
end
endtask
task bai;
beginvga_r=10'b1111111111;vga_g=10'b1111111111;vga_b=10'b1111111111;
end
endtask
//----------------------结束-----------------------
endmodule
verilogVGA显示太极图案相关推荐
- Java黑皮书课后题第6章:*6.6(显示图案)编写方法显示如下图案:public static void displayPattern(int n)
*6.6(显示图案)编写方法显示如下图案:public static void displayPattern(int n) 题目 题目概述 破题 代码 运行示例 题目 题目概述 *6.6(显示图案)编 ...
- HTML5 Canvas组件绘制太极图案
一实现思路: 实现原理主要是利用HTML5的Canvas组件提供的path函数功能来绘制圆,首先绘 制两个半圆,分别为黑色和白色,组成一个圆,绘制完成以后再分别绘制一个黑色 和白色的圆在绘制好的黑白圆 ...
- CSS3使用一个盒子实现太极图案
使用一个盒子实现太极图案 代码如下: <body><div></div> </body> * {margin: 0;padding: 0; } body ...
- CSS3 实现太极图案
CSS3实现太极图案 分析图片组成(如下图所示): 先给出html代码: <div class="box"><div class="content&qu ...
- 使用Java 2D绘制黑白太极图案
一:基本原理 利用Java 2D的Area对象对绘制形状几何操作的支持,完成太极图案的绘制,使用Paint来 完成对不同颜色的填充.Java 2D图形API Area对Shape支持四种几何操作: - ...
- 汇编语言显示“*”符号图案(2)
用汇编语言编写程序,在屏幕上显示图案. 要求在屏幕上显示如下图案: * * * * * * * * * * * * * * * * 其中第一行"*" ...
- c语言 编程显示图案*,C语言中怎么编程在计算机屏幕上显示如下图案?
满意答案 aggaskd2a 2013.07.14 采纳率:41% 等级:11 已帮助:5656人 #include int main() { int i, j; for(i = 0; i &l ...
- ArcGIS标注符号显示动物图案及文字
首先,类型要选择"字符标记符号" 一.在文本符号,esri Covervation中,可以找到鸟.羊.鹿等动物符号样式: 二.在[candara].[windings Latin- ...
- 记录一下HarmonyOS开发app时Image标签无法显示圆形图案的问题
目录 解决方案 环境 图片文件 layout配置 预览效果 解决方案 不废话,我就是换成了图片为圆形的PNG的图片,然后配置后面贴一下. 环境 DevEco Studio 3.0.0. ...
- 汇编语言显示“*”符号图案(1)
现有程序: .MODEL SMALL .STACK 100H .DATA .CODE MAIN PROC MOV CL, 1 MOV BL, 1 MOV ...
最新文章
- 10个可以快速用Python进行数据分析的小技巧
- 混合多云每个人都应避免的3个陷阱(第2部分)
- mysql 搭建日志服务器_一、架构01-搭建日志服务器Rsyslog
- linux的基础知识——IP,UDP和TCP
- Spring的@Resource注解报java.lang.NoSuchMethodError
- python 批量处理文件
- mysql+影响的行数+获取_CI中获取读操作的结果集行数+获取写操作的影响行数
- 流量 起伏大_广西崇左的德天跨国大瀑布,一半是中国一半是越南,天下奇观!...
- 摘自缪雪峰的博客的JavaScript个人笔记(3)
- 当try和finally都包含return时
- 性能分析:处理器、磁盘I/O、进程、网络分析方法 http://www.cnblogs.com/fnng/archive/2012/10/30/2747246.html...
- 正向代理和反向代理详解(纯小白必看 最好懂的白话文教程)
- 网站的版面设计,商业Web站点设计策略,网站CI形象设计,网页色彩的搭配
- PQ 8.05中文版硬盘物理分区与删除分区(图文详解)
- 多线程编程实例(使用CompletableFuture)
- 小程序源码:求职招聘微信小程序源码下载v4.1.78
- CMD控制台提示“telnet不是内部或外部命令,也不是可运行的程序或批处理文件”
- HTML5之游戏DEMO - Yorhom's Game Box
- 51单片机c语言程序是一个灯亮灭,单片机实现8个灯每两个灯一亮在后面两个灯一亮直到最后8个灯全亮...
- 浪漫程序员会表白之抖音旋转立方体照片墙
热门文章
- 每日一生信--blast2go本地化(终极版)
- mysql 允许局域网连接_设置Mysql允许局域网或外部连接
- 递归与自我指涉标识牌Top 5
- Camera 图像处理原理分析- 色彩篇 一
- 陈强教授《机器学习及R应用》课程 第七章作业
- 【机器视觉硬件】机器视觉硬件学习笔记2——工业相机
- finereport帮助文档中期学习总结
- mysql的tps是什么意思_Mysql数据库的QPS和TPS的意义和计算方法
- 【渝粤题库】陕西师范大学163104 景区管理 作业 (高起专)
- python 报错 TypeError: tuple indices must be integers or slices, not tuple