亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? generic_dpram.v

?? 基于FPGA的JPEG圖像壓縮芯片設計
?? V
字號:
//////////////////////////////////////////////////////////////////////////                                                              ////////  Generic Dual-Port Synchronous RAM                           ////////                                                              ////////  This file is part of memory library available from          ////////  http://www.opencores.org/cvsweb.shtml/generic_memories/     ////////                                                              ////////  Description                                                 ////////  This block is a wrapper with common dual-port               ////////  synchronous memory interface for different                  ////////  types of ASIC and FPGA RAMs. Beside universal memory        ////////  interface it also provides behavioral model of generic      ////////  dual-port synchronous RAM.                                  ////////  It also contains a fully synthesizeable model for FPGAs.    ////////  It should be used in all OPENCORES designs that want to be  ////////  portable accross different target technologies and          ////////  independent of target memory.                               ////////                                                              ////////  Supported ASIC RAMs are:                                    ////////  - Artisan Dual-Port Sync RAM                                ////////  - Avant! Two-Port Sync RAM (*)                              ////////  - Virage 2-port Sync RAM                                    ////////                                                              ////////  Supported FPGA RAMs are:                                    ////////  - Generic FPGA (VENDOR_FPGA)                                ////////    Tested RAMs: Altera, Xilinx                               ////////    Synthesis tools: LeonardoSpectrum, Synplicity             ////////  - Xilinx (VENDOR_XILINX)                                    ////////  - Altera (VENDOR_ALTERA)                                    ////////                                                              ////////  To Do:                                                      ////////   - fix Avant!                                               ////////   - add additional RAMs (VS etc)                             ////////                                                              ////////  Author(s):                                                  ////////      - Richard Herveille, richard@asics.ws                   ////////      - Damjan Lampret, lampret@opencores.org                 ////////                                                              //////////////////////////////////////////////////////////////////////////////                                                              //////// Copyright (C) 2000 Authors and 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: generic_dpram.v,v $// Revision 1.1  2002/10/29 20:05:40  rherveille// Initial release Huffman Encoder/Decoder testbench//// Revision 1.4  2002/09/28 08:18:52  rherveille// Changed synthesizeable FPGA memory implementation.// Fixed some issues with Xilinx BlockRAM//// Revision 1.3  2001/11/09 00:34:18  samg// minor changes: unified with all common rams//// Revision 1.2  2001/11/08 19:11:31  samg// added valid checks to behvioral model//// Revision 1.1.1.1  2001/09/14 09:57:10  rherveille// Major cleanup.// Files are now compliant to Altera & Xilinx memories.// Memories are now compatible, i.e. drop-in replacements.// Added synthesizeable generic FPGA description.// Created "generic_memories" cvs entry.//// Revision 1.1.1.2  2001/08/21 13:09:27  damjan// *** empty log message ***//// Revision 1.1  2001/08/20 18:23:20  damjan// Initial revision//// Revision 1.1  2001/08/09 13:39:33  lampret// Major clean-up.//// Revision 1.2  2001/07/30 05:38:02  lampret// Adding empty directories required by HDL coding guidelines//////`include "timescale.v"`define VENDOR_FPGA//`define VENDOR_XILINX//`define VENDOR_ALTERAmodule generic_dpram(	// Generic synchronous dual-port RAM interface	rclk, rrst, rce, oe, raddr, do,	wclk, wrst, wce, we, waddr, di);	//	// Default address and data buses width	//	parameter aw = 5;  // number of bits in address-bus	parameter dw = 16; // number of bits in data-bus	//	// Generic synchronous double-port RAM interface	//	// read port	input           rclk;  // read clock, rising edge trigger	input           rrst;  // read port reset, active high	input           rce;   // read port chip enable, active high	input           oe;	   // output enable, active high	input  [aw-1:0] raddr; // read address	output [dw-1:0] do;    // data output	// write port	input          wclk;  // write clock, rising edge trigger	input          wrst;  // write port reset, active high	input          wce;   // write port chip enable, active high	input          we;    // write enable, active high	input [aw-1:0] waddr; // write address	input [dw-1:0] di;    // data input	//	// Module body	//`ifdef VENDOR_FPGA	//	// Instantiation synthesizeable FPGA memory	//	// This code has been tested using LeonardoSpectrum and Synplicity.	// The code correctly instantiates Altera EABs and Xilinx BlockRAMs.	//	// NOTE:	// 'syn_ramstyle="block_ram"' is a Synplify attribute.	// It instructs Synplify to map to BlockRAMs instead of the default SelectRAMs	// Altera: "block_ram" only	// Xilinx: "block_ram" Virtex/Virtex-E (and spartan series) dedicated BlockRAMs	//         "no_rw_check" avoid generating additional glue logic for dual-port rams	//         "select_ram" use distributed memory	//	// "no_rw_check": For Xilinx devices reading and writing to the same address might	// yield incorrectread data. Use "no_rw_check" when you register the outputs, or when	// you don't care about a read/write check	// TODO: Insert Verilog 2001 code to automatically select the implementation style//	reg [dw-1:0] mem [(1<<aw) -1:0] /* synthesis syn_ramstyle="block_ram" */;	reg [dw-1:0] mem [(1<<aw) -1:0] /* synthesis syn_ramstyle="no_rw_check" */;//	reg [dw-1:0] mem [(1<<aw) -1:0] /* synthesis syn_ramstyle="select_ram" */;	reg [aw-1:0] ra;                // register read address	// read operation	always @(posedge rclk)	  if (rce)	    ra <= #1 raddr;	assign do = mem[ra];	// write operation	always @(posedge wclk)	  if (we && wce)	    mem[waddr] <= #1 di;`else`ifdef VENDOR_XILINX	//	// Instantiation of FPGA memory:	//	// Virtex/Spartan2 BlockRAMs	//	xilinx_ram_dp xilinx_ram(		// read port		.CLKA(rclk),		.RSTA(rrst),		.ENA(rce),		.ADDRA(raddr),		.DIA( {dw{1'b0}} ),		.WEA(1'b0),		.DOA(do),		// write port		.CLKB(wclk),		.RSTB(wrst),		.ENB(wce),		.ADDRB(waddr),		.DIB(di),		.WEB(we),		.DOB()	);	defparam		xilinx_ram.dwidth = dw,		xilinx_ram.awidth = aw;`else`ifdef VENDOR_ALTERA	//	// Instantiation of FPGA memory:	//	// Altera FLEX/APEX EABs	//	altera_ram_dp altera_ram(		// read port		.rdclock(rclk),		.rdclocken(rce),		.rdaddress(raddr),		.q(do),		// write port		.wrclock(wclk),		.wrclocken(wce),		.wren(we),		.wraddress(waddr),		.data(di)	);	defparam		altera_ram.dwidth = dw,		altera_ram.awidth = aw;`else`ifdef VENDOR_ARTISAN	//	// Instantiation of ASIC memory:	//	// Artisan Synchronous Double-Port RAM (ra2sh)	//	art_hsdp #(dw, 1<<aw, aw) artisan_sdp(		// read port		.qa(do),		.clka(rclk),		.cena(~rce),		.wena(1'b1),		.aa(raddr),		.da( {dw{1'b0}} ),		.oena(~oe),		// write port		.qb(),		.clkb(wclk),		.cenb(~wce),		.wenb(~we),		.ab(waddr),		.db(di),		.oenb(1'b1)	);`else`ifdef VENDOR_AVANT	//	// Instantiation of ASIC memory:	//	// Avant! Asynchronous Two-Port RAM	//	avant_atp avant_atp(		.web(~we),		.reb(),		.oeb(~oe),		.rcsb(),		.wcsb(),		.ra(raddr),		.wa(waddr),		.di(di),		.do(do)	);`else`ifdef VENDOR_VIRAGE	//	// Instantiation of ASIC memory:	//	// Virage Synchronous 2-port R/W RAM	//	virage_stp virage_stp(		// read port		.CLKA(rclk),		.MEA(rce_a),		.ADRA(raddr),		.DA( {dw{1'b0}} ),		.WEA(1'b0),		.OEA(oe),		.QA(do),		// write port		.CLKB(wclk),		.MEB(wce),		.ADRB(waddr),		.DB(di),		.WEB(we),		.OEB(1'b1),		.QB()	);`else	//	// Generic dual-port synchronous RAM model	//	//	// Generic RAM's registers and wires	//	reg	[dw-1:0]	mem [(1<<aw)-1:0]; // RAM content	reg	[dw-1:0]	do_reg;            // RAM data output register	//	// Data output drivers	//	assign do = (oe & rce) ? do_reg : {dw{1'bz}};	// read operation	always @(posedge rclk)		if (rce)          		do_reg <= #1 (we && (waddr==raddr)) ? {dw{1'b x}} : mem[raddr];	// write operation	always @(posedge wclk)		if (wce && we)			mem[waddr] <= #1 di;	// Task prints range of memory	// *** Remember that tasks are non reentrant, don't call this task in parallel for multiple instantiations.	task print_ram;	input [aw-1:0] start;	input [aw-1:0] finish;	integer rnum;  	begin    		for (rnum=start;rnum<=finish;rnum=rnum+1)      			$display("Addr %h = %h",rnum,mem[rnum]);  	end	endtask`endif // !VENDOR_VIRAGE`endif // !VENDOR_AVANT`endif // !VENDOR_ARTISAN`endif // !VENDOR_ALTERA`endif // !VENDOR_XILINX`endif // !VENDOR_FPGAendmodule//// Black-box modules//`ifdef VENDOR_ALTERA	module altera_ram_dp(		data,		wraddress,		rdaddress,		wren,		wrclock,		wrclocken,		rdclock,		rdclocken,		q) /* synthesis black_box */;		parameter awidth = 7;		parameter dwidth = 8;		input [dwidth -1:0] data;		input [awidth -1:0] wraddress;		input [awidth -1:0] rdaddress;		input               wren;		input               wrclock;		input               wrclocken;		input               rdclock;		input               rdclocken;		output [dwidth -1:0] q;		// synopsis translate_off		// exemplar translate_off		syn_dpram_rowr #(			"UNUSED",			dwidth,			awidth,			1 << awidth		)		altera_dpram_model (			// read port			.RdClock(rdclock),			.RdClken(rdclocken),			.RdAddress(rdaddress),			.RdEn(1'b1),			.Q(q),			// write port			.WrClock(wrclock),			.WrClken(wrclocken),			.WrAddress(wraddress),			.WrEn(wren),			.Data(data)		);		// exemplar translate_on		// synopsis translate_on	endmodule`endif // VENDOR_ALTERA`ifdef VENDOR_XILINX	module xilinx_ram_dp (		ADDRA,		CLKA,		ADDRB,		CLKB,		DIA,		WEA,		DIB,		WEB,		ENA,		ENB,		RSTA,		RSTB,		DOA,		DOB) /* synthesis black_box */ ;	parameter awidth = 7;	parameter dwidth = 8;	// port_a	input               CLKA;	input               RSTA;	input               ENA;	input [awidth-1:0]  ADDRA;	input [dwidth-1:0]  DIA;	input               WEA;	output [dwidth-1:0] DOA;	// port_b	input               CLKB;	input               RSTB;	input               ENB;	input [awidth-1:0]  ADDRB;	input [dwidth-1:0]  DIB;	input               WEB;	output [dwidth-1:0] DOB;	// insert simulation model	// synopsys translate_off	// exemplar translate_off	C_MEM_DP_BLOCK_V1_0 #(		awidth,		awidth,		1,		1,		"0",		1 << awidth,		1 << awidth,		1,		1,		1,		1,		1,		1,		1,		1,		1,		1,		1,		1,		1,		"",		16,		0,		0,		1,		1,		1,		1,		dwidth,		dwidth)	xilinx_dpram_model (		.ADDRA(ADDRA),		.CLKA(CLKA),		.ADDRB(ADDRB),		.CLKB(CLKB),		.DIA(DIA),		.WEA(WEA),		.DIB(DIB),		.WEB(WEB),		.ENA(ENA),		.ENB(ENB),		.RSTA(RSTA),		.RSTB(RSTB),		.DOA(DOA),		.DOB(DOB));		// exemplar translate_on		// synopsys translate_on	endmodule`endif // VENDOR_XILINX

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91官网在线免费观看| 亚洲国产欧美一区二区三区丁香婷| 视频一区二区欧美| 88在线观看91蜜桃国自产| 日本中文字幕一区二区视频 | 欧美日韩一区国产| 亚洲一区在线观看网站| 欧美性受xxxx黑人xyx| 亚洲不卡在线观看| 欧美成人一级视频| 国产激情一区二区三区四区 | 亚洲一区二区欧美激情| 欧美三区在线视频| 六月婷婷色综合| 国产欧美日韩综合| 欧美亚洲一区二区在线| 视频在线观看一区| 国产午夜精品一区二区三区视频| 成人精品一区二区三区四区| 亚洲欧美另类图片小说| 91精品久久久久久久91蜜桃| 国产成人综合自拍| 洋洋av久久久久久久一区| 欧美一级在线观看| 懂色av中文一区二区三区| 亚洲国产精品久久艾草纯爱| 精品日韩在线观看| 一本到三区不卡视频| 日本三级韩国三级欧美三级| 国产精品免费久久| 欧美一区二区在线免费观看| 国产白丝网站精品污在线入口| 一区二区三区在线看| 久久综合久久99| 欧美做爰猛烈大尺度电影无法无天| 美女精品自拍一二三四| 国产精品激情偷乱一区二区∴| 欧美区一区二区三区| 成人免费毛片片v| 六月丁香婷婷色狠狠久久| 一区二区三区视频在线观看| xfplay精品久久| 久久蜜臀精品av| 在线视频观看一区| 日本在线不卡视频| 欧美在线一二三| 精品一区二区免费在线观看| 亚洲色图一区二区| 久久网站热最新地址| 在线亚洲欧美专区二区| 高清不卡一区二区在线| 琪琪久久久久日韩精品| 亚洲人精品午夜| 国产精品高潮呻吟| 欧美精品一区二区三| 91精品国产综合久久久久久漫画| 成人国产精品免费观看动漫| 极品少妇xxxx精品少妇偷拍| 日韩福利视频网| 亚洲aⅴ怡春院| 一区二区激情小说| 亚洲欧洲综合另类| 综合激情网...| 国产精品久久久久久福利一牛影视| 日韩美一区二区三区| 日韩欧美国产三级电影视频| 在线精品视频免费观看| 国产嫩草影院久久久久| 九九在线精品视频| 国产精品久久久久久久久免费丝袜 | 裸体健美xxxx欧美裸体表演| 亚洲一区二区三区激情| 一区二区三区波多野结衣在线观看 | 亚洲色图欧美偷拍| 中文字幕日韩欧美一区二区三区| 国产亚洲精久久久久久| 久久久国产一区二区三区四区小说| 欧美成人猛片aaaaaaa| 91精品国产综合久久福利软件| 在线不卡中文字幕| 欧美精品日韩综合在线| 成人av资源网站| 欧美性猛交一区二区三区精品 | 中文字幕二三区不卡| 欧美大片在线观看一区| 日韩精品一区二区在线| 26uuu色噜噜精品一区二区| 欧美va在线播放| 精品国产人成亚洲区| 亚洲精品一区二区三区四区高清| 欧美大片在线观看一区二区| 久久亚洲综合色| 国产欧美日本一区二区三区| 午夜精品久久久久久| 亚洲成人在线免费| 日本少妇一区二区| 国产美女娇喘av呻吟久久| 国产福利精品导航| 99久久久无码国产精品| 欧美在线免费播放| 日韩欧美成人一区| 国产日韩欧美一区二区三区乱码| 国产精品久久夜| 香蕉av福利精品导航| 久久99精品网久久| www.在线欧美| 日本一区二区三区在线不卡| 国产精品免费看片| 国产欧美一区二区三区在线看蜜臀 | 亚洲欧洲另类国产综合| 亚洲线精品一区二区三区八戒| 偷窥少妇高潮呻吟av久久免费| 精品午夜久久福利影院| 99re66热这里只有精品3直播| 欧美视频在线一区| 久久伊人中文字幕| 亚洲老司机在线| 美女脱光内衣内裤视频久久影院| 国产激情精品久久久第一区二区| 99国产欧美另类久久久精品| 9191国产精品| 成人欧美一区二区三区黑人麻豆 | 日韩电影免费一区| 成人av午夜影院| 日韩欧美国产wwwww| 亚洲色图欧洲色图婷婷| 久久精品国产第一区二区三区| 波多野结衣亚洲| 欧美另类videos死尸| 欧美国产一区二区在线观看| 午夜电影网一区| eeuss影院一区二区三区| 日韩一级二级三级| 亚洲精品日日夜夜| 国产99久久久国产精品潘金| 在线播放日韩导航| 亚洲色欲色欲www| 国产精品一二三四| 欧美高清性hdvideosex| 亚洲欧洲三级电影| 国产成人在线视频网站| 欧美一区三区二区| 亚洲成精国产精品女| av中文字幕一区| 久久久久国产成人精品亚洲午夜| 亚洲国产另类av| 日本韩国一区二区三区视频| 国产精品每日更新| 国产一区二区不卡老阿姨| 国产欧美综合在线观看第十页| 日韩精品免费专区| 91九色最新地址| 国产精品美女久久久久aⅴ国产馆| 狠狠色丁香九九婷婷综合五月| 777奇米四色成人影色区| 亚洲综合av网| 色哟哟亚洲精品| 亚洲欧洲中文日韩久久av乱码| 成人教育av在线| 国产精品国产三级国产有无不卡| 国产成人在线视频网站| 国产性天天综合网| 国产精品99久久不卡二区| 欧美变态口味重另类| 免费美女久久99| 欧美变态tickle挠乳网站| 天天综合网天天综合色| 欧美日韩国产美女| 亚洲va国产天堂va久久en| 欧美日韩免费高清一区色橹橹 | 中文字幕中文乱码欧美一区二区| 国内精品嫩模私拍在线| 精品成人在线观看| 国产呦精品一区二区三区网站| 精品国产网站在线观看| 国产剧情一区在线| 国产视频一区不卡| 成人免费av网站| 亚洲乱码日产精品bd| 色8久久精品久久久久久蜜| 亚洲夂夂婷婷色拍ww47| 欧美日韩国产另类不卡| 全国精品久久少妇| 日韩视频免费观看高清在线视频| 国内精品视频666| 中文字幕乱码一区二区免费| 99久久婷婷国产综合精品| 夜夜嗨av一区二区三区| 91精品国产综合久久福利软件 | 中文字幕精品综合| 成年人午夜久久久| 极品少妇xxxx精品少妇偷拍| 久久众筹精品私拍模特| 成人久久久精品乱码一区二区三区| 亚洲日本护士毛茸茸| 91福利国产精品| 蜜臀av国产精品久久久久| 国产精品亲子乱子伦xxxx裸| 欧美性xxxxxx少妇| 国产一区二区三区在线看麻豆|