K述列 514位加法计教器的ⅥHDL描述 5.1.34位加法计数器的另一种表达方式 Jame valu 500 Ons 1.0us 1.5us 2.OuS 2.5us 3.0us 3.5us CLK O 0|H回1x2X3X4X5X6x78X9 XAKBXCXDXEXFX0X①X2 03 2 Q1 -o Q0 图5-24位加法计数器工作时序
KX 康芯科技 5.1.3 4位加法计数器的另一种表达方式 5.1 4位加法计数器的VHDL描述 图5-2 4位加法计数器工作时序
K述列 514位加法计教器的ⅥHDL描述 5.1.34位加法计数器的另一种表达方式 数据类型: 整数类型Ⅰ NTEGER、自然数类型、正整数类型 POSITIVE。 ⊙ BUFFERI模式: BUFFER表达特定端口的特定功能,并非是特定的端口结构。 重载函数: 程序包 STD LOGIC UNSIGNED含有加号(+)和其他运算符的重 载函数。 计数器结构: 加法计数由两部分组成:加1组合电路和寄存器时序电路
KX 康芯科技 5.1.3 4位加法计数器的另一种表达方式 5.1 4位加法计数器的VHDL描述 数据类型: 整数类型INTEGER、自然数类型、正整数类型POSITIVE。 BUFFER模式: BUFFER表达特定端口的特定功能,并非是特定的端口结构。 重载函数: 程序包STD_LOGIC_UNSIGNED含有加号(+)和其他运算符的重 载函数。 计数器结构: 加法计数由两部分组成:加1组合电路和寄存器时序电路
K述列 5.2不同工作方式的时序电路设计 52.1相关语法 1.变量 2.省略赋值操作符( OTHERS=>X) 为了简化表达才使用短语“( OTHERS=>X)”,这是一个省略 赋值操作符,它可以在较多位的位矢量赋值中作省略化的赋值 ,如以下语句 SIGNAL d1 STD LOGIC VECTOR (4 DOWNTO 0)i VARIABLE al: STD LOGIC VECTOR (15 DOWNTo 0)i d1<=(O班ERS=>0');a1:=( OTHERS=>0");
KX 康芯科技 1. 变量 2. 省略赋值操作符(OTHERS=>X) 为了简化表达才使用短语“(OTHERS=>X)” ,这是一个省略 赋值操作符,它可以在较多位的位矢量赋值中作省略化的赋值 ,如以下语句: SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); ... d1 <= (OTHERS=>'0'); a1 := (OTHERS=>'0') ; 5.2 不同工作方式的时序电路设计 5.2.1 相关语法
522带有复位和时钟使能的10进制计数器 K 康芯科技 工 BRARY工EEE USE IEEE STD LOGIC 1164.ALL 【例5-3】 USE IEEE STD LOGIC UNSIGNED. AlLi ENTITY CNT10工s PORT (CLK, RST, EN IN STD LOGIC C OUT STD LOGIC VECTOR (3 DOWNTo 0) cOUT: OUT STD LOG工C) END CNT10 ARCHITECTURE behav OF CNT10 IS BEG工N PROCESS (CLK, RST, EN) VARIABLE CQI STD LOGIC VECTOR(3 DOWNTO 0) BEGIN 工FRST=1! THEN CQ工:=( (OTHERS=>!0');--计数器复位 ELSIF CLK EVENT AND CLK=1 THEN 检测时钟上升沿 工EEN 1 THEN 检测是否允许计数 工FcQI<"1001" THEN CQI:=CQ工+1;--允许计数 ELSE CQI:=( OTHERS=>01);--大于9,计数值清零 END IE END工E; END工F; 工FcQI=1001 HEN CO<=1;--计数大于9,输出进位信号 ELSE COUT 0 END IE cQ<=cg工 将计数值向端口输出 END PROCESS ENd behav;
KX 5.2.2 带有复位和时钟使能的10进制计数器 康芯科技 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数 IF CQI < "1001" THEN CQI := CQI + 1; --允许计数 ELSE CQI := (OTHERS =>'0');--大于9,计数值清零 END IF; END IF; END IF; IF CQI = "1001" THEN COUT <= '1'; --计数大于9,输出进位信号 ELSE COUT <= '0'; END IF; CQ <= CQI; --将计数值向端口输出 END PROCESS; END behav; 【例5-3】
K 康芯科技 5.2不同工作方式的时序电路设计 522带有复位和时钟使能的10进制计数器 un1 en 1 叩们Q们}题B R cqi_5[3. 0) CQ[3. 0) -[3: 0 un1_Ca_10:3 图5-3例5-3的RTL电路
KX 康芯科技 5.2 不同工作方式的时序电路设计 5.2.2 带有复位和时钟使能的10进制计数器 图5-3 例5-3的RTL电路