三种同步器电路设计Verilog代码VIVADO仿真

名称:三种同步器电路设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

采用行为描述风格完成如下三种同步器电路的设计功能仿真与时序仿真验证。提交电子版的设计代码和仿真结果,分析功能与时序仿真的差异,并根据仿真结果对电路的功能特点、使用条件等尽量详细地作出分析讨论。要求.jpg

要求2.jpg要求3.jpg要求4.jpg

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

三种同步器设计及仿真.doc

设计工具:Vivado 2015.4

仿真工具:Vivado 2015.4

功能仿真

时序仿真

程序代码

Testbench

程序编译生成RTL图

功能仿真图

根据功能仿真图,可以看出,该电路功能为同步触发器,输出在输入变化的下一个clock上升沿同步变化。

时序仿真

根据时序仿真图,可以看出,相对功能仿真,时序仿真的输出并不是刚好对应clock的上升沿,而是延迟了5ns左右。

电路功能分析:该电路使用2级D触发器构成同步触发器,用于将一个异步信号转换为同步信号,当reset信号有效时(高电平)输出清零,仿真输出同步信号。可用于异步信号同步输出,和同步复位。


程序代码

Testbench

程序编译生成RTL图

功能仿真

根据功能仿真图,可以看出,该电路功能为不带复位功能的同步触发器,输出在输入变化的第二个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

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 三种同步器电路设计Verilog代码VIVADO仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员