从一个记忆游戏来说明Verilog——1、总起,介绍和分工

写在前面当我们在小规模的Verilog书写的过程中,每一个模块的功能都是很明确的,也不需要什么分工,比如常见的分频流水灯或者是七段数码管的使用,每一个模块的构思都是很简单的,但在实际中Verilog可不仅仅是写这些小玩意,当形成一个大型状态机——CPU,还是其他的大型项目,模块多起来了就会变得十分棘手。那么当我们遇到一个相对比较大的Verilog项目时,我们应该怎么处理呢?一些建议我们一般有几种常见的构思方式,比如从一个个小模块开始,然后构思整体的框架,或者是自顶向下。一般来说自顶向下的方式是最合理的
摘要由CSDN通过智能技术生成

写在前面

当我们在小规模的Verilog书写的过程中,每一个模块的功能都是很明确的,也不需要什么分工,比如常见的分频流水灯或者是七段数码管的使用,每一个模块的构思都是很简单的,但在实际中Verilog可不仅仅是写这些小玩意,当形成一个大型状态机——CPU,还是其他的大型项目,模块多起来了就会变得十分棘手。那么当我们遇到一个相对比较大的Verilog项目时,我们应该怎么处理呢?

一些建议

我们一般有几种常见的构思方式,比如从一个个小模块开始,然后构思整体的框架,或者是自顶向下。一般来说自顶向下的方式是最合理的,因为这样能更好的处理好每一个模块的分工。
然后就是要搞清楚Verilog的一些重点:
多模块对同一个变量进行赋值不成立
每一个模块是并行的,而不是像其他高级编程语言一样,属于上面的语句执行完了才开始执行下面的语句(if-else除外)
然后,我们就可以开始进行分工了。

题目描述

在一块板子上,用8位拨码开关和5个按键开关,以及8个七段数码管实现如下记忆小游戏:(直接白嫖指导书了)

  1. 系统在开机上电或按下复位键(按键S4)时,数码管显示8个“0”,然后等待按键S0被按下;
  2. 按键S0按下后,系统
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个简单的8位并行-串行自动转换电路的Verilog HDL代码: ```verilog module ParallelToSerial( input clk, // 时钟信号 input reset, // 复位信号 input [7:0] parallel_data, // 并行数据输入 input enable, // 使能信号 output reg serial_out // 串行数据输出 ); reg [7:0] shift_reg; // 移位寄存器 always @(posedge clk) begin if (reset) begin shift_reg <= 8'b0; // 在复位信号下,清除移位寄存器 end else if (enable) begin shift_reg <= {shift_reg[6:0], parallel_data[7]}; // 将并行数据输入移位到移位寄存器中 end end always @(posedge clk) begin if (reset) begin serial_out <= 1'b0; // 在复位信号下,将串行数据输出置为0 end else if (enable) begin serial_out <= shift_reg[7]; // 将移位寄存器中的最高位作为串行数据输出 end end endmodule ``` 该代码定义了一个名为ParallelToSerial的模块,其中包含四个输入信号(时钟信号、复位信号、并行数据输入和使能信号)和一个输出信号(串行数据输出)。该模块使用一个移位寄存器来完成从并行数据输入到串行数据输出的自动转换。 在时钟信号的上升沿触发的always块中,如果接收到复位信号,移位寄存器将被清零。否则,如果接收到使能信号,移位寄存器将把输入的最高位添加到其末尾。 在另一个时钟信号的上升沿触发的always块中,如果接收到复位信号,串行数据输出将被置零。否则,如果接收到使能信号,串行数据输出将设置为移位寄存器中的最高位。 这样,当使能信号被设置为高电平时,模块就会自动从并行数据输入中读取数据,将其转换为串行数据输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值