跪求好人救急~~~用VHDL设计4位二进制同步加减法可逆计数器。

跪求好人救急~~~用VHDL设计4位二进制同步加减法可逆计数器,输入端有:clr,load,D3~D0,加减法控制器updown; 输出端: Q3-Q0,进位输出C0,借位输出B0;最好能对源码每一部分简略说明一下哈。总共20财富,全给你了!!!!

第1个回答  2011-10-15
这是四位的二进制加法计数器,cq是你的q,进位cout是你的c,加减法其实很简单,加一个if语句即可,减法其实也是加法,不过二进制的减法是该数的补码加一。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity exp_cnt2 is
port(clk,clrn,en:in std_logic;
cq:out std_logic_vector(3 downto 0);
cout:out std_logic);
end exp_cnt2;
architecture bhv of exp_cnt2 is
signal cqi:std_logic_vector(3 downto 0);
begin
process(en,clk,clrn,cqi)
begin
if clrn='0' then
cqi<="0000";
elsif clk'event and clk='1' then
if en='1' then
if cqi<1 then
cqi<=cqi+1;
else
cqi<="0000";
end if;
end if;
end if;
if cqi=1 then
cout<='1';
else
cout<='0';
end if;
cq<=cqi;
end process;
end bhv;追问

这位大哥,能不能吧 clr,load,D3~D0,加减法控制器updown,借位输出B0,都帮我融入到程序里啊,还有减法过程,实在不会呢。。。您就好人做到底一起写了吧。。。感激不尽啊

第2个回答  2011-10-14
北交的吧?追问

(⊙o⊙)…你不会是和老师一伙的吧。。。

追答

别问人了,就咱们数电书上那个74161计数器的vhdl实现,把CTT和CTP合并成一个updown,然后改一下别的输入输出名,再加一个借位输出,稍微改造下就行了,哈哈……

本回答被提问者采纳