1.组合逻辑和时序逻辑的比较
- 组合逻辑的输出状态与输入直接相关,时序逻辑还必须在时钟触发下输出(时序逻辑电路多了寄存器和时钟)
- 组合逻辑容易出现竞争冒险现象(毛刺),时序逻辑一般不会出现竞争冒险现象
- 组合逻辑的时序难保证,时序逻辑更容易达到时序收敛,时序逻辑更可控
- 组合逻辑只适合简单的电路,时序逻辑能够胜任大规模的逻辑电路
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/87d760bdef135a90121390ea2143a71e.png)
2.实现方式
1.组合逻辑
1.always@(电平敏感列表):
- 在always模块中使用if、case等语句
- 一般使用阻塞赋值语句“=”
- always模块中的信号为reg型,仅仅是语法要求,实际实现仍然为wire型
2.assign描述的赋值语句
2.时序逻辑
- always块中定义的reg型信号都会被综合成reg(寄存器)
- 时序逻辑中一般使用非阻塞赋值“<=”
- 敏感变量列表中只要有时钟的变化即可,即每次触发输出变化都是时钟沿引起的
3.异或逻辑实现
1.组合逻辑实现
module xor(
input a,b;
output wire z
);
assign z = a ^ b;
endmodule
2.时序逻辑实现
module xor(
input clk;
input rst_n;
input a,b;
output reg z
);
always @ (posedge clk) begin
if (!rst_n)
z <= 1'b0;
else
z <= a ^ b;
end
endmodule