FPGA
文章平均质量分 67
时光瞎搞
这个作者很懒,什么都没留下…
展开
-
状态机详解(SpinalHDL编写状态机)(二)
在之前的文章中使用了verilog来编写了状态机,本篇文章将使用SpinalHDL来编写一个相同的状态机。在此之前我们先要知道spinal中的状态机是怎么工作的。1. SpinaHDL怎么编写状态机下面我们来看SpinalHDL中对状态机的描述名称描述onEntry{语句}在进入当前状态之前执行语句onExit{语句}在进入下一个状态之前执行语句whenIsActive{语句}当前状态所需要执行的语句whenIsNext{语句}在进入下一个状态之后执行语句原创 2022-03-31 11:49:22 · 979 阅读 · 0 评论 -
状态机详解(Verilog编写状态机)(一)
verilog实现状态机背景问题:计数状态机的实现Verilog实现此状态机1. 代码如下2. 代码的说明3. 代码的仿真背景在学习spinalHDL的时候对他的状态机的实现有很多不懂的地方,特地使用了verilog编写了一个相同的状态机来学习其中的时序。问题:计数状态机的实现状态转移图如下图所示stateA:直接跳转到stateB,同时赋值cnt = 2stateB:判断cnt的值是否为6,若是则跳转到stateC,没有则继续执行stateB,同时cnt <= cnt + 1’b1原创 2022-03-31 11:13:10 · 8831 阅读 · 2 评论 -
仿真中的阻塞赋值与非阻塞赋值
仿真中的阻塞赋值与非阻塞赋值问题背景原因解决方法思考问题背景今天在写uart串口的代码,仿真的时候遇到了一个问题。在uart模块中的两个信号send_en和tx_state。本来期望的是send_en出现一个时钟高电平,tx_state拉高代表了串口正在传送数据。代码如下://tx_state信号 always@(posedge clk or negedge rst_n)begin if(!rst_n) tx_state <= 1'b0;原创 2021-11-01 10:28:32 · 1325 阅读 · 2 评论