设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 216|回复: 0
收起左侧

Quartus Verilog HDL/FPGA 实现 74HC279 / 74LS279 四组异步下降沿触发的R-S锁存器

[复制链接]
发表于 2023-5-11 09:39:45 | 显示全部楼层 |阅读模式
main.png
  1. module hc279(                        //四组异步下降沿触发的R-S锁存器 VCC:Pin16 GND:Pin8
  2.         //1组
  3.         input R1,                        //下降沿Q1清0 Pin1
  4.         input S11,                        //下降沿Q1置1 Pin2
  5.         input S12,                        //下降沿Q1置1 Pin3
  6.         output reg Q1,                //R1下降沿清0,S11或S12下降沿置1 Pin4
  7.         //2组
  8.         input R2,                        //下降沿Q2清0 Pin5
  9.         input S2,                        //下降沿Q2置1 Pin6
  10.         output reg Q2,                //R2下降沿清0,S2下降沿置1        Pin7
  11.         //3组
  12.         input R3,                        //下降沿Q3清0 Pin10
  13.         input S31,                        //下降沿Q3置1 Pin11
  14.         input S32,                        //下降沿Q3置1 Pin12
  15.         output reg Q3,                //R3下降沿清0,S31或S32下降沿置1 Pin9
  16.         //4组
  17.         input R4,                        //下降沿Q4清0 Pin14
  18.         input S4,                        //下降沿Q4置1 Pin15
  19.         output reg Q4                //R4下降沿清0,S4下降沿置1 Pin13
  20. );

  21. wire S1 = S11 & S12;
  22. wire S3 = S31 & S32;

  23. initial {Q1,Q2,Q3,Q4} = 4'b0000;
  24. always @(negedge R1 or negedge S1) begin
  25.         if(!S1) begin
  26.                 Q1 <= 1'b1;
  27.         end else if(!R1) begin
  28.                 Q1 <= 1'b0;
  29.         end
  30. end

  31. always @(negedge R2 or negedge S2) begin
  32.         if(!S2) begin
  33.                 Q2 <= 1'b1;
  34.         end else if(!R2) begin
  35.                 Q2 <= 1'b0;
  36.         end
  37. end

  38. always @(negedge R3 or negedge S3) begin
  39.         if(!S3) begin
  40.                 Q3 <= 1'b1;
  41.         end else if(!R3) begin
  42.                 Q3 <= 1'b0;
  43.         end
  44. end

  45. always @(negedge R4 or negedge S4) begin
  46.         if(!S4) begin
  47.                 Q4 <= 1'b1;
  48.         end else if(!R4) begin
  49.                 Q4 <= 1'b0;
  50.         end
  51. end
  52. endmodule

  53. module main(
  54.         input clk,                        //时钟输入 Pin17
  55.         output out                        //8分频输出 Pin40
  56. );
  57. reg R,S;
  58. wire Q;
  59. hc279 U1(
  60.         //.R1(),
  61.         //.S11(),
  62.         //.S12(),
  63.         //.Q1(),

  64.         //.R2(),
  65.         //.S2(),
  66.         //.Q2(),

  67.         //.R3(),
  68.         //.S31(),
  69.         //.S32(),
  70.         //.Q3(),

  71.         .R4(R),
  72.         .S4(S),
  73.         .Q4(Q)
  74. );
  75. reg [2:0] j = 2'b0;
  76. assign out = Q;
  77. always @(posedge clk) begin
  78.         case(j)
  79.                 3'b000:{R,S} <= 2'b10;
  80.                 3'b001:{R,S} <= 2'b11;
  81.                 3'b010:{R,S} <= 2'b11;
  82.                 3'b011:{R,S} <= 2'b11;
  83.                 3'b100:{R,S} <= 2'b01;
  84.                 3'b101:{R,S} <= 2'b11;
  85.                 3'b110:{R,S} <= 2'b11;
  86.                 3'b111:{R,S} <= 2'b11;
  87.         endcase
  88.         j <= j + 3'b001;       
  89. end
  90. endmodule
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-26 03:59 , Processed in 1.775101 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表