Professional Documents
Culture Documents
Verilog HDL
Verilog HDL
Verilog HDL
Nguyn H Giang
LOG
Ni dung
1
Mt s quy c
3
4
Module
Port
LOGO
Ni dung
1
Mt s quy c
3
4
Module
Port
LOGO
Cc cng kt ni
Chuyn mch.
LOGO
Ni dung
1
Mt s quy c
3
4
Module
Port
LOGO
Mt s quy c ca Verilog
LOGO
Mt s quy c ca Verilog
LOGO
LOGO
Mt s quy c ca Verilog
LOGO
nh danh v t kha
LOGO
Mt s quy c ca Verilog
LOGO
LOGO
S c c s
<value> gi tr ca s nguyn
V d
a = 4b1001;
// biu din s nh phn 4b1001 = 4d9
LOGO
b = 5o24;
c = 5d24;
LOGO
Mt s quy c ca Verilog
LOGO
Kiu d liu
LOGO
Kiu d liu
LOGO
wire net1;
Wire
LOGO
Mt s quy c ca Verilog
LOGO
Vector
LOGO
Mt s quy c ca Verilog
LOGO
Ton t
LOGO
Ton t
LOGO
LOGO
V d :
// x = 4b1010 , y = 4b1101
// z = 4b10x1
~x
// = 4b0101
x&y
// = 4b1000
x|y
// = 4b1111
x^y
// = 4b0111
x~^ y
// = 4b1000
x&z
// = 4B10x0
LOGO
Ton t
LOGO
Ton t logic
LOGO
LOGO
Ton t logic
V d:
// a = 3 , b = 0;
// m= 2b0x , n = 2b10
a && b // ( logic 1 && logic 0 ) 0
a || b // ( logic 1 || logic 0 ) 1
!a
// ( !logic1 0 )
( a==2 ) && ( b==0 ) // ( logic 1 && logic 0 )
( m && n ) // ( x && logic 1 ) x
Ton t
LOGO
Ton t kt ni / nhn bn
LOGO
Ton t
LOGO
Ton t dch
LOGO
Ton t
LOGO
Ton t iu kin
LOGO
Bt iu kin ? Bt ng : bt sai
Xt bt iu kin
Nu ng ( logic 1 ) bt ng c xt
Nu sai ( logic 0 ) bt sai c xt
Nu kt qu l x th xt c bt ng v bt sai. So snh
tng bit ca kt qu 2 biu thc, nu kt qu ging nhau
tr v kt qu ,nu c bit khc nhau th tr v x
V d :
wire [15:0]b = a? data : 16bz;
/* a = 1 th data c gn vo b
a = 0 th b tng tr cao
a = x th b l x */
Ton t
LOGO
Ton t quan h
LOGO
Ton t
LOGO
Ton t bng
LOGO
== v !=
Gi tr x v z tng t nh ton t quan h
Kt qu c th l x
=== v !==
So snh tng bit
x === x, z === z, x !== z
Kt qu lun xc nh (0 hoc1)
Nu kch thc 2 ton hng khng bng nhau th cc bit
0 s c thm vo nhng bit trng s cao ca ton
hng c kch thcnh
Ton t bng
V d :
// a = 4 , b = 3
// x = 4b1010 , y = 4b1010
// z = 4b0xxz , m = 3bxxz , n = 4b0xxx
a == b // 0
x != y // 1
x == z // x
z === m // 1
z === n // 0
m !== n // 1
LOGO
Ton t
LOGO
Ton t s hc
LOGO
Ton t s hc
V d
a = 4b0011 ; b = 4b0100;
d=6;e=4;
m = 4b101x ; n = 4b1010
a * b // = 4b1100
d / e // = 1
a + b // = 4b0111
a - b // = 4b0001
m + n // = 4bx
13 % 3 // = 1
16 % 4 // = 0
LOGO
Mt s quy c ca Verilog
LOGO
Php gn
LOGO
2kiuphpgn:
kiublocking:[tnbin]=[biuthc];
kiunon-blocking:[tnbin]<=[biuthc];
Kiublocking:cclnhthchintunt,thc
hinxonglnhgnnymithchinlnhgnk
tip
Kiunon-blocking:cclnhgncthchin
songsong
Php gn
V d 1:
initial begin
#10 a = 0 ; #11 a = 1 ; #12 a = 0 ; #13 a = 1;
end
initial begin
$monitor("TIME = %tA = %b ",$time, a);
#50 $finish ;
end
TIME = 0 A = x
TIME = 10 A = 0
TIME = 11 A = 0
TIME = 12 A = 0
TIME = 13 A = 0
TIME = 21 A = 1
TIME = 33 A = 0
TIME = 46 A = 1
LOGO
Php gn
V d 2 :
initial begin
TIME = 0 B = x
TIME = 10 B = 0
TIME = 11 B = 0
TIME = 12 B = 0
TIME = 13 B = 0
TIME = 21 B = 1
TIME = 33 B = 0
TIME = 46 B = 1
LOGO
Php gn
V d 3 :
initial begin
c = #10 0 ; c = #11 1 ; c = #12 0 ; c = #13 1 ;
end
initial begin
$monitor("TIME = %t C= %b ",$time, c);
#50 $finish ;
end
TIME = 0 C = x
TIME = 10 C = 0
TIME = 11 C = 0
TIME = 12 C = 0
TIME = 13 C = 0
TIME = 21 C = 1
TIME = 33 C = 0
TIME = 46 C = 1
LOGO
Php gn
V d 4 :
initial begin
d <= #10 0 ; d <= #11 1 ; d <= #12 0 ; d <= #13 1 ;
end
initial begin
$monitor("TIME = %t D= %b ",$time, d);
#50 $finish ;
end
TIME = 0 D = x
TIME = 10 D = 0
TIME = 11 D = 1
TIME = 12 D = 0
TIME = 13 D = 1
TIME = 21 D = 1
TIME = 33 D = 1
TIME = 46 D = 1
LOGO
Ni dung
1
Mt s quy c
3
4
Module
Port
LOGO
//khai bo module
Module module_name(tn bin I/O); //module_name
trng tn file.v
Input [msb:lsb] bien;
Output [msb:lsb] bien;
Inout [msb:lsb] bien;
Reg [msb:lsb] bien reg;
Wire [msb:lsb] bien wire;
//khai bao khoi always hoac initial
cac lenh
endmodule
LOGO
Module
LOGO
Cc khai bo bin
Cc khi hnh vi
Module
V d 1 :
// module co port
module nand_gate (c, a, b);
output c;
input a, b;
wire d;
and a1(d, a, b);
not n1(c, d);
endmodule
LOGO
Module
V d 2
//module ko co port
`timescale 1ns / 1ps
module test_bench;
reg A, B;
wire C;
nand_gate S (C, A, B);
initial
begin
$moniter("A = %b, B = %b, C = %b \n", A, B, C);
#10 A = 1'b0; B = 1'b0;
#10 A = 1'b0; B = 1'b1;
#10 A = 1'b1; B = 1'b0;
#10 A = 1'b1; B = 1'b1;
end
endmodule
LOGO
Ni dung
1
Mt s quy c
3
4
Module
Port
LOGO
Port
LOGO
Port
LOGO
LOGO
www.themegallery.com
Thank You !
Nguyn H Giang
LOG