FPGA 设计加法器的verilog程序

2012年05月11日 22:59    发布者:幸福爱好
我是刚开始学FPGA,现在对其verilog语言还不是很懂。下面题目:设计一个十进制的加法计数器,功能包含复位信号,置位信号,每个时钟的正跳变沿计数器加一。计数0-99即可。请帮忙给个参考的程序。

网友评论

McuPlayer 2012年05月11日

module bcd_counter(
    rst,
    clk,
    qout
    );

input rst;
input clk;
output qout;

reg low;
reg high;


assign qout ={high,low};

always @(posdage clk)
    if(rst)
        begin
            dc <= 1'b0;
            low <= 4'h0;
            high <= 4'h0;
        end
    else
        begin
            case(low)
            0,1,2,3,4,5,6,7,8:
                low <= low+4'h1;
            9:
                begin
                    low <= 4'h0;
                    case(high)
                        0,1,2,3,4,5,6,7,8:
                            high <= high+4'h1;
                        9:
                            high <= 0;
                    endcase
                end
            endcase
        end
end module  
McuPlayer 2012年05月12日
从00开始显示,一直到99,然后又从0开始,十进制用BCD编码

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

正好,我最近也在设计CPU的Verilogn IP core
希望,我帮助的是一个FPGA未来的大牛,而不是一个毕业设计,阿门。
dddg 2012年05月12日
毛片哥在搞cpu ip core?做芯片的仿真器?
McuPlayer 2012年05月12日
仿真器因为要支持多个core所以,我做了一个core generator,脚本转Verilog
写个脚本,自动翻译成Verilog的FSM部分的代码,其余部分代码就简单多了
firecnmfly 2012年05月24日
仿真器因为要支持多个core所以,我做了一个core generator,脚本转Verilog
写个脚本,自动翻译成Verilog的FSM部分的代码,其余部分代码就简单多了
McuPlayer 发表于 2012-5-12 17:20 http://www.eechina.com/images/common/back.gif
小弟问一句,脚本转Verilog是什么东东?请大神指点···
McuPlayer 2012年05月24日
就是自己做个小软件,可以根据相关的设定,输出对应的Verilog代码,仅此而已
firecnmfly 2012年05月25日
回复7楼McuPlayer:
是指只要在脚本中定义FSM的状态以及跳转条件,然后就可以自动生成Verilog代码吗?小弟还有一个地方不太明白,就是你说到的仿真器要支持多个核,这个怎么理解啊?
McuPlayer 2012年05月25日
你先自己多写几个内核,然后就像小学数学的合并同类项那样,进行总结就是了
firecnmfly 2012年05月28日
回复7楼McuPlayer:
我记得Quartus里面有一个FSM生成工具,是不是类似于那个东东?