了解了状态机结构,接下来就来学习更加高级的流水线结构
状态机结构的好处是简单方便,但是综合出来的电路时序不高
也就是很难高频工作,因为在一个时钟里要进行多次判断匹配
虽然代码看上去很简单,但是综合出来的电路十分冗杂
通常用于时序要求不高简单的电路
流水线则与之相反
流水线将一个工作拆分成多个小任务
每个小任务执行起来十分简单快速
每个小任务就是一个小模块
这样有利于时序,但是会增加电路面积和复杂度
最常见的就属cpu电路,频率动辄上Ghz
下面是一个经典的5级流水线cpu运行时序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-io3NbTDi-1625832218017)(https://i.loli.net/2021/07/07/U3ojqnNagyEZd8V.png)]
接下来我们来使用流水线结构实现一个简单的整数乘法器
代码如下
module mul_cell
#(parameter N=4,
parameter M=4
)(
input clk, //时钟信号
input rstn, //复位信号
input en, //使能信号
input[M+N-1:0] mult1, //被乘数
input[M-1:0] mult2, //乘数
input[M+N-1:0] mult1_acci, //上