EDA技术实用教程 第5章 VHDL设计进阶
第5章 VHDL设计进阶 EDA技术实用教程
K述列 5.14位加法计数景的VHD描述 5.1.14位加法计数器 【例5-1】 ENTITY CNT4 IS PORT(CIK:工NB工T Q: BUFFER INTEGER RANGE 15 doWNto 0)i END ARCHI TECTURE bhV OF CNT4 IS BEG工N PROCESS CLK) BEG工N TF CLK EVENT AND CIK =1 THEN Q<=Q+1; END工E; END PROCESS END bhv;
KX 康芯科技 5.1 4位加法计数器的VHDL描述 5.1.1 4位加法计数器 【例5-1】 ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER RANGE 15 DOWNTO 0 ) ; END ; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q <= Q + 1 ; END IF; END PROCESS ; END bhv;
K述列 514位加法计教器的ⅥHDL描述 5.1.2整数、自然数和正整数数据类型 整数常量的书写方式示例如下: 十进制整数 0 十进制整数 35 十进制整数 10E3 十进制整数 16#D9# 十六进制整数 8#720# 八进制整数 2#11010010#二进制整数
KX 康芯科技 5.1.2 整数、自然数和正整数数据类型 整数常量的书写方式示例如下: 1 十进制整数 0 十进制整数 35 十进制整数 10E3 十进制整数 16#D9# 十六进制整数 8#720# 八进制整数 2#11010010# 二进制整数 5.1 4位加法计数器的VHDL描述
K述列 5.1.34位加法计数器的另一种表达方式 【例52】 工工 BRARY工ER; USE IEEE STD LOGIC 1164.ALL i UsE工EEE. STD LOG工cUNs工GNED.ATL ENTITY CN4工s PORT( CLK: IN STD LOGIC i OUT STD LOGIC VECTOR (3 DOWNTo 0) END i ARcH工 TECtURE bhy OF CNT4工s SIGNAL Q1: STD LOGIC VECTOR (3 DOWNTo 0) BEGIN PROCESS (CLK) BEG工N 工 E CLR" EVENT AND CLE 1 Q1<=Q1+1 END工F; Q<=Q1; END PROCESS i ENd bhv
KX 康芯科技 5.1.3 4位加法计数器的另一种表达方式 【例5-2】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q1 <= Q1 + 1 ; END IF; Q <= Q1 ; END PROCESS ; END bhv;
K述列 5.1.34位加法计数器的另一种表达方式 4位加法计数器由两大部分组成: 组合电路加1器 4位锁存器 CLK 输出反馈 un2_a2932] 锁存信号 Q[30 图5-14位加法计数器RTL电路
KX 康芯科技 5.1.3 4位加法计数器的另一种表达方式 4位加法计数器由两大部分组成: 图5-1 4位加法计数器RTL电路
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 d10');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 '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 检测是否允许计数 工FcQI01);--大于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 '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电路