正在加载图片...
在p709表8-15中显示了余3码计数器,与74163相比,变 化为:只有10个状态(从3到12) 在状态12时输出进位信号 程序的改变只有两句: elseif (ent and enp)'I and (iq=12)then iq<=0011 if (iq=12)and(ent='I")then rco<=I 前一句指定加法循环的起点和终点;后一句指定进位信号 采用类似方案很容易构成任意进制的计数器: 计数器设计的一个关键问题在于电路综合的效果,很多 综合工具会将计数器的每一步(加1)作为一个加法器进行综 合,导致庞大的组合电路;为了避免出现这种情况,通常只 用上述方式构成小规模计数器,而对大规模计数器则采用结 构设计方式,由小规模计数器级连构成 例:16位加法二进制计数器的结构设计(模65536) 采用4个74163级连构成 library iee use ieee std logic 1164. all use ieee std logic arith. all entity kcount16 port( clk, clrl, ldl, en: in std log d: in unsigned (15 downto 0) q: out unsigned (15 downto 0) rco: out std logic)在 p.709 表 8-15 中显示了余 3 码计数器,与 74163 相比,变 化为:只有 10 个状态(从 3 到 12) 在状态 12 时输出进位信号; 程序的改变只有两句: elseif (ent and enp)='1' and (iq=12) then iq<="0011"; if (iq=12) and (ent='1') then rco<='1'; 前一句指定加法循环的起点和终点;后一句指定进位信号; 采用类似方案很容易构成任意进制的计数器; 计数器设计的一个关键问题在于电路综合的效果,很多 综合工具会将计数器的每一步(加 1)作为一个加法器进行综 合,导致庞大的组合电路;为了避免出现这种情况,通常只 用上述方式构成小规模计数器,而对大规模计数器则采用结 构设计方式,由小规模计数器级连构成; 例: 16 位加法二进制计数器的结构设计(模 65536) 采用 4 个 74163 级连构成 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity kcount16 is port ( clk,clrl,ldl,en: in std_logic; d: in unsigned (15 downto 0); q: out unsigned (15 downto 0); rco:out std_logic);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有