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

📄 ram.v

📁 這是一堆verilog的source code.包含許多常用的小電路.還不錯用.
💻 V
字号:
// renoir header_start//// Module timing.ram.ram//// Created://          by - Administrator.UNKNOWN (LMC)//          at - 03:52:35 PM 01/11/2002//// Generated by Mentor Graphics' Renoir(TM) 2000.3 (Build 2)//// renoir header_end`resetall`timescale 1ns/10ps`define 	Tvavd	10 	// data delay out of memory`define		Ts2z	5	// delay of deseclt to tristatemodule ram(addr, data, sel, rw,clk);			input 	clk;	input 	[15:0] 	addr;	inout 	[15:0]	data;	input 	sel, rw;	reg 	[15:0]	mem_array	[0:65536], data_internal;	reg		tprob;// Internal Declarations// data bus tri-state. Bi- directional.	assign data = (sel) ? data_interna :16'bz;// Always statement that does the actual read and write	always @ (posedge clk)    	begin		//read memory		if ((rw === 1'b1) && 		(sel === 1'b1))		data_internal = mem_array [addr[15:0]];		//write memory		if((rw === 1'b0)&&		(sel === 1'b1))		mem_array [addr[15:0]] = data;		end//The speccify block where all the timing and verification is place./********************************************************************/specify// Define timing parameter	specparam	Tclk_period = 20;	specparam	Tclk_high_min = 9;	specparam	Tclk_low_min = 7;	specparam	Taddr_clk_setup = 4;	specparam	Taddr_clk_hold = 3;	specparam	Tsel_clk_setup = 4;	specparam	Tsel_clk_hold = 4;	specparam	Tclk_data_valid = 12;	specparam	Trise = 0.5;	specparam	Tfall = 0.3;	specparam	T0_to_z = 0.1;	specparam	Tz_to_1 = 0.3;	specparam	T1_to_z = 0.1;	specparam	Tz_to_0 = 0.2;// Declare module path and apply delay	if (sel== 0) 		(posedge clk *> data) = (Tclk_data_valid + Trise, Tclk_data_valid + Tfall, 0, 0, 0, 0);	(negedge sel *> data) = (0, 0, T0_to_z, 0, T1_to_z,0);	(posedge sel *> data) = (0, 0, 0,Tz_to_1, 0, Tz_to_0);// Do timing verification like set & hold, ect.	$period (posedge clk, Tclk_period, tprob);	$width (posedge clk, Tclk_high_min, 0,tprob);	$width (negedge clk, Tclk_low_min, 0, tprob);	$setup (addr, posedge clk, Taddr_clk_setup, tprob);	$hold (addr, posedge clk, Taddr_clk_hold, tprob);	$setuphold (sel, posedge clk, Tsel_clk_setup, Tsel_clk_hold, tprob);	endspecify	// Report the time of every timing violation	always @ (tprob)	begin		$display (%0d: "Timing violation found", $time);    end// renoir interface_endendmodule

⌨️ 快捷键说明

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