这里只记录Verilog题集,准备设计岗的。笔试题目更新在上一篇中。
目录
关于状态机编码,三段式编码方式中的三个always模块是什么作用?
第一个采用同步时序的方式描述状态转移;
阻塞赋值,描述状态寄存器
第一个采用组合逻辑的方式判断状态转移条件,描述状态转移规律;
描述转移,非阻塞赋值
第三个always模块使用同步时序电路描述每个状态的输出。
描述输出,阻塞(当前状态)与非阻塞赋值(下一个状态)都有
参考如下:
三段式状态机理解浅析_vegetable_birds123的博客-CSDN博客_三段式状态机
输出3位二进制数,对应的十进制数作为点亮位输出
- module decode_38 ( input wire[2:0] a, output reg[7:0] y );
- integer i;
- always @(*) begin
- for (i=0;i<8;i=i+1)
- begin
- if (a==i) y[i]<=1; else y[i]<=0; end
- end
- endmodule
全加器的真值表如下,输入两个加数和进位,输出和、进位,这个做法是直接拼在一起
- module adder( input clk, input rst, input [3:0] a,b; input ci, output [3:0] y, output co )
- always @ (posedge clk, negedge rst)
- begin
- if(!rst) {co,y} <= 5'b00000;
- else
- begin {co,y} <= a &