三种同步器电路设计Verilog代码VIVADO仿真
三种同步器电路设计Verilog代码VIVADO仿真
三种同步器电路设计Verilog代码VIVADO仿真
软件与语言
- 软件:VIVADO
- 语言:Verilog
代码功能
采用行为描述风格完成如下三种同步器电路的设计功能仿真与时序仿真验证。提交电子版的设计代码和仿真结果,分析功能与时序仿真的差异,并根据仿真结果对电路的功能特点、使用条件等尽量详细地作出分析讨论。
设计工具与仿真工具
- 设计工具:Vivado 2015.4
- 仿真工具:Vivado 2015.4
功能仿真与时序仿真
第一种电路
功能仿真图显示,该电路功能为同步触发器,输出在输入变化的下一个clock上升沿同步变化。
时序仿真图显示,相对功能仿真,时序仿真的输出并不是刚好对应clock的上升沿,而是延迟了5ns左右。
电路功能分析:该电路使用2级D触发器构成同步触发器,用于将一个异步信号转换为同步信号,当reset信号有效时(高电平)输出清零,仿真输出同步信号。可用于异步信号同步输出,和同步复位。
第二种电路
功能仿真图显示,该电路功能为不带复位功能的同步触发器,输出在输入变化的第二个clock上升沿同步变化,输出相对于第一个电路图延迟了1个clock周期。
时序仿真图显示,时序仿真的输出并不是刚好对应clock的上升沿,而是延迟了5ns左右,这是因为时序仿真是添加了器件内部的实际电路延迟。
电路功能分析:该电路第一个触发器以异步输入Asynch_in作为时钟,VCC作为触发器输入,复位信号内部生成,后两个触发器为不带复位功能的同步D触发器。当Asynch_in为高电平时,系统输出高电平;低当Asynch_in为低电平时输出为低,通过后两个D触发器后返回第一个的复位信号,使第一个触发器复位。可用于不带复位功能的异步信号同步,且同步信号延迟2个时钟周期。
第三种电路
功能仿真图显示,该电路功能为带复位功能的同步触发器,输出在输入变化的第二个clock上升沿同步变化,输出相对于第一个电路图延迟了1个clock周期。当复位信号有效时(高电平)输出保持为0,不随输入变化。
时序仿真图显示,时序仿真的输出并不是刚好对应clock的上升沿,而是延迟了5ns左右,这是因为时序仿真是添加了器件内部的实际电路延迟。
电路功能分析:该电路第一个触发器以异步输入Asynch_in作为时钟,VCC作为触发器输入,复位信号是内部生成和外部输入reset信号的或,该电路相对于上一个电路增加了复位功能。可用于带复位功能的异步信号同步,且同步信号延迟2个时钟周期。
部分代码展示
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2019/04/01 20:31:39
// Design Name:
// Module Name: Synchron_1
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module Synchron_1(
input Asynch_in,
input clock,
input reset,
output reg Synch_out
);
reg Q=0;
always@(posedge clock or posedge reset)
if(reset)
Q<=0;
else
Q<=Asynch_in;
always@(posedge clock or posedge reset)
if(reset)
Synch_out<=0;
else
Synch_out<=Q;
endmodule