新闻中心

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


评论


相关推荐

技术专区

关闭