用always块写一个黑白竖格到板上
时间: 2023-10-09 10:07:35 浏览: 41
以下是用 always 块写的黑白竖格到板上的 Verilog 代码:
```verilog
module black_white_vertical_grid(
input clk,
output reg [7:0] leds
);
reg [2:0] counter;
always @(posedge clk) begin
counter <= counter + 1;
case(counter[2:0])
3'b000: leds <= 8'b10101010; // black
3'b001: leds <= 8'b01010101; // white
default: counter <= 3'b000; // reset counter
endcase
end
endmodule
```
这个模块有一个时钟输入和一个8位的 LED 输出。在 always 块中,我们使用一个3位计数器来交替显示黑色和白色。当计数器的低3位为000时,我们将LED输出设置为黑色,当计数器的低3位为001时,我们将LED输出设置为白色。当计数器的低3位为其它值时,我们将计数器重置为000,以便重新开始显示黑色和白色。
相关问题
Verilog写一个黑白竖格
以下是使用 Verilog 实现黑白竖格的代码:
```verilog
module black_white_vertical_grid(
input clk,
output reg [7:0] leds
);
reg [2:0] counter;
always @(posedge clk) begin
counter <= counter + 1;
if(counter == 4'b0000 || counter == 4'b0111) begin
leds <= 8'b10101010; // black
end else begin
leds <= 8'b01010101; // white
end
end
endmodule
```
这个模块同样有一个时钟输入和一个8位的 LED 输出。在 always 块中,我们使用一个3位计数器来交替显示黑色和白色。当计数器的值为0000或0111时,我们将LED输出设置为黑色,否则我们将LED输出设置为白色。这样可以实现黑白交替显示的效果。
Verilog实现竖条黑白格并在显示器上显示出来
以下是一个简单的Verilog代码实现竖条黑白格模式并在显示器上显示出来:
```
module black_white_display(
input clk,
output reg [7:0] led,
output reg [3:0] anode,
output reg [7:0] cathode
);
reg [3:0] counter;
reg [7:0] display_data;
always @(posedge clk) begin
counter <= counter + 1;
if (counter == 4'd7) begin
counter <= 4'd0;
end
end
always @(posedge clk) begin
if (counter < 4'd4) begin
display_data <= 8'b10101010;
end else begin
display_data <= 8'b01010101;
end
end
always @(posedge clk) begin
case (counter)
4'd0: begin
anode <= 4'b1110;
end
4'd1: begin
anode <= 4'b1101;
end
4'd2: begin
anode <= 4'b1011;
end
4'd3: begin
anode <= 4'b0111;
end
default: begin
anode <= 4'b1111;
end
endcase
end
always @(posedge clk) begin
case (anode)
4'b1110: begin
cathode <= ~display_data[0];
end
4'b1101: begin
cathode <= ~display_data[1];
end
4'b1011: begin
cathode <= ~display_data[2];
end
4'b0111: begin
cathode <= ~display_data[3];
end
default: begin
cathode <= 8'b11111110;
end
endcase
end
endmodule
```
该代码实现了一个计数器 `counter`,每当计数器的值从7变为0时,输出 `led` 灯的模式就会发生变化。当 `counter` 的值小于4时,`display_data` 数据输出的是黑白相间的竖条模式;当 `counter` 的值大于等于4时,`display_data` 数据输出的是白黑相间的竖条模式。同时,该代码还实现了一个数码管的驱动,通过 `anode` 控制数码管的哪个数字显示,通过 `cathode` 控制该数字的哪一位显示。最终,黑白竖条模式将在数码管上显示出来。