Một số ví dụ về RS FLIP FLOP dùng verilog

Lu ROm

Administrator
Staff member
25 Tháng bảy 2014
481
119
43
32
One piece
vimach.net
upload_2016-6-2_12-8-32.png

upload_2016-6-2_12-9-40.png


h31FFSRsong0.gif

FF RS nảy cạnh lên khi đó sẽ kí hiệu hình tam giác ở sơ đồ khối và dấu mũi tên lên trong bảng trạng thái.
FF RS nảy bằng cạnh xuống tương tự và có khí hiệu thêm hình tròn nhỏ hay gạch đầu Ck để chỉ cạnh xuống ở ký hiệu khối và vẽ dấu mũi tên xuống ở bảng trạng thái.

- Một số ví dụ về RS FLIP FLOP dung verilog.
++ Ví dụ code Verilog cho RS FLIP FLOP tích cực ở sườn dương,có reset.
Mã:
// SR Flip Flop
module srff(s,r,clk,reset, q,qb);
input s,r,clk,reset;
output q,qb;
reg q,qb;
reg [1:0]sr;
always @ ( posedge clk or posedge reset)
begin
//ghep bit
sr={s,r};
if (reset)
begin
q = 1'b0;
qb = ~q;
end
else
begin
case (sr)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = 1'bX;
endcase
qb = ~q;
end
end
endmodule
++ Ví dụ code Verilog cho SR FLIP FLOP tích cực ở sườn dương.
Mã:
module srff(s,r,clk,reset, q,qb);
input s,r,clk,reset;
output q,qb;
reg q,qb;
reg [1:0]sr;

//code
initial
begin
q=1'b0; qb=1'b1;                 // q is set to 0 and q1 is set to 1.
end
always @ ( posedge clk )
begin
//ghep bit
sr={s,r};
begin
case (sr)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = 1'bX;
endcase
qb = ~q;
end
end
endmodule

++ Ví dụ code Verilog cho SR FLIP FLOP tích cực ở sườn âm có reset.
Mã:
// SR Flip Flop
module srff(s,r,clk,reset, q,qb);
input s,r,clk,reset;
output q,qb;
reg q,qb;
reg [1:0]sr;
always @ ( negedge clk or posedge reset)
begin
//ghep bit
sr={s,r};
if (reset)
begin
q = 1'b0;
qb = ~q;
end
else
begin
case (sr)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = 1'bX;
endcase
qb = ~q;
end
end
endmodule
 
  • Like
Reactions: nguyenhonghai1997bg
View attachment 197
View attachment 198

h31FFSRsong0.gif

FF RS nảy cạnh lên khi đó sẽ kí hiệu hình tam giác ở sơ đồ khối và dấu mũi tên lên trong bảng trạng thái.
FF RS nảy bằng cạnh xuống tương tự và có khí hiệu thêm hình tròn nhỏ hay gạch đầu Ck để chỉ cạnh xuống ở ký hiệu khối và vẽ dấu mũi tên xuống ở bảng trạng thái.

- Một số ví dụ về RS FLIP FLOP dung verilog.
++ Ví dụ code Verilog cho D FLIP FLOP tích cực ở sườn dương,có reset.
Mã:
// SR Flip Flop
module srff(s,r,clk,[B]reset[/B], q,qb);
input s,r,clk,reset;
output q,qb;
reg q,qb;
reg [1:0]sr;
always @ ( posedge clk or posedge reset)
begin
//ghep bit
sr={s,r};
if (reset)
begin
q = 1'b0;
qb = ~q;
end
else
begin
case (sr)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = 1'bX;
endcase
qb = ~q;
end
end
endmodule
++ Ví dụ code Verilog cho SR FLIP FLOP tích cực ở sườn dương.
Mã:
module srff(s,r,clk,reset, q,qb);
input s,r,clk,reset;
output q,qb;
reg q,qb;
reg [1:0]sr;

//code
initial
begin
q=1'b0; qb=1'b1;                 // q is set to 0 and q1 is set to 1.
end
always @ ( posedge clk )
begin
//ghep bit
sr={s,r};
begin
case (sr)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = 1'bX;
endcase
qb = ~q;
end
end
endmodule

++ Ví dụ code Verilog cho SR FLIP FLOP tích cực ở sườn âm có reset.
Mã:
// SR Flip Flop
module srff(s,r,clk,reset, q,qb);
input s,r,clk,reset;
output q,qb;
reg q,qb;
reg [1:0]sr;
always @ ( negedge clk or posedge reset)
begin
//ghep bit
sr={s,r};
if (reset)
begin
q = 1'b0;
qb = ~q;
end
else
begin
case (sr)
2'd0 : q = q;
2'd1 : q = 1'b0;
2'd2 : q = 1'b1;
2'd3 : q = 1'bX;
endcase
qb = ~q;
end
end
endmodule
và khi nào thì dùng negedge và khi nào thì dùng posedge v b?
 
  • Like
Reactions: Lu ROm
nhưng cả 2 đều đúng ah? mà trường hợp nào thì dùng q'b1, khi nào thì dùng 1'b0?
tùy vào nguwoif thiết kế thôi bạn, cái nào cũng đúng nhưng để người dùng đúng theo nguyên lý thì nên dùng Q = 1'b0, đa số khi thiết kế chỉ lấy một đầu ra thôi, nên chọn một trong hai đầu là q hoặc bù q.
 
  • Like
Reactions: nguyenhonghai1997bg
tùy vào nguwoif thiết kế thôi bạn, cái nào cũng đúng nhưng để người dùng đúng theo nguyên lý thì nên dùng Q = 1'b0, đa số khi thiết kế chỉ lấy một đầu ra thôi, nên chọn một trong hai đầu là q hoặc bù q.
uh dùng q hay ~q hay cả 2 đều dc và không sai ah b?
 
  • Like
Reactions: Lu ROm
ví dụ đi thi thì đề bài như thế nào thì sẽ dùng Q, ntn thì dùng Q_b? khi nào thì dùng cả 2?
Bạn nhìn vào bảng sự thật của RS flipflop thì biết lúc nào dùng cái nào thôi bạn
upload_2016-6-2_17-40-51.png

nếu đầu vào bạn chon theo S thì chọn Q, cong đầu vào bạn chọn theo kết quả giống với R thì bạn chọn ~Q
 
  • Like
Reactions: nguyenhonghai1997bg