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

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

?? generic_spram.v

?? 一些比較實用的例子
?? V
字號:

`include "timescale.v"

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

module generic_spram(
	// Generic synchronous single-port RAM interface
	clk, rst, ce, we, oe, addr, di, do
);

	//
	// Default address and data buses width
	//
	parameter aw = 6; //number of address-bits
	parameter dw = 8; //number of data-bits

	//
	// Generic synchronous single-port RAM interface
	//
	input           clk;  // Clock, rising edge
	input           rst;  // Reset, active high
	input           ce;   // Chip enable input, active high
	input           we;   // Write enable input, active high
	input           oe;   // Output enable input, active high
	input  [aw-1:0] addr; // address bus inputs
	input  [dw-1:0] di;   // input data bus
	output [dw-1:0] do;   // output data bus

	//
	// 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;

	// read operation
	always @(posedge clk)
	  if (ce)
	    ra <= #1 addr;     // read address needs to be registered to read clock

	assign #1 do = mem[ra];

	// write operation
	always @(posedge clk)
	  if (we && ce)
	    mem[addr] <= #1 di;
`else

`ifdef VENDOR_XILINX

	wire [dw-1:0] q;  // output from xilinx ram
	//
	// Instantiation of FPGA memory:
	//
	// Virtex/Spartan2 BlockRAMs
	//
	xilinx_ram_sp xilinx_ram(
		.clk(clk),
		.rst(rst),
		.addr(addr),
		.di(di),
		.en(ce),
		.we(we),
		.do(do)
	);

	defparam
		xilinx_ram.dwidth = dw,
		xilinx_ram.awidth = aw;

`else

`ifdef VENDOR_ALTERA

	//
	// Instantiation of FPGA memory:
	//
	// Altera FLEX EABs
	//

	altera_ram_sp altera_ram(
		.inclock(clk),
		.address(addr),
		.data(di),
		.we(we && ce),
		.q(do)
	);

	defparam
		altera_ram.dwidth = dw,
		altera_ram.awidth = aw;

`else

`ifdef VENDOR_ARTISAN

	//
	// Instantiation of ASIC memory:
	//
	// Artisan Synchronous Single-Port RAM (ra1sh)
	//
	artisan_ssp #(dw, 1<<aw, aw) artisan_ssp(
		.CLK(clk),
		.CEN(~ce),
		.WEN(~we),
		.A(addr),
		.D(di),
		.OEN(~oe),
		.Q(do)
	);

`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(addr),
		.wa(addr),
		.di(di),
		.do(do)
	);

`else

`ifdef VENDOR_VIRAGE

	//
	// Instantiation of ASIC memory:
	//
	// Virage Synchronous 1-port R/W RAM
	//
	virage_ssp virage_ssp(
		.clk(clk),
		.adr(addr),
		.d(di),
		.we(we),
		.oe(oe),
		.me(ce),
		.q(do)
	);

`else

`ifdef VENDOR_VIRTUALSILICON

	//
	// Instantiation of ASIC memory:
	//
	// Virtual Silicon Single-Port Synchronous SRAM
	//
	virtualsilicon_spram #(1<<aw, aw-1, dw-1) virtualsilicon_ssp(
		.CK(clk),
		.ADR(addr),
		.DI(di),
		.WEN(~we),
		.CEN(~ce),
		.OEN(~oe),
		.DOUT(do)
	);

`else

	//
	// Generic single-port synchronous RAM model
	//

	//
	// Generic RAM's registers and wires
	//
	reg  [dw-1:0] mem [(1<<aw)-1:0];	// RAM content
	wire [dw-1:0] q;                 // RAM output
	reg  [aw-1:0] raddr;             // RAM read address
	//
	// Data output drivers
	//
	assign do = (oe) ? q : {dw{1'bz}};

	//
	// RAM read and write
	//

	// read operation
	always@(posedge clk)
	if (ce) // && !we)
		raddr <= #1 addr;    // read address needs to be registered to read clock

	assign #1 q = rst ? {dw{1'b0}} : mem[raddr];

	// write operation
	always@(posedge clk)
		if (ce && we)
			mem[addr] <= #1 di;


`endif // !VIRTUALSILICON_SSP
`endif // !VIRAGE_SSP
`endif // !AVANT_ATP
`endif // !ARTISAN_SSP
`endif // !VENDOR_ALTERA
`endif // !VENDOR_XILINX
`endif // !VENDOR_FPGA

endmodule


//
// Black-box modules
//

`ifdef VENDOR_ALTERA
	module altera_ram_sp (
		address,
		inclock,
		we,
		data,
		q) /* synthesis black_box */;

		parameter awidth = 7;
		parameter dwidth = 8;

		input  [awidth -1:0] address;
		input                inclock;
		input                we;
		input  [dwidth -1:0] data;
		output [dwidth -1:0] q;

		// synopsis translate_off
		// exemplar translate_off

		syn_ram_irou #(
			"UNUSED",
			dwidth,
			awidth,
			1 << awidth
		)
		altera_spram_model (
			.Inclock(inclock),
			.Address(address),
			.Data(data),
			.WE(we),
			.Q(q)
		);

		// exemplar translate_on
		// synopsis translate_on

	endmodule
`endif // VENDOR_ALTERA

`ifdef VENDOR_XILINX
	module xilinx_ram_sp (
			clk,
			rst,
			addr,
			di,
			en,
			we,
			do) /* synthesis black_box */ ;

		parameter awidth = 7;
		parameter dwidth = 8;

		input                clk;
		input                rst;
		input  [awidth -1:0] addr;
		input  [dwidth -1:0] di;
		input                en;
		input                we;
		output [dwidth -1:0] do;

		// insert simulation model


		// synopsys translate_off
		// exemplar translate_off

		C_MEM_SP_BLOCK_V1_0 #(
			awidth,
			1,
			"0",
			1 << awidth,
			1,
			1,
			1,
			1,
			1,
			1,
			1,
			"",
			16,
			0,
			0,
			1,
			1,
			dwidth
		)
		xilinx_spram_model (
			.CLK(clk),
			.RST(rst),
			.ADDR(addr),
			.DI(di),
			.EN(en),
			.WE(we),
			.DO(do)
		);

		// exemplar translate_on
		// synopsys translate_on

	endmodule
`endif // VENDOR_XILINX

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜精品久久久久久久久| 精品人在线二区三区| 亚洲人成精品久久久久久| eeuss鲁片一区二区三区在线看| 国产精品色呦呦| 97精品国产97久久久久久久久久久久| 最近中文字幕一区二区三区| 在线观看亚洲a| 午夜成人免费电影| 久久亚洲综合色| 成人高清视频免费观看| 亚洲制服丝袜在线| 日韩欧美国产精品一区| 成人精品在线视频观看| 一区二区三区中文字幕| 日韩一区二区影院| 成人午夜av在线| 视频一区欧美精品| 久久久久久久久99精品| 色综合天天在线| 麻豆国产欧美一区二区三区| 中文字幕不卡的av| 欧美欧美午夜aⅴ在线观看| 激情成人午夜视频| 亚洲黄色免费网站| 精品国产乱码久久久久久牛牛| 成人小视频免费观看| 午夜婷婷国产麻豆精品| 国产亚洲精久久久久久| 911国产精品| 9久草视频在线视频精品| 日本人妖一区二区| 最好看的中文字幕久久| 日韩精品中午字幕| 欧美艳星brazzers| 国产成人av电影在线播放| 亚洲高清久久久| 国产精品美女久久久久久久久久久| 欧美精品aⅴ在线视频| 丁香婷婷综合网| 麻豆精品蜜桃视频网站| 亚洲综合激情小说| 中文字幕在线观看不卡视频| 日韩欧美在线影院| 欧美亚洲动漫精品| 99热99精品| 福利电影一区二区| 免费视频一区二区| 午夜视频久久久久久| 一区精品在线播放| 久久久99精品免费观看| 亚洲精品免费看| 国产精品美女久久久久久久久| 日韩你懂的在线播放| 精品视频在线免费看| 91在线观看下载| 国产成人av一区二区三区在线 | 精品精品国产高清a毛片牛牛| 91色porny蝌蚪| 成人免费看片app下载| 久久99国产精品免费网站| 首页欧美精品中文字幕| 亚洲国产日韩精品| 亚洲精品va在线观看| 国产精品三级在线观看| 久久久久久亚洲综合影院红桃| 欧美一区二区三区男人的天堂| 精品视频全国免费看| 色老综合老女人久久久| 97精品国产97久久久久久久久久久久| 国产成人午夜精品影院观看视频| 激情偷乱视频一区二区三区| 激情都市一区二区| 国产中文一区二区三区| 国产精品18久久久久久久网站| 久久99精品久久久久久久久久久久| 日韩精品1区2区3区| 日本成人中文字幕| 日韩黄色小视频| 欧美aaa在线| 国产一区二区三区精品欧美日韩一区二区三区| 日韩精品一区第一页| 日日夜夜免费精品视频| 视频一区中文字幕国产| 久久国产婷婷国产香蕉| 久久不见久久见免费视频7| 狠狠色丁香婷综合久久| 国产精品1区2区| 99精品视频在线播放观看| 91欧美一区二区| 欧美无人高清视频在线观看| 欧美日本在线视频| 日韩午夜在线观看| 久久精品一区二区三区四区| 国产精品第13页| 一区二区三区鲁丝不卡| 天天操天天综合网| 国产中文字幕一区| 99久久精品国产麻豆演员表| 日本韩国欧美三级| 91精品国产综合久久福利| 久久婷婷久久一区二区三区| 国产免费观看久久| 亚洲黄色av一区| 麻豆91免费看| zzijzzij亚洲日本少妇熟睡| 欧美色视频一区| 2024国产精品| 亚洲精品乱码久久久久久久久| 婷婷国产在线综合| 国产河南妇女毛片精品久久久| 91麻豆文化传媒在线观看| 91精品国模一区二区三区| 国产精品色哟哟网站| 五月激情综合婷婷| 国产a精品视频| 欧美区视频在线观看| 国产精品网友自拍| 性做久久久久久免费观看| 国产精品资源网站| 亚洲欧美在线观看| 日本一不卡视频| 成人av在线播放网址| 91麻豆精品国产91久久久久久久久| 中文字幕av在线一区二区三区| 调教+趴+乳夹+国产+精品| 丁香激情综合五月| 制服丝袜亚洲色图| 国产精品萝li| 国产在线精品一区二区夜色| 欧洲中文字幕精品| 国产精品三级久久久久三级| 久久精工是国产品牌吗| 欧美午夜不卡在线观看免费| 国产精品午夜电影| 韩日av一区二区| 日韩一级片在线播放| 亚洲欧美日韩国产综合在线| 国产一区二区主播在线| 在线91免费看| 亚洲精品成人少妇| 国产91丝袜在线观看| 欧美精品一区二区三区在线| 亚洲国产精品久久人人爱| 91免费版在线看| 国产精品色哟哟网站| 国产精品一二三| 日韩免费高清视频| 男人操女人的视频在线观看欧美| 在线亚洲人成电影网站色www| 国产精品久久久久久妇女6080| 韩日精品视频一区| 26uuu亚洲婷婷狠狠天堂| 日韩高清国产一区在线| 欧美日韩在线一区二区| 亚洲色图.com| 色综合天天综合在线视频| 亚洲欧美综合另类在线卡通| 成人一区二区三区在线观看| 2017欧美狠狠色| 国产精品88888| 国产女主播一区| 成人精品国产一区二区4080| 久久精品夜夜夜夜久久| 国产黑丝在线一区二区三区| 2023国产精品视频| 国产精品亚洲一区二区三区妖精 | 性欧美大战久久久久久久久| 欧美午夜不卡视频| 午夜精品福利视频网站| 欧美日韩国产综合一区二区三区 | 国产精品一二三四| 国产清纯白嫩初高生在线观看91| 国产一区激情在线| 国产视频亚洲色图| www.亚洲精品| 夜夜嗨av一区二区三区网页 | 国产精品视频一二三区| 国产91丝袜在线播放九色| 国产精品青草久久| 91在线观看美女| 亚洲1区2区3区4区| 精品免费一区二区三区| 国产成人免费av在线| 最新日韩av在线| 欧美久久久久久久久中文字幕| 免费看日韩a级影片| 国产女人水真多18毛片18精品视频| 成人激情电影免费在线观看| 一区二区三区中文字幕精品精品 | 亚洲国产精品t66y| 99精品久久99久久久久| 一区二区激情小说| 日韩欧美不卡在线观看视频| 国产丶欧美丶日本不卡视频| 亚洲欧美自拍偷拍色图| 337p亚洲精品色噜噜狠狠| 国产福利一区二区三区在线视频| 日韩美女啊v在线免费观看| 欧美日韩精品欧美日韩精品一|