广东工业大学—基于libero的数字逻辑设计仿真及验证实验实验报告内容摘要:

R1,R2,CLK1,CLK2,D1,D2,Q1,QF1,Q2,QF2)。 input S1,S2,R1,R2,CLK1,CLK2,D1,D2。 output Q1,QF1,Q2,QF2。 reg Q1,QF1,Q2,QF2。 always@(posedge CLK1) begin if(!S1amp。 amp。 R1) begin Q1=1。 QF1=0。 end else if(S1amp。 amp。 !R1) begin Q1=0。 QF1=1。 end else if(!S1amp。 amp。 !R1) begin Q1=1。 QF1=1。 end else begin Q1=D1。 QF1=!D1。 end end always@(posedge CLK2) begin if(!S2amp。 amp。 R2) begin 18 Q2=1。 QF2=0。 end else if(S1amp。 amp。 !R1) begin Q2=0。 QF2=1。 end else if(!S1amp。 amp。 !R1) begin Q2=1。 QF2=1。 end else begin Q2=D2。 QF2=!D2。 end end endmodule //74HC74 测试平台代码 `timescale 1ns/1ns module test_HC74。 reg s1,s2,r1,r2,clk1,clk2,d1,d2。 wire q1,qf1,q2,qf2。 HC74 u1(s1,s2,r1,r2,clk1,clk2,d1,d2,q1,qf1,q2,qf2)。 initial begin clk1=0。 400 $finish。 end always 10 clk1=~clk1。 initial begin clk2=0。 end always 10 clk2=~clk2。 initial begin s1=0。 repeat(20) 20 s1=$random。 end initial begin 19 s2=0。 repeat(20) 20 s2=$random。 end initial begin r1=1。 repeat(20) 20 r1=$random。 end initial begin r2=1。 repeat(20) 20 r2=$random。 end initial begin d1=0。 repeat(20) 20 d1=$random。 end initial begin d2=0。 repeat(20) 20 d2=$random。 end endmodule //74HC112 代码 module HC112(S1,S2,R1,R2,CLK1,CLK2,J1,J2,K1,K2,Q1,QF1,Q2,QF2)。 input S1,S2,R1,R2,CLK1,CLK2,J1,J2,K1,K2。 output Q1,QF1,Q2,QF2。 reg Q1,Q2。 assign QF1=~Q1。 assign QF2=~Q2。 always@(negedge CLK1,negedge S1,negedge R1) begin if(!S1amp。 amp。 R1) Q1=1。 else if(S1amp。 amp。 !R1) Q1=0。 else if(!S1amp。 amp。 !R1) 20 Q1=1。 else case({J1,K1}) 239。 b00:Q1=Q1。 239。 b01:Q1=0。 239。 b10:Q1=1。 239。 b11:Q1=~Q1。 endcase end always@(negedge CLK2,negedge S2,negedge R2) begin if(!S2amp。 amp。 R2) Q2=1。 else if(S2amp。 amp。 !R2) Q2=0。 else if(!S2amp。 amp。 !R2) Q2=1。 else case({J2,K2}) 239。 b00:Q2=Q2。 239。 b01:Q2=0。 239。 b10:Q2=1。 239。 b11:Q2=~Q2。 endcase end endmodule //74HC112 测试平台代码 `timescale 1ns/1ns module test_HC112。 reg s1,s2,r1,r2,clk1,clk2,j1,j2,k1,k2。 wire q1,qf1,q2,qf2。 HC112 u1(s1,s2,r1,r2,clk1,clk2,j1,j2,k1,k2,q1,qf1,q2,qf2)。 initial begin clk1=0。 end always 10 clk1=~clk1。 initial begin s1=0。 repeat(20) 20 s1=$random。 21 end initial begin r1=0。 repeat(20) 20 r1=$random。 end initial begin j1=0。 repeat(20) 20 j1=$random。 end initial begin k1=0。 repeat(20) 20 k1=$random。 end initial begin clk2=0。 end always 10 clk2=~clk2。 initial begin s2=0。 repeat(20) s2=$random。 end initial begin r2=0。 repeat(20) 20 r2=$random。 end initial begin j2=0。 repeat(20) 20 j2=$random。 end 22 initial begin k2=0。 repeat(20) 20 k2=$random。 end initial 450 $finish。 endmodule //74HC161 代码 module HC161(MR,CP,CEP,CET,PE,D,Q,TC)。 input MR,CP,CEP,CET,PE。 input [3:0]D。 output [3:0]Q。 output TC。 reg [3:0]Q。 reg TC。 always@(posedge CP) begin if(!MR) Q=0。 else if(!PE) Q=D。 else if(!CEP||!CET) Q=Q。 else Q=Q+1。 end always@(posedge CP) begin if(Q==439。 b1110) TC=1。 else TC=0。 end endmodule //74HC161 测试平台代码 `timescale 1ns/1ns module test_HC161。 reg mr,cp,cep,cet,pe。 reg [3:0]d。 wire [3:0]q。 wire tc。 23 HC161 u1(mr,cp,cep,cet,pe,d,q,tc)。 initial begin mr=0。 15 mr=1。 pe=0。 d=0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。