异步复位的串联T触发器
主要是意识到T触发器是输入端0保持,输入端1反相;D触发器才是接收数据。
然后有个说法是异步复位同步释放,既能捕捉同步复位可能捕捉不到的复位信号,由于释放是同步的,又可以减少亚稳态的可能。
module Tff_2(
input wire data, clk ,rst,
output reg q
);
reg tmp_q;
always@(posedge clk , negedge rst) begin
if(!rst)begin
tmp_q <= 1'b0;
end
else begin
if(data) tmp_q<=!tmp_q;
else tem_q<=tmp_q;
end
end
always@(posedge clk, negedge rst)begin
if(!rst)begin
q <= 1'b0;
end
else begin
if(tmp_q) q<=!q;
else q<=q;
end
end
endmodule
奇偶校验
输出是线网类型,使用assign赋值
module odd_sel(
input [31:0] bus,
input sel,
output check
);
assign check = sel ? ^bus : !(^bus);
endmodule
移位运算与乘法
要注意的问题是out是11位的,但是d是8位的,使用移位进行乘法时,如果module内使用的reg也是8位的,可能会出现溢出的情况,比如我用一个reg [7:0]data存输入d,那么乘7就应该使