移位寄存器设计verilog
1. Write and verify the Verilog models for the two basic types of synchronizer circuits(a,b) shown in Fig.1
本电路实现是功能是一个两位的移位寄存器。Asynch_in为输入,Synch_out为输出,clock是时钟,reset为异步复位信号。
电路a的verilog代码为: module syn_a(
input Asynch_in, input clock, input reset,
output Synch_out); wire meta; reg Q1,Q2;
assign meta=Q1;
assign Synch_out=Q2;
always @(posedge clock or negedge reset) begin
if(!reset)begin Q1 <=1'b0; Q2 <=1'b0; end
else begin
Q1 <= Asynch_in; Q2 <= meta; end end
endmodule
验证代码:
`timescale 1ns/1ps module syn_a_test; reg Asynch_in; reg clock; reg reset;
wire Synch_out;
always #50 clock=~clock;