Verilog 代码题练手(1)



引言

本专栏主要针对往年IC笔试的真题进行编程练习。题解思路不唯一,希望可以交流。我的代码只是能说是按照我对题目的理解进行编写。有出入的地方可以留言交流。

每道题目会给出设计代码、TESTBENCH、仿真结果。

每篇博客 题目数为 1 ,不止是代码,也有思路分析。

本专栏有时间就会继续更新,欢迎订阅关注~


序列检测

(乐鑫某年笔试题目)模块持续每拍并行输入2bit数,请实现对(1011001)的序列检测功能,输入数据的顺序为高位2bit先输入,当检测到该序列时,输出一拍高电平脉冲信号。请用Verilog完整描述该模块。

思路:

这里简单说明我的思路:

此题输入为双比特输入,同时给进两位数,但是待检测的序列长度为7(奇数);所以常规的单比特输入序列检测不再适用。下面给出一种移位寄存器的解决方法:

1、复位信号拉低,模块复位,寄存器、计数器清零;

2、复位撤离ÿ

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当需要设计一个Verilog状态机代码时,补充以下内容: 1. 确定状态数量和状态转换条件:首先,确定你的状态机需要多少个状态。每个状态都应该有一个唯一的标识符,并且你需要定义从一个状态到另一个状态的转换条件。 2. 定义输入和输出信号:查看你的状态机设计中是否有输入和输出信号。这些信号会影响你的状态转换。确保为每个信号定义一个标识符,并在代码中声明。 3. 创建状态寄存器:为了跟踪当前的状态,你需要创建一个状态寄存器。这个寄存器将存储当前的状态,并根据状态转换条件进行更新。 4. 实现状态转换逻辑:在你的代码中,为每对状态之间的转换编写逻辑。根据状态转换条件,使用if-else语句或case语句来指定不同状态之间的转换。 5. 存储状态转换的下一个状态:对于每个状态转换,你需要指定下一个状态的值。这可以通过使用non-blocking赋值操作符(<=)将状态寄存器与新状态相关联来实现。 6. 处理输入和输出:考虑你的输入和输出信号在每个状态中的操作和输出。根据状态和输入信号的组合,执行必要的操作并输出所需的信号。 7. 初始化状态:为了确保状态机在开始时处于正确的状态,应在代码的开头对状态寄存器进行初始化。 总体而言,设计Verilog状态机代码需要确定状态数量、定义输入和输出信号、创建状态寄存器、实现状态转换逻辑、存储下一状态、处理输入和输出,并初始化状态。通过遵循这些步骤,你可以创建一个有效的Verilog状态机代码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在路上-正出发

哈哈,多少是个心意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值