第6章vhdl设计应用实例内容摘要:

0); CARRY_OUT: OUT STD_LOGIC); END COMPONENT CNT10; COMPONENT REG32B IS 待调用的 32位锁存器端口定义 ... COMPONENT TESTCTL IS 待调用的测频控制信号发生器端口定义 第 6章 VHDL设计应用实例 ... SIGNAL SE, SC, SL: STD_LOGIC; SIGNAL S1, S2, S3, S4, S5, S6, S7, S7, S8:STD_LOGIC; SIGNAL SD: STD_LOGIC_VECTOR(31 DOWNTO 0); BEGIN U0: TESTCTL PORT MAP(CLK=CLK, TSTEN=SE, CLR_CNT=SC, LOAD=SL); U1: CNT10 PORT MAP(CLK=FSIN, CLR=SC, ENA=SE,CQ=SD (3 DOWNTO 0), CARRY_OUT=S1); 名字关联 第 6章 VHDL设计应用实例 U2: CNT10 PORT MAP(CLK=S1, CLR=SC, ENA=SE, CQ=SD (7 DOWNTO 4), CARRY_OUT=S2); U3: CNT10 PORT MAP(S2, SC, SE, SD (11 DOWNTO 8 ), S3); 位置关联 U4: CNT10 PORT MAP(S3, SC, SE, SD (15 DOWNTO 12), S4); U5: CNT10 PORT MAP(S4, SC, SE, SD (19 DOWNTO 16), S5); U6: CNT10 PORT MAP(S5, SC, SE, SD (23 DOWNTO 20), S6); U7: CNT10 PORT MAP(S6, SC, SE, SD (27 DOWNTO 24), S7); U8: CNT10 PORT MAP(S7, SC, SE, SD (31 DOWNTO 28), S8); U9: REG32B PORT MAP(LOAD=SL, DIN=SD(31 DOWNTO 0),DOUT=DOUT); END ARCHITECTURE ART; 第 6章 VHDL设计应用实例 数字秒表的设计 1.设计思路 设计一个计时范围为 ~ 1小时的数字秒表, 因此要有一个比较精确的计时基准信号,这里用周期为 1/100 s的计时脉冲。 对每一计数器需设置 CLR清零信号输入外,并在六个计数器设置时钟使能信号 ENA,即计时允许信号。 因此数字秒表可由一个分频器、四个十进制计数器 (1/100秒、 1/10秒、 1秒、1分 )以及两个六进制计数器 (10秒、 10分 )组成,如图。 第 6章 VHDL设计应用实例 图 4位二进制计数输出的最小显示值分别为: DOUT[3..0]1/100秒、 DOUT[7..4]1/10秒、 DOUT[11..8]1秒、 DOUT[15..12]10秒、DOUT[19..16]1分、 DOUT[23..20]10分。 第 6章 VHDL设计应用实例 图 数字秒表电路逻辑图 D O U T [ 1 1 . . 8 ]D O U T [ 7 . . 4 ]E N AC L RC L KC N T 1 0C A R R Y _ O U TC Q [ 3 . . 0 ]C L RC L KC L K N E W C L KC L K G E NE N AE N AC L RC L KC N T 1 0C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 1 0D O U T [ 3 . . 0 ]C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 6D O U T [ 2 3 . . 2 0 ]C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 1 0D O U T [ 1 9 . . 1 6 ]C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 6D O U T [ 1 5 . . 1 2 ]C A R R Y _ O U TC Q [ 3 . . 0 ]D O U T [ 2 3 . . 0 ]U0U1S1U2S2U3S3U6U5S5S4U4S0第 6章 VHDL设计应用实例 2. VHDL源程序 1) 3 MHz→ 100 Hz分频器的源程序 LIBRARY IEEE; USE ; ENTITY CLKGEN IS PORT (CLK: IN STD_LOGIC; 3 MHz信号输入 NEWCLK: OUT STD_LOGIC); 100 Hz计时时钟信号输出 END ENTITY CLKGEN; 第 6章 VHDL设计应用实例 ARCHITECTURE ART OF CLKGEN IS SIGNAL CNTER: INTEGER RANGE 0 TO 1029999; 十进制计数预制数 BEGIN PROCESS(CLK) IS 分频计数器 , 由 3 MHz时钟产生 100 Hz信号 BEGIN IS IF CLK’ EVENT AND CLK=39。 139。 THEN IF CNTER=1029999 THEN CNTER=0; 3 MHz信号变为 100 Hz, 计数常数为 30000 第 6章 VHDL设计应用实例 ELSE CNTER=CNTER+1; END IF; END IF; END PROCESS; PROCESS(CNTER) IS 计数溢出信号控制 BEGIN IF CNTER=1029999 THEN NEWCLK=39。 139。 ; ELSE NEWCLK=39。 039。 ; END IF; END PROCESS; END ARCHITECTURE ART; 第 6章 VHDL设计应用实例 2) 六进制计数器的源程序 (十进制计数器的源程序 ) LIBRARY IEEE; USE ; USE ; ENTITY CNT6 IS PORT (CLK: IN STD_LOGIC; CLR: IN STD_LOGIC; ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC ); 第 6章 VHDL设计应用实例 END ENTITY CNT6; ARCHITECTURE ART OF CNT6 IS SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK, CLR, ENA) IS BEGIN IF CLR=39。 139。 THEN CQI=0000; ELSIF CLK39。 EVENT AND CLK=39。 139。 THEN IF ENA=39。 139。 THEN IF CQI=“0101” THEN CQI=“0000”; 六进制为 0101 十进制计数器为 1001 ELSE CQI=CQI+39。 139。 ; END IF; END IF; 第 6章 VHDL设计应用实例 END IF; END PROCESS; PROCESS(CQI) IS BEGIN IF CQI=“ 0000” THEN CARRY_OUT=39。 139。 ; ELSE CARRY_OUT=39。 039。 ; END IF; END PROCESS; CQ=CQI; END ARCHITECTURE ART; 第 6章 VHDL设计应用实例 3) 数字秒表的源程序 LIBRARY IEEE; USE ; ENTITY TIMES IS PORT(CLR: IN STD_LOGIC; CLK: IN STD_LOGIC; ENA: IN STD_LOGIC; DOUT: OUT STD_LOGIC_VECTOR(23 DOWNTO 0)); END ENTITY TIMES; ARCHITECTURE ART OF TIMES IS 第 6章 VHDL设计应用实例 COMPONENT CLKGEN IS PORT(CLK: IN STD_LOGIC; NEWCLK: OUT STD_LOGIC); END COMPONENT CLKGEN; COMPONENT CNT10 IS PORT(CLK, CLR, ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC); 第 6章 VHDL设计应用实例 END COMPONENT CNT10; COMPONENT CNT6 IS PORT(CLK, CLR, ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC); END COMPONENT CNT6; SIGNAL S0: STD_LOGIC; SIGNAL S1, S2, S3, S4, S5: STD_LOGIC; BEGIN 第 6章 VHDL设计应用实例 U0: CLKGEN PORT MAP(CLK=CLK, NEWCLK=S0); 名字关联 U1: CNT10 PORT MAP(S0, CLR, ENA, DOUT(3 DOWNTO 0), S1); 位置关联 U2: CNT10 PORT MAP(S1, CLR, ENA, DOUT(7 DOWNTO 4), S2); U3: CNT10 PORT MAP(S2, CLR, ENA, DOUT(11 DOWNTO 8), S3); U4: CNT6 PORT MAP(S3, CLR, ENA, DOUT(15 DOWNTO 12), S4); U5: CNT10 PORT MAP(S4, CLR, ENA, DOUT(19 DOWNTO 16), S5); U6: CNT6 PORT MAP(S5, CLR, ENA, DOUT(23 DOWNTO 20)); END ARCHITECTURE ART; 第 6章 VHDL设计应用实例 MCS51单片机与 FPGA/CPLD总线接口逻辑设计 单片机具有性能价格比高 、 功能灵活 、 易于人机对话和良好的数据处理能力等特点; PLD则具有高速 、高可靠以及开发便捷规范等方面的优点 , 以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛应用。 单片机与 CPLD的接口方式一般有两种 , 即总线方式与独立方式。 第 6章。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。