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

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

?? generic_dpram.v

?? USB_I2C_MAC_FPGA_Code.rar
?? V
字號:

//synopsys translate_off
`include "timescale.v"
//synopsys translate_on

`define VENDOR_FPGA
//`define VENDOR_XILINX
//`define VENDOR_ALTERA

module 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:
	// 'synthesis syn_ramstyle="block_ram"' is a Synplify attribute.
	// It instructs Synplify to map to BlockRAMs instead of the default SelectRAMs

	reg [dw-1:0] mem [(1<<aw) -1:0] /* synthesis syn_ramstyle="block_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_FPGA

endmodule

//
// 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在线你懂得| 久久精品免费看| 欧美成人aa大片| 免费在线成人网| 国产精品1区二区.| 在线观看视频91| 欧美三电影在线| 在线观看一区不卡| 色综合天天综合网天天狠天天 | 日韩伦理免费电影| 日韩欧美你懂的| 国产精品1区2区| 综合网在线视频| 国产精品亚洲一区二区三区妖精| 日日夜夜免费精品视频| 亚洲天堂福利av| 精品国产电影一区二区| 精品女同一区二区| 国产精品成人一区二区三区夜夜夜| 日韩欧美一级片| 91美女蜜桃在线| 欧美日韩久久久| 亚洲一区二区在线观看视频 | 亚洲精品日日夜夜| 免费成人结看片| 色噜噜狠狠一区二区三区果冻| 久久99久久久欧美国产| 奇米综合一区二区三区精品视频| 91行情网站电视在线观看高清版| 色八戒一区二区三区| 欧美一区二区福利在线| 国产精品白丝jk黑袜喷水| 久久久久久97三级| 亚洲图片欧美一区| 免费精品视频最新在线| 青青草97国产精品免费观看| 欧美激情一区三区| 欧美日韩在线观看一区二区| 91精品久久久久久蜜臀| 91福利视频久久久久| 国内欧美视频一区二区| 国产女人aaa级久久久级| 91麻豆精品91久久久久同性| 欧美一区二区三区婷婷月色| 亚洲一区二区成人在线观看| www.日韩大片| 午夜不卡在线视频| 亚洲精品一区二区三区福利 | 欧美日韩在线观看一区二区| 欧美猛男男办公室激情| 亚洲天堂免费看| 日韩视频在线一区二区| 久久99精品国产91久久来源| 欧美一级高清片在线观看| 久久99久久99| 欧美日本一区二区三区四区| 一区二区久久久| 久久综合久久综合久久综合| 99视频精品免费视频| 国产精品一线二线三线| 亚洲免费在线看| 91精品国产综合久久精品app| 免费成人在线影院| 亚洲天堂av老司机| 国产精品美女久久福利网站| 在线日韩av片| 91在线精品一区二区| 石原莉奈在线亚洲二区| 亚洲一区在线播放| 亚洲主播在线观看| 国产精品欧美一区二区三区| 欧美大片顶级少妇| 久久免费国产精品| 国产日韩欧美亚洲| 久久久美女艺术照精彩视频福利播放| 欧美日韩精品久久久| 欧美日本在线播放| 日韩一区二区三| 久久久综合九色合综国产精品| 国产精品污网站| 午夜欧美视频在线观看| 国产毛片一区二区| 99久久久久久| 亚洲精品一区二区三区在线观看| 国产农村妇女精品| 国产精品久久免费看| 亚洲午夜久久久久久久久久久 | 欧美日本一道本在线视频| 日韩一二三四区| 综合久久国产九一剧情麻豆| 久久精品国产99国产精品| 美日韩一区二区| 99国产一区二区三精品乱码| 色94色欧美sute亚洲线路一久| 97精品国产露脸对白| 欧美在线视频你懂得| 国产精品入口麻豆原神| 夜夜嗨av一区二区三区中文字幕| 国产精品色一区二区三区| 天天综合网天天综合色| 欧美一区2区视频在线观看| 中文字幕中文字幕中文字幕亚洲无线| 蜜桃视频在线一区| 日韩一区二区免费电影| 日韩高清在线电影| 欧美mv日韩mv亚洲| 国产一区啦啦啦在线观看| 3d成人动漫网站| 日韩电影免费一区| 欧美一区二区三区在线电影| 一区二区视频在线| 成人蜜臀av电影| 国产拍欧美日韩视频二区| 久久精品国产精品亚洲综合| 欧美一级精品在线| 亚洲va欧美va人人爽午夜| 日韩欧美一二三区| 国产成人综合精品三级| 亚洲一二三区在线观看| 在线观看日韩电影| 亚洲国产aⅴ成人精品无吗| 色综合久久久久网| 国产精品久久一级| 91.xcao| 粉嫩蜜臀av国产精品网站| 日韩精品亚洲一区二区三区免费| 国产三级精品三级| 欧美网站大全在线观看| 亚洲成人精品一区二区| 欧美一区二区三区四区久久| 国产永久精品大片wwwapp| 亚洲欧美在线观看| 精品国产免费人成电影在线观看四季| 精品午夜一区二区三区在线观看| www精品美女久久久tv| 欧美日韩免费不卡视频一区二区三区| 久久国产剧场电影| 日韩二区三区在线观看| 夜夜精品视频一区二区| 国产精品二三区| 久久久国产精品麻豆| 日韩欧美一级二级| 欧美天天综合网| 91国在线观看| 欧美中文字幕久久| 欧美亚洲综合色| 不卡高清视频专区| 国产老妇另类xxxxx| 日韩国产高清在线| 久久国产欧美日韩精品| 日日噜噜夜夜狠狠视频欧美人 | 岛国一区二区在线观看| 狠狠色丁香婷婷综合| 美脚の诱脚舐め脚责91| 日本视频一区二区三区| 久久99精品久久久久婷婷| 国产精品白丝jk白祙喷水网站| 麻豆精品久久久| 国产99久久精品| 欧美日韩国产高清一区二区| 91精品国产美女浴室洗澡无遮挡| 精品少妇一区二区三区在线视频| 欧美va亚洲va香蕉在线| 久久综合五月天婷婷伊人| 日韩理论片网站| 免费成人在线影院| 99国产精品一区| 久久久www成人免费无遮挡大片| 成人欧美一区二区三区小说| 亚洲成av人片观看| 色婷婷久久久综合中文字幕| 精品国产一二三| 一级中文字幕一区二区| 夫妻av一区二区| 5月丁香婷婷综合| 亚洲一卡二卡三卡四卡五卡| 国产福利一区二区三区视频在线| 欧美日韩一级大片网址| 国产三级精品三级在线专区| 蜜臀av亚洲一区中文字幕| 欧美日韩亚洲丝袜制服| 污片在线观看一区二区| 欧美色综合网站| 亚洲精品国产a久久久久久| 激情深爱一区二区| 日韩精品一区二| 国产精品小仙女| 国产精品美女久久久久久久久久久 | 99久久夜色精品国产网站| 国产精品天干天干在观线| 粉嫩aⅴ一区二区三区四区五区|