verilog-hdl数字集成电路设计原理与应用-作者-蔡觉平-第4章.pptx
文本预览下载声明
第4章 Verilog HDL数字逻辑电路设计方法 4.1 Verilog HDL语言的设计思想和可综合特性 4.2 组合电路的设计 4.3 时序电路的设计 4.4 有限同步状态机 本章小结教材其余课件及动画素材请查阅在线教务辅导网在线教务辅导网:/QQ:/349134187 或者直接输入下面地址:/ 在数字集成电路设计过程中,设计者使用Verilog HDL硬件描述语言进行关键性步骤的开发和设计。其基本过程是,首先使用Verilog HDL对硬件电路进行描述性设计,利用EDA综合工具将其综合成一个物理电路,然后进行功能验证、定时验证和故障覆盖验证。4.1 Verilog HDL语言的设计思想和可综合特性 与计算机软件所采用的高级程序语言(C语言)类似,Verilog HDL是一种高级程序设计语言,程序编写较简单,设计效率很高。然而,它们面向的对象和设计思想却完全不同。 软件高级程序语句是对通用型处理器(如CPU)的编程,主要是在固定硬件体系结构下的软件化程序设计。处理器的体系结构和功能决定了可以用于编程的固定指令集,设计人员的工作是调用这些指令,在固化的体系结构下实现特定的功能。 Verilog HDL和VHDL等硬件描述语言对电路的设计是将基本的最小数字电路单元(如门单元、寄存器、存储器等)通过连接方式,构成具有特定功能的硬件电路。在数字集成电路中,这种最小的单元是工艺厂商提供的设计标准库或定制单元;在FPGA中,这种最小的单元是芯片内部已经布局的基本逻辑单元。设计人员通过描述性语言调用和组合这些基本单元实现特定的功能,其基本的电路是灵活的。 Verilog HDL给设计者提供了几种描述电路的方法。设计者可以使用结构性描述方式把逻辑单元互连在一起进行电路设计,也可以采用抽象性描述方式对大规模复杂电路进行设计,如对有限状态机、数字滤波器、总线和接口电路的描述等。 由于硬件电路的设计目标是最终产生的电路,因此Verilog HDL程序设计的正确性需要通过对综合后电路的正确性进行验证来实现。逻辑上相同的电路在物理电路中的形式却有可能完全不同。对于Verilog HDL程序设计而言,数字电路的描述性设计具有一定的设计模式,这与C语言等高级软件程序设计是不同的。 例4.1-1是对模256(8 bit)计数器的两种描述。程序(a)是通常的Verilog HDL语言对计数器的描述方式,通过改变计数器状态寄存器组的位宽和进位条件,可以实现对不同计数器的硬件电路设计。程序(b)是初学者经常出现的一种错误描述方式,刚开始编写Verilog HDL程序时经常会套用C语言等高级程序设计的模式,这样往往得不到目标数字电路的功能。 例4.1-1 用Verilog HDL语言设计模256(8 bit)计数器。 (a) 可综合程序描述方式: module counter (count,clk,reset); output count; input clk,reset; reg [7:0] count; reg out; always @(posedge clk) if (!reset) count=0; else if (count==8 count=0; else count=count+1; endmodule (b) 常见的错误描述方式: module counter (count,clk,reset); output count; input reset,clk; reg [7:0] count; reg out; integer i; always @(posedge clk,reset) begin if (!reset) count=0; else for (i=0;i=255;i=i+1) count=count+1; end endmodule Verilog HDL的电路描述方式具有多样性,这也决定了电路设计的多样性。例4.1-2是对一个多路选择器的设计,程序(a)采用的是真值表的形式,程序(b)采用的是逻辑表达式的形式,程序(c)采用的是基本逻辑单元的结构性描述形式。 例4.1-2 用Verilog HDL设计数字多路选择器。 (a) 采用真值表形式的代码: module MUX (out,data,sel); output out; input [3:0] data; input [1:0] sel; reg out; always @(data or sel) case (sel) 2b00 : out=data[0]; 2b01 : out=data[1]; 2b10 : out=data[2]; 2b11 : out=data[3]; endcase end
显示全部