网站公告列表     本站开通全国范围代收货款业务,详情请点击  [dycxin  2008年5月14日]        
加入收藏
设为首页
联系站长
您现在的位置: EDA加油站 >> 综合电子 >> EDA巩固 >> Verilog HDL >> 正文
  [推荐]Verilog技术实践教程(2)           ★★★ 【字体:
Verilog技术实践教程(2)
Verilog技术实践教程(2)
作者:未知    文章来源:网络    点击数:    更新时间:2007-10-11    
   Verilog语言的设计模式可以分成两类:1类是由顶向下,1类是由底向上。所谓的由顶向下,是指先定义顶层模块,然后分别设计子模块。由底向上是先设计底层子模块,然后在顶层连接。

    Verilog语言的基本设计单位为模块,即module,一个模块包括模块名、输入输出端口定义、完成该模块的功能描述部分、底层模块实例引用、组件及系统函数等。

一、模块和宏模块

1、模块

    上次我们讲了模块。你如果有程序设计基础知识的话,可以把模块当成函数或者过程都可以,这样便于理解。一个模块的语法如下:

module 模块名称 (输入输出列表);

输入输出名称申明;

模块内部结构;

endmodule

     其中输入输出列表和输入输出名称申明是可选的。

2、宏模块

    为了仿真的方便,Verilog支持宏模块,即Macro module,综合时,宏模块的内容将替代调用宏模块名称的地方。下面是一个宏模块的定义例子:

macromodule nand(a,b,c);

input a,b;

output c;

wire out_and;

assign out_and = a and b;

assign c = ~out_and;

endmodule

    如果你在某个模块中调用了宏模块nand,那么,在综合的时候,宏模块的内容将出现在调用该宏模块名称的地方。

二、端口

    所谓的端口是指模块与外界联系的输入/输出连接。例如:

module dff(d,clock,rest,q);

input d,clock,rest;

output q;

....

endmodule

    在上例中,d、clock、rest、q都是端口,其中input语句定义了d、clock、rest都是输入端口,output语句定义了q是输出端口。

三、模块实例的引用

    编好一个模块后,要在需要使用它的地方定义该模块的引用,就好比调用过程或者函数。引用的格式是:

    <模块名称>  <实例名称>(引脚列表);

    下面是一个例子:

module dff(din,clock,q);

input din,clock;

output q;

reg q;

always@(posedge clock)

    q=din;

endmodule

 

module mux2(ma,mb,s,mout);

input ma,mb,s;

output mout;

assign mout = s?ma:mb;

endmoudle

 

module a(da,db,sel,clk,q);

input da,db,sel,clk;

output q;

wire qa,qb;

dff dff1(.din(da),.q(qa),.clock(clk));

dff dff2(.din(db),.clock(clk),.q(qb));

mux2 mux(.ma(qa),.mb(qb),.s(sel),.mout(q));

endmodule

 

      在这个例子中,首先定义了两个模块,分别是D触发器和数据选择器,在a模块进行高层连接时,需要注意的一点就是引用下层模块时,连接引脚需要同时告诉编译器引脚的形参和实参,比如dff1中da连接的是din,因此需要用.din(da)连接。这样的好处在于很容易可以检查出连线不正确的输入。

     好,今天就先讲到这里。下次我们继续学习。

文章录入:dycxin    责任编辑:dycxin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于VHDL的异步串行通信电路
    ALTERA的假货识别方法
    Verilog 技术实践教程(1)
    10分钟学会PLD设计1-设计输
    浅谈VHDL/Verilog的可综合性
    选择 VHDL 还是 verilog HDL
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    EDA加油站|我要EDA网|山东电子网--东营市荣燕商贸有限公司版权所有! 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号  鲁ICP备07000091号 鲁ICP备05003434号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处