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

📄 fifowrclkram.v

📁 任意时钟配比的异步fifo.含有synplify ip库中的双端口ram。用于处理多时钟域问题。
💻 V
字号:
 

 // Output ports are always registered to ensure Rams get packed into BlockRAM
 `define synthesis


//`timescale 1ns/100ps
 `ifdef synthesis 
     module fifowrclkram 
 `else 
     module fifowrclkram_rtl
 `endif 
(
	 PortAClk
	,PortAAddr
	,PortADataIn
	,PortAWriteEnable


	,PortBClk
	,PortBAddr


	,PortBDataOut


	);


  parameter	 DATAWIDTH = 16;
  parameter	 ADDRWIDTH = 8; 
  parameter	 MEMDEPTH = 2**(ADDRWIDTH);


  parameter 	 SPRAM				= 0;
  parameter 	 READ_MODE_A			= 1;
  parameter	 READ_WRITE_A			= 3;
  parameter	 ENABLE_WR_PORTA	 	= 1; 


  parameter	 REGISTER_RD_ADDR_PORTA 	= 0; 


  parameter	 REGISTER_OUTPUT_PORTA 		= 0; 
  parameter	 ENABLE_OUTPUT_REG_PORTA 	= 0; 
  parameter	 RESET_OUTPUT_REG_PORTA 	= 0; 


  parameter 	 READ_MODE_B			= 1;
  parameter	 READ_WRITE_B			= 2;
  parameter	 ENABLE_WR_PORTB	 	= 0; 


  parameter	 REGISTER_RD_ADDR_PORTB 	= 0; 


  parameter	 REGISTER_OUTPUT_PORTB 		= 1; 
  parameter	 ENABLE_OUTPUT_REG_PORTB 	= 0; 
  parameter	 RESET_OUTPUT_REG_PORTB 	= 0; 



  input 				PortAClk; 
  input  [ADDRWIDTH-1:0] 		PortAAddr;
  input  [DATAWIDTH-1:0] 		PortADataIn; 
  input 				PortAWriteEnable;


  input 				PortBClk; 
  input  [ADDRWIDTH-1:0] 		PortBAddr;


  output [DATAWIDTH-1:0] 		PortBDataOut;



  wire 				PortAClk;
  wire  [ADDRWIDTH-1:0] 		PortAAddr;
  wire  [DATAWIDTH-1:0] 		PortADataIn;


  wire [DATAWIDTH-1:0] 		PortADataOut;


  wire 				PortAWriteEnable;
  wire 				PortAReadEnable;
  wire 				PortAReset;


  wire 				PortBClk;
  wire  [DATAWIDTH-1:0] 		PortBDataIn;
  wire 				PortBWriteEnable;
  wire  [ADDRWIDTH-1:0] 		PortBAddr;


  wire [DATAWIDTH-1:0] 		PortBDataOut;


  wire 				PortBReadEnable;
  wire 				PortBReset;



 Syncore_ram
 #(	
				.SPRAM(SPRAM)
				,.READ_MODE_A(READ_MODE_A)
				,.READ_MODE_B(READ_MODE_B)
				,.READ_WRITE_A(READ_WRITE_A)
				,.READ_WRITE_B(READ_WRITE_B)
				,.DATAWIDTH(DATAWIDTH)
				,.ADDRWIDTH(ADDRWIDTH)
				,.ENABLE_WR_PORTA(ENABLE_WR_PORTA)
				,.REGISTER_RD_ADDR_PORTA(REGISTER_RD_ADDR_PORTA)
				,.REGISTER_OUTPUT_PORTA(REGISTER_OUTPUT_PORTA)
				,.ENABLE_OUTPUT_REG_PORTA(ENABLE_OUTPUT_REG_PORTA)
				,.RESET_OUTPUT_REG_PORTA(RESET_OUTPUT_REG_PORTA)
				,.ENABLE_WR_PORTB(ENABLE_WR_PORTB)
				,.REGISTER_RD_ADDR_PORTB(REGISTER_RD_ADDR_PORTB)
				,.REGISTER_OUTPUT_PORTB(REGISTER_OUTPUT_PORTB)
				,.ENABLE_OUTPUT_REG_PORTB(ENABLE_OUTPUT_REG_PORTB)
				,.RESET_OUTPUT_REG_PORTB(RESET_OUTPUT_REG_PORTB)	
				) 
			U1(
				.PortClk({PortBClk, PortAClk})
				,.PortReset({PortBReset, PortAReset})
				,.PortWriteEnable({PortBWriteEnable, PortAWriteEnable})
				,.PortReadEnable({PortBReadEnable, PortAReadEnable})
				,.PortDataIn({PortBDataIn, PortADataIn})
				,.PortAddr({PortBAddr, PortAAddr})
				,.PortDataOut({PortBDataOut, PortADataOut})
				); 
endmodule

⌨️ 快捷键说明

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