⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pci_sync_module.v

📁 这是用pci-wishbone核和16450串口核在xilinx的fpga上实现的串口程序
💻 V
字号:
//////////////////////////////////////////////////////////////////////////                                                              ////////  File name "sync_module.v"                                   ////////                                                              ////////  This file is part of the "PCI bridge" project               ////////  http://www.opencores.org/cores/pci/                         ////////                                                              ////////  Author(s):                                                  ////////      - Tadej Markovic, tadej@opencores.org                   ////////                                                              ////////  All additional information is avaliable in the README.txt   ////////  file.                                                       ////////                                                              ////////                                                              //////////////////////////////////////////////////////////////////////////////                                                              //////// Copyright (C) 2000 Tadej Markovic, tadej@opencores.org       ////////                                                              //////// This source file may be used and distributed without         //////// restriction provided that this copyright statement is not    //////// removed from the file and that any derivative work contains  //////// the original copyright notice and the associated disclaimer. ////////                                                              //////// This source file is free software; you can redistribute it   //////// and/or modify it under the terms of the GNU Lesser General   //////// Public License as published by the Free Software Foundation; //////// either version 2.1 of the License, or (at your option) any   //////// later version.                                               ////////                                                              //////// This source is distributed in the hope that it will be       //////// useful, but WITHOUT ANY WARRANTY; without even the implied   //////// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //////// PURPOSE.  See the GNU Lesser General Public License for more //////// details.                                                     ////////                                                              //////// You should have received a copy of the GNU Lesser General    //////// Public License along with this source; if not, download it   //////// from http://www.opencores.org/lgpl.shtml                     ////////                                                              ////////////////////////////////////////////////////////////////////////////// CVS Revision History//// $Log: pci_sync_module.v,v $// Revision 1.3  2003/08/14 13:06:03  simons// synchronizer_flop replaced with pci_synchronizer_flop, artisan ram instance updated.//// Revision 1.2  2003/03/26 13:16:18  mihad// Added the reset value parameter to the synchronizer flop module.// Added resets to all synchronizer flop instances.// Repaired initial sync value in fifos.//// Revision 1.1  2003/01/27 16:49:31  mihad// Changed module and file names. Updated scripts accordingly. FIFO synchronizations changed.//// Revision 1.1  2002/02/01 14:43:31  mihad// *** empty log message ***//////// synopsys translate_off`include "timescale.v"// synopsys translate_onmodule pci_sync_module(					set_clk_in,					delete_clk_in,					reset_in,					delete_set_out,					block_set_out,					delete_in);// system inputs from two clock domainsinput	set_clk_in;input	delete_clk_in;input	reset_in;// control outputsoutput	delete_set_out;output	block_set_out;// control inputinput	delete_in;// internal signalsreg		del_bit;wire	meta_del_bit;reg		sync_del_bit;reg		delayed_del_bit;wire	meta_bckp_bit;reg		sync_bckp_bit;reg		delayed_bckp_bit;// DELETE_IN input FF - when set must be active, until it is sinchronously clearedalways@(posedge delete_clk_in or posedge reset_in)begin	if (reset_in)		del_bit <= 1'b0;	else	begin		if (!delayed_bckp_bit && sync_bckp_bit)			del_bit <= 1'b0;		else if (delete_in)			del_bit <= 1'b1;	endendassign	block_set_out = del_bit;// interemediate stage to clk synchronization flip - flops - this ones are prone to metastabilitypci_synchronizer_flop	#(1, 0) delete_sync(    .data_in        (del_bit),    .clk_out        (set_clk_in),    .sync_data_out  (meta_del_bit),    .async_reset    (reset_in)) ;// Final synchronization of del_bit signal to the set clock domainalways@(posedge set_clk_in or posedge reset_in)begin	if (reset_in)		sync_del_bit <= 1'b0;	else		sync_del_bit <= meta_del_bit;end// Delayed sync_del_bit signal for one clock period pulse generationalways@(posedge set_clk_in or posedge reset_in)begin	if (reset_in)		delayed_del_bit <= 1'b0;	else		delayed_del_bit <= sync_del_bit;endassign	delete_set_out = !delayed_del_bit && sync_del_bit;// interemediate stage to clk synchronization flip - flops - this ones are prone to metastabilitypci_synchronizer_flop	#(1, 0) clear_delete_sync(    .data_in        (sync_del_bit),    .clk_out        (delete_clk_in),    .sync_data_out  (meta_bckp_bit),    .async_reset    (reset_in)) ;// Final synchronization of sync_del_bit signal to the delete clock domainalways@(posedge delete_clk_in or posedge reset_in)begin	if (reset_in)		sync_bckp_bit <= 1'b0;	else		sync_bckp_bit <= meta_bckp_bit;end// Delayed sync_bckp_bit signal for one clock period pulse generationalways@(posedge delete_clk_in or posedge reset_in)begin	if (reset_in)		delayed_bckp_bit <= 1'b0;	else		delayed_bckp_bit <= sync_bckp_bit;endendmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -