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

从F到0 - From F to 0

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

Quartus Verilog HDL/FPGA 实现 CD4510/74HC4510 十进制BCD可预置值的可逆加减计数器

[复制链接]
发表于 2023-11-16 18:47:27 | 显示全部楼层 |阅读模式
main.png
  1. module cd4510(                        //十进制BCD可预置值的可逆加减计数器 VCC:Pin16 GND:Pin8
  2.         input [3:0] A,        //[4位宽]预置值输入 Pin:3,13,12,4
  3.         input CLK,        //上升沿触发 Pin15
  4.         input CI,        //进借位输入 Pin5
  5.         input UD,        //高电平:计数加 低电平:计数减 Pin10
  6.         input PE,        //高电平Q=T透明 低电平允许计数 Pin1
  7.         input MR,        //异步上升沿清零Q Pin9       
  8.         output reg [3:0] Q,        //[4位宽]计数输出 Pin:2,14,11,6
  9.         output CO                        //进借位输出 Pin7
  10. );
  11. initial Q = 4'd0;
  12. assign CO = (Q == (UD ? 4'b1001 : 4'b0000)) ? 1'b0 : 1'b1;
  13. wire [3:0] sum = UD ? ((Q == 4'd9) ? 4'd0 :(Q+4'd1)) : ((Q == 4'd0) ? 4'd9 : (Q-4'd1));
  14. wire [3:0] R = PE ? ~A : 4'd0;
  15. wire [3:0] S = PE ? A : 4'd0;
  16. generate
  17. genvar i;
  18.         for(i=0;i<4;i=i+1) begin:gen
  19.                 always @(posedge R[i] or posedge S[i] or posedge CLK or posedge MR) begin
  20.                         if(MR || R[i]) begin
  21.                                 Q[i] <= 1'b0;
  22.                         end else if(S[i]) begin
  23.                                 Q[i] <= 1'b1;
  24.                         end else if(CLK && !CI) begin
  25.                                 Q[i] <= sum[i];
  26.                         end
  27.                 end
  28.         end
  29. endgenerate
  30. endmodule

  31. module main(
  32.         input clk,                        //50Mhz输入 Pin17
  33.         output out                        //100分频 500Khz输出 Pin40
  34. );
  35. wire CO;
  36. cd4510 U1(
  37.         .A(4'd0),
  38.         .CLK(clk),
  39.         .CI(1'b0),
  40.         .UD(1'd1),
  41.         .PE(1'b0),
  42.         .MR(1'b0),
  43.         .Q(),
  44.         .CO(CO)
  45. );

  46. cd4510 U2(
  47.         .A(4'd0),
  48.         .CLK(clk),
  49.         .CI(CO),
  50.         .UD(1'd1),
  51.         .PE(1'b0),
  52.         .MR(1'b0),
  53.         .Q(),
  54.         .CO(out)
  55. );
  56. endmodule
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-27 21:02 , Processed in 1.435082 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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