查看: 8000|回复: 9

[提问] FPGA 设计加法器的verilog程序

[复制链接]
发表于 2012-5-11 22:59:46 | 显示全部楼层 |阅读模式
关键词: verilog , 加法器
2积分
我是刚开始学FPGA,现在对其verilog语言还不是很懂。下面题目:设计一个十进制的加法计数器,功能包含复位信号,置位信号,每个时钟的正跳变沿计数器加一。计数0-99即可。请帮忙给个参考的程序。
发表于 2012-5-11 22:59:47 | 显示全部楼层

  1. module bcd_counter(
  2.     rst,
  3.     clk,
  4.     qout
  5.     );

  6. input rst;
  7. input clk;
  8. output[7:0] qout;

  9. reg [3:0] low;
  10. reg [3:0] high;


  11. assign qout ={high,low};

  12. always @(posdage clk)
  13.     if(rst)
  14.         begin
  15.             dc <= 1'b0;
  16.             low <= 4'h0;
  17.             high <= 4'h0;
  18.         end
  19.     else
  20.         begin
  21.             case(low)
  22.             0,1,2,3,4,5,6,7,8:
  23.                 low <= low+4'h1;
  24.             9:
  25.                 begin
  26.                     low <= 4'h0;
  27.                     case(high)
  28.                         0,1,2,3,4,5,6,7,8:
  29.                             high <= high+4'h1;
  30.                         9:
  31.                             high <= 0;
  32.                     endcase
  33.                 end
  34.             endcase
  35.         end
  36. end module  
复制代码

评分

参与人数 2积分 +25 收起 理由
@︻$▅▆▇◤ + 24
幸福爱好 + 1 谢谢,我是正在学习,现在正上课学的,但是 ...

查看全部评分

发表于 2012-5-12 00:06:15 | 显示全部楼层
从00开始显示,一直到99,然后又从0开始,十进制用BCD编码

直接敲出的,没有编译,可能有语法错误。
这本质是一个BCD的加计数器,我故意用2个reg来保存(low和high),以便于你理解。
case语句,实现了类似真值表方式,逻辑直接易懂。
你也可以用if语句替代了,综合出来,是一样的。

正好,我最近也在设计CPU的Verilogn IP core
希望,我帮助的是一个FPGA未来的大牛,而不是一个毕业设计,阿门。
发表于 2012-5-12 09:22:41 | 显示全部楼层
毛片哥在搞cpu ip core?做芯片的仿真器?
发表于 2012-5-12 17:20:19 | 显示全部楼层
仿真器因为要支持多个core所以,我做了一个core generator,脚本转Verilog
写个脚本,自动翻译成Verilog的FSM部分的代码,其余部分代码就简单多了
发表于 2012-5-24 10:02:52 | 显示全部楼层
仿真器因为要支持多个core所以,我做了一个core generator,脚本转Verilog
写个脚本,自动翻译成Verilog的FSM部分的代码,其余部分代码就简单多了
McuPlayer 发表于 2012-5-12 17:20

小弟问一句,脚本转Verilog是什么东东?请大神指点···
发表于 2012-5-24 14:45:48 | 显示全部楼层
就是自己做个小软件,可以根据相关的设定,输出对应的Verilog代码,仅此而已
发表于 2012-5-25 12:46:58 | 显示全部楼层
回复7楼McuPlayer
是指只要在脚本中定义FSM的状态以及跳转条件,然后就可以自动生成Verilog代码吗?小弟还有一个地方不太明白,就是你说到的仿真器要支持多个核,这个怎么理解啊?
发表于 2012-5-25 13:55:42 | 显示全部楼层
你先自己多写几个内核,然后就像小学数学的合并同类项那样,进行总结就是了
发表于 2012-5-28 11:45:14 | 显示全部楼层
回复7楼McuPlayer
我记得Quartus里面有一个FSM生成工具,是不是类似于那个东东?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表