打印

FPGA菜鸟求一个VHDL编写的10进制加减计数器程序!

[复制链接]
2951|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dreamweaver|  楼主 | 2010-3-22 18:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dreamweaver 于 2010-3-22 18:39 编辑

详细说明如下:可进行加减计数功能,计数范围0000——9999,即4位10进制计数。不需要预置数和使能端,但要有reset清零。

最好是4个计数器串联,不是单独编程1个大的计数器。我已经编号了一个一位的(即0-9的),但不会串联出4位的,我的程序如下,恳请高手指导!

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity counter_up_down_10 is
port(reset,ctrl,clk:in std_logic;
     cout: out std_logic_vector(3 downto 0);
     jin,jie: out std_logic);
end counter_up_down_10;

architecture c10 of counter_up_down_10 is
signal temp:std_logic_vector(3 downto 0);
begin
process(clk,reset,ctrl)
begin
if reset='1'then
temp<="0000";
jin<='0';
jie<='0';
elsif( clk'event and clk='1' )then
if ctrl='1'then
  if (temp=9)then
  temp<="0000";
  jin<='1';
  else
  temp<=temp+1;
  jin<='0';
  end if;
else
  if (temp=0) then
  temp<="1001";
  jie<='1';
  else
  temp<=temp-1;
  jie<='0';
  end if;
end if;
end if;
end process;
cout<=temp;
end c10;
其中reset 为复位端,ctrl 加减控制端(=1加法,=0减法),jin进位,jie借位。

相关帖子

沙发
sassos| | 2010-3-24 16:52 | 只看该作者
恩 一位的没有问题.
把cout,jin,jie改成buffer型的,作为十位的输入继续

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

1

粉丝