当前位置:
文档之家› 西安电子科技大学verilogPPT课件
西安电子科技大学verilogPPT课件
第四章 Verilog HDL数字逻辑 电路设计方法
9/26/2020
Microelectronics School Xidian University
1
4.1 Verilog HDL 语言设计思想和可综合特性
例4.1-1:用Verilog HDL设计模256(8bits)计数器 (a)可综合程序描述方式 module counter (count,clk,reset); output count; input clk,reset; reg [7:0] count; reg out; always @(posedge clk)
not
U1 (w1,sel[1]);
U2 (w2,sel[0]);
and
U3 (w3,w1,w2,data[0]);
U4 (w4,w1,sel[0],data[1]);
U5 (w5,sel[1],w2,data[2]);
U6 (w6,sel[1],sel[0],data[3]);
or
U7 (out,w3,w4,w5,w6);\
A
B
C
OUT
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
9/26/2020
Microelectronics School Xidian University
6
在Verilog HDL中,可以使用“case”语句对电路进行 描述性设计,表4.2-1真值表设计代码如下: module desingn (OUT,A,B,C); output OUT; input A,B,C; reg OUT;
endmodule
assign w1=(~sel[1])&(~sel[0])&data[0]; assign w2=(~sel[1])&sel[0]&data[1]; assign w3=sel[1]&(~sel[0])&data[2]; assign w4=sel[1]&sel[0]&data[3]; assign out=w1|w2|w3|w4; endmodule
9/26/2020
Microelectronics School Xidian University
4
4.2 Verilog HDL组合电路设计
组合电路的特点是:电路中任意时刻的稳态输出仅仅取决于该时刻的 输入,而与电路原来的状态无关。
组合电路的设计需要从以下几个方面考虑:
•所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单。这 样的电路称“最小化”电路; •其次,为了满足速度要求,应使级数尽量少,以减少门电路的延迟;电路的 功耗应尽可能的小,工作时稳定可靠。
endmodule
在现阶段,作为设计人员熟练掌 握Verilog HDL程序设计的多样性和可 综合性,是至关重要的。作为数字集 成电路的基础,基本数字逻辑电路的 设计是进行复杂电路的前提。本章通 过对数字电路中基本逻辑电路的 Verilog HDL程序设计进行讲述,掌握 基本逻辑电路的可综合性设计,为具 有特定功能的复杂电路的设计打下基 础。
if (!reset) count<=0; else if (count==8'b11111111) 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
9/26/2020
Microelectronics School Xidian University
2
同时Verilog HDL的电路描述方式具有多样性,这也决定了对于电路 设计的多样性。
例4.1-2: 用Verilog HDL设计数字多路选择器 (a)采用真值表形式的代码: module MUX (out,data,sel); output out; input [3:0] data; input [1:0] sel; reg out;
always @(A or B or C) case ({A,B,C}) 3'b000 : OUT<=0; 3'b001 : OUT<=0; 3'b010 : OUT<=0; 3'b100 : OUT<=0; 3'b011 : OUT<=1; 3'b101 : OUT<=1; 3'b110 : OUT<=1; 3'b111 : OUT<=1;
描述组合逻辑电路有四种方式:结构描述、逻辑代数、真值表、抽象 描述。
9/26/2020
Microelectronics School Xidian University
5
例4.2-1:设计一个3个裁判的表决电路,当两个或两个以上裁判同意 时,判决器输出“1”,否则输出“0”。
方法1:真值表方式
真值表是对电路功能最直接和简单的描述方式。根据电路的功能,可 以通过真值表直接建立起输出与输入之间的逻辑关系。例4.2-1有三个 输入端A、B、C和一个输出端OUT。
(b)采用逻辑表达式形式的代码: module MUX (out,data,sel); output out; input [3:0] data; input [1:0] sel; wire w1,w2,w3,w4;
always @(data or sel) case (sel) 2'b00 : out<=data[0]; 2'b01 : out<=data[1]; 2'b10 : out<=data[2]; 2'b11 : out<=data[3]; endcase
9/26/2020
Microelectronics School Xidian University
3
(c)采用结构性描述的代码: module MUX (out,data,sel); output out; input [3:0] data; input [1:0] sel; wire w1,w2,w3,w4;