<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > Verilog HDL基礎知識9之代碼規范示例

          Verilog HDL基礎知識9之代碼規范示例

          作者:時間:2024-02-26來源:電子森林收藏
          //********************************************************
          //
          //   Copyright(c)2016, ECBC 
          //   All rights reserved
          //
          //   File name       :   MODULE_NAME.v
          //   Module name     :   MODULE_NAME
          //   Author          :   STEP
          //	 Description	 :  
          //   Email           :   Author’s email
          //   Data            :   2016/08/01
          //   Version         :   current version, just this: v1.0
          //
          //   Abstract        :   
          //
          //   Modification history
          //   ----------------------------------------------------------------------------
          // Version       Data(2016/08/01)   V1.0
          // Description
          //
          //*************************************************************
          //*******************
          //DEFINE(s)
          //******************* 
          //*******************
          //DEFINE(s)
          //*******************
          //`define UDLY 1    //Unit delay, for non-blocking assignments in sequential logic 
          //*******************
          //DEFINE MODULE PORT
          //*******************
          module MODULE_NAME
          (
          	//INPUT
          	rest_n         ,
          	clk_*          ,
          	a_din          ,
          	b_din          , 	
          	
          	//OUTPUT
          	a_dout         ,
          	b_dout
          ); 	
          
                  //*******************
          	//DEFINE PARAMETER
          	//*******************
          	parameter			T1S	=	24_999_999; 	
          	
          	//*******************
          	//DEFINE INPUT
          	//*******************
          	input             	rst_n		;    //reset, active low .
          	input             	clk_*		;    //clock signal, 50M .
          	input  [n:0]		a_din		;    //*****
          	input  [k:0]       	b_din		;    //***** 	
          	
          	//*******************
          	//DEFINE OUTPUT
          	//*******************
          	output  [m:0]    	a_dout      ;    //*****
          	output  [i:0]     	b_dout      ;    //***** 	
          	
          	//********************
          	//OUTPUT ATTRIBUTE
          	//********************
          	//REGS
          	reg   [m:0]     	a_dout		;    //***** 	
          	
          	//WIRES
          	wire  [i:0]      	b_dout		;    //***** 	
          	
          	//*********************
          	//INNER SIGNAL DECLARATION
          	//*********************
          	//REGS
          	reg   [3:0]       	counter     ;    //***** 	
          	
          	//WIRES
          	wire  [7:0]       	temp1		;    //***** 	
          	
          	//*********************
          	//INSTANTCE MODULE
          	//********************* 	
          	
          	//**************************************************************
          	//instance of module MODULE_NAME_A filename:module_name_a.v
          	//**************************************************************
          	MODULE_NAME_A  U_MUDULE_NAME_A(
          					.A			(A			),
          					.B			(B			),
          					.C			(C			)
          					); 	
          	
          	//*********************
          	//MAIN CORE
          	//********************* 	
          	
          	//Sequential logic style
          	always@(posedge clk_* or negedge rest_n)
          	begin : SEQ_BLOCK_NAME		
          	        if (rst_n==1’b0)
          			counter<=4’b0;
          		else
          			begin
          				if (expression)
          					counter <= #`DLY siginal_b;
          				else;
          			end
          	end // SEQ_BLOCK_NAME 	
          	
          	//Combinational logic style
          	always@(signal_a or signal_b)
          	begin:COM_BLOCK-NAME		
          	        case (expression)
          			item1    :begin
          						 signal_c=*****;
          					  end
          			item2    : //statement;
          			default   ://statement;
          		endcase
          	end // COM_BLOCK_NAME 	
          	assign	out	= expression ? (1’b0):(1’b1); 	
          	//*********************
          endmodule


          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();