verilog初级知识

2017-06-22  本文已影响79人  Michael_Johnson

1.Verilog支持3种基本描述方式:

1.1行为描述方式--过程化结构建模

1.2数据流描述方式--连续赋值语句方式建模

1.3结构化描述方式--使用门和模块实例语句描述建模


2.Verilog提供了3种时序控制方法

2.1基于延时的时序控制

2.2基于事件的时序控制

    事件是指一个寄存器或者线网变量的值发生变化,事件可以用来触发声明语句或者块语句的执行。Verilog提供4种类型的事件控制:

        常规事件控制:@(clk) 、@(posedge clk)、@(negedge clk)、或者q=@(posedge clk) d;

         命名时间控制:event received_data;

                                    always @(posedge clk)     begin

                                        if(last_data_packet)      ->received_data;     //触发接收数据事件

                                    end

                                      always@(received_data)            data_buf={data_pkt[0],data_pkt[1],data_pkt[2],data_pkt[3]};

           or事件控制

           电平敏感时序控制:wait表示电平敏感的条件为真


3.Verilog语言中能参数化设计

    为了提高模块的重复利用,关键就在于避免硬编码(hard literal),使模块参数化。参数化建模的好处是可以使代码清晰,便于后续维护和修改。只需要修改参数,不用修改其他代码就可以适用于不同的环境中。具体的参数化建模方法有 3 种:

3.1‘define宏定义

3.2 parameter、localparam模块参数化

3.3 ’ifdef等条件编译

指导原则:

1宏定义应该只用于定义系统内全局常量;

2 应该把所有的宏定义仿真一个definition.vh文件中;

3 模块内的常量用localparam;

4 在实例化时会改变的参数,使用parameter,以达到模块可配置和可移植;

5 在定义常量时,如果一个常量依赖于其他常量,那么在定义该常量时就直接用表达式表示出来这种关系。

关于上述三种参数化设计的详细备注


4.

    Verilog可以用于生成模拟激励和指定测试的验证约束条件,比如输入的指定。

    两类主要数据类型:线网类型(构件之间的物理连线)、寄存器类型(抽象的数据存储单元)

    udp:用户定义原语,组合逻辑原语或者是时序逻辑原语 。

    开关级门:pmos、nmos

    两个基本逻辑门:and、or、nand

上一篇 下一篇

猜你喜欢

热点阅读