用verilog 如何写vga 显示时钟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用verilog 如何写vga 显示时钟相关的知识,希望对你有一定的参考价值。

参考技术A 给你我写过的
reg[10:0] x;
reg[10:0] y;
reg vsync,hsync,de;
always@(posedge lcd_pclk or negedge lcd_reset_n)
if(!lcd_reset_n)
x <= 0;
else
x <= (x>=horizontal_width)? 11'd1:x+11'd1;

always@(posedge lcd_pclk or negedge lcd_reset_n)
if(!lcd_reset_n)
hsync <= 0;
else
hsync <= (x>horizontal_sync);
assign lcd_hsync = hsync;

always@(posedge lcd_pclk or negedge lcd_reset_n)
if(!lcd_reset_n)
y <= 0;
else if(x==horizontal_width)
y <= (y>=vertical_width)? 11'd1:y+11'd1;

always@(posedge lcd_pclk or negedge lcd_reset_n)
if(!lcd_reset_n)
vsync <= 0;
else
vsync <= (y>vertical_sync);
assign lcd_vsync = vsync;

always@(posedge lcd_pclk or negedge lcd_reset_n)
if(!lcd_reset_n)
de <= 0;
else
de <= (y>vertical_sync+vertical_back_porch) & (y<=vertical_sync+vertical_back_porch+vertical_active) &
(x>horizontal_sync+horizontal_back_porch) & (x<=horizontal_sync+horizontal_back_porch+horizontal_active);
assign lcd_de = de;
参考技术B 你是要显示的时序吧,包括行场同步信号那些吧。本回答被提问者采纳

如何写好Verilog状态机

参考技术A 状态机描述主要有以下几个方面,即如何进行状态转移,状态转移的条件,每个状态的输出是什么;而最佳的状态机就是将三者分开,由组合逻辑和非组合逻辑搭配组成,这样程序易读,易维护,同时方便添加约束条件。
2
第一段状态,时序电路的always模块,用同步电路描述状态跳转的过程,这样可利用触发器消除不稳定状态。
3
第二段状态,组合逻辑always模块,用以描述状态转移的判断条件,利用组合逻辑实现,达到立即判断的效果,在下一时钟边沿同步变化
4
第三段状态,时序电路always模块,用以描述每一段状态的结果输出,使用时序电路实现,消除不稳定状态的变化,达到同步跳转的效果
5
三段式状态机做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组,在FPGA的综合与布局布线效果更佳,提高电路运行时钟,加大布线成功率。

以上是关于用verilog 如何写vga 显示时钟的主要内容,如果未能解决你的问题,请参考以下文章

怎样用Verilog语言写VGA显示

verilog 可否实现让vga定时产生不同的颜色。。。第一秒显示红,第二秒显示蓝。。。

怎样用Verilog语言实现VGA的文字显示?

各位大家好,我在fpga上用verilog实现vga字符显示,将字符的十六进制存放在ram里面,读出并显示在vga上

VGATFT显示模块——verilog实现

由于verilog与verilator中的无符号算术错误,比较是恒定的