设为首页收藏本站帮助中心
查看: 48|回复: 0
收起左侧

Quartus Verilog HDL/FPGA 实现 74HC591/74LS591 集电极(漏极)开路的八位二进制计数器

[复制链接]
发表于 2024-1-19 19:49:28 | 显示全部楼层 |阅读模式
main.png
  1. module hc591(        //集电极(漏极)开路的八位二进制计数器 VCC:Pin16 GND:Pin8
  2.         input CCLK,        //上升沿计数器+1 Pin11
  3.         input CCLKEN,//低电平使能CCLK 高电平禁止计数 Pin12
  4.         input CCLR,        //异步下降沿(低电平) 清零计数器 Pin10
  5.         input RCLK,        //上升沿将计数器的值装入寄存器 Pin13
  6.         input E,                //低电平使能Q输出寄存器的值,高电平高阻 Pin14
  7.         output RCO,        //计数器等于255则输出低电平,其余高电平 Pin9
  8.         output [7:0] Q        //[8位宽] 输出Q Pin:7,6,5,4,3,2,1,15
  9. );

  10. reg [7:0] i = 8'd0;        //计数器
  11. reg [7:0] j = 8'd0;        //寄存器

  12. assign RCO = !(&i);
  13. genvar l;
  14. generate
  15. for(l=0;l<8;l=l+1) begin:gen
  16.         assign Q[l] = (E || j[l]) ? 1'bz : 1'b0;
  17. end
  18. endgenerate

  19. always @(posedge CCLK or negedge CCLR) begin
  20.         if(!CCLR) begin
  21.                 i <= 8'd0;
  22.         end else if(!CCLKEN) begin
  23.                 i <= i + 8'd1;
  24.         end
  25. end

  26. always @(posedge RCLK) begin
  27.         j <= i;
  28. end

  29. endmodule

  30. module main(
  31.         input clk,
  32.         output out
  33. );

  34. hc591 hc591(
  35.         .CCLK(clk),
  36.         .CCLKEN(1'b0),
  37.         .CCLR(1'b1),
  38.         .RCLK(),
  39.         .E(1'b0),
  40.         .RCO(out),
  41.         .Q()
  42. );

  43. endmodule
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则