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

从F到0 - From F to 0

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

Quartus Verilog HDL/FPGA 实现 74HC390/74LS390 双路二分频与五分频的十进制计数器

[复制链接]
发表于 2023-4-25 09:08:35 | 显示全部楼层 |阅读模式
main.png
  1. module hc390_son(                        //74HC390子模块
  2.         input CKA,                                //时钟A (下降沿触发:Q[0]翻转)
  3.         input CKB,                                //时钟B (下降沿触发:Q[3:1]计数,范围:0~4)
  4.         input MR,                                //异步上升沿高电平清零
  5.         output reg [3:0] Q        //[4位宽] 分频输出Q
  6. );
  7. initial Q = 4'b0000;
  8. always @(negedge CKA or posedge MR) begin
  9.         Q[0] <= MR ? 1'b0 : !Q[0];
  10. end

  11. always @(negedge CKB or posedge MR) begin
  12.         if(MR) begin
  13.                 Q[3:1] <= 3'b000;
  14.         end else begin
  15.                 if(Q[3:1] >= 3'b100) begin
  16.                         Q[3:1] <= 3'b000;               
  17.                 end else begin
  18.                         Q[3:1] <= Q[3:1] + 3'b001;               
  19.                 end
  20.         end
  21. end
  22. endmodule

  23. module hc390(                                //双路二分频与五分频的十进制计数器 VCC:Pin16 GND:Pin8
  24.         //A组
  25.         input CKA_A,                        //时钟A (下降沿触发:Q[0]翻转) Pin1
  26.         input CKB_A,                        //时钟B (下降沿触发:Q[3:1]计数,范围:0~4) Pin4
  27.         input MR_A,                                //异步上升沿高电平清零 Pin2
  28.         output [3:0] Q_A,                //[4位宽] 分频输出Q Pin:7,6,5,3
  29.         //B组
  30.         input CKA_B,                        //Pin15
  31.         input CKB_B,                        //Pin12
  32.         input MR_B,                                //Pin14
  33.         output [3:0] Q_B                //Pin:9,10,11,13
  34. );

  35. hc390_son A(
  36.         .CKA(CKA_A),
  37.         .CKB(CKB_A),
  38.         .MR(MR_A),
  39.         .Q(Q_A)
  40. );

  41. hc390_son B(
  42.         .CKA(CKA_B),
  43.         .CKB(CKB_B),
  44.         .MR(MR_B),
  45.         .Q(Q_B)
  46. );

  47. endmodule

  48. module main(
  49.         input clk,                        //有源晶振时钟输入 Pin17
  50.         output out                        //100分频输出 Pin40
  51. );
  52. wire [3:0] QA;
  53. wire [3:0] QB;

  54. hc390 U1(
  55.         .CKA_A(QA[3]),
  56.         .CKB_A(clk),
  57.         .MR_A(1'b0),
  58.         .Q_A(QA),

  59.         .CKA_B(QB[3]),
  60.         .CKB_B(QA[0]),
  61.         .MR_B(1'b0),
  62.         .Q_B(QB)
  63. );

  64. assign out = QB[0];
  65. endmodule
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-26 04:41 , Processed in 1.220069 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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