第一范文网 - 专业文章范例文档资料分享平台

EDA技术实用教程课后答案 - 潘松-黄继业

来源:用户分享 时间:2025/9/3 11:24:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

5-5 分频方法有多种,最简单的是二分频和偶数分频甚至奇数分频,这用触发器或指定计数模的计

数器即可办到。但对于现场实现指定分频比或小数分频率的分频电路的设计就不是很简单了。

试对例3-20的设计稍作修改,将其进位输出COUT与异步加载控制LOAD连在一起,构成一个自动加载型16位二进制数计数器,也即一个16位可控的分频器,给出其VHDL表述,并说明工作原理。设输入频率fi=4MHz,输出频率fo=516.5±1Hz(允许误差±0.1Hz),16位加载数值是多少? --解:3-9 16位数控分频器(可进行奇偶数分频) LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF16 IS

PORT(CLK : IN STD_LOGIC;

D : IN STD_LOGIC_VECTOR(15 DOWNTO 0); FOUT : OUT STD_LOGIC); END ENTITY DVF16;

ARCHITECTURE one OF DVF16 IS SIGNAL FULL : STD_LOGIC; BEGIN

P_REG: PROCESS(CLK)

VARIABLE CNT8 : STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN

IF CLK'EVENT AND CLK = '1' THEN IF CNT8 = \

CNT8 := D-1;--当CNT8计数归0时,预置CNT8=D-1;

--计数范围(D=n):n-1~n/2取整(n=10:9\\8\\7\\6\\5计数,前后半周期相同) FULL <= '1';--同时使溢出标志信号FULL输出为高电平

--(n=11:10\\9\\8\\7\\6\\5计数,前比后半周期多一个时钟) ELSIF CNT8 = ('0' & D(15 DOWNTO 1)) THEN

CNT8 :=('0' & D(15 DOWNTO 1))-1;--当CNT8=n/2取整时,预置CNT8=D/2取整-1; --计数范围(D=n):n/2取整~0(n=10:4\\3\\2\\1\\0计数) FULL <= '1'; --同时使溢出标志信号FULL输出为高电平 (n=11:4\\3\\2\\1\\0计数) ELSE CNT8 := CNT8 - 1; --否则继续作加1计数

FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF;

END PROCESS P_REG ; P_DIV: PROCESS(FULL)

VARIABLE CNT2 : STD_LOGIC; BEGIN

IF FULL'EVENT AND FULL = '1' THEN

CNT2 := NOT CNT2;--如果溢出标志信号FULL为高电平,D触发器输出取反 IF CNT2 = '1' THEN FOUT <= '1'; ELSE FOUT <= '0';

END IF; END IF;

END PROCESS P_DIV;

END ARCHITECTURE one;

5-6 分别给出图3-20所示的六个RTL图的VHDL描述,注意其中的D触发器和锁存器的表述。

图3-20 RTL图

图3-20 RTL图(a) --解:实现图3-20(a)RTL图的VHDL程序t3_12_a.vhd LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_a IS

PORT (CL,CLK0: IN STD_LOGIC; OUT1: OUT STD_LOGIC); END ENTITY t3_12_a;

ARCHITECTURE sxdl OF t3_12_a IS ----时序电路sxdl SIGNAL Q : STD_LOGIC; BEGIN

PROCESS(CLK0) BEGIN

IF CLK0'EVENT AND CLK0='1' THEN --检测时钟上升沿 Q <= NOT(Q OR CL); END IF;

END PROCESS; OUT1 <= NOT Q;

END ARCHITECTURE sxdl;

图3-20 RTL图(b)

--解:实现图3-20(b)RTL图的VHDL程序t3_12_b.vhd LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_b IS

PORT (A,B,C,D: IN STD_LOGIC; Y: OUT STD_LOGIC); END ENTITY t3_12_b;

ARCHITECTURE sxdl OF t3_12_b IS ----时序电路sxdl SIGNAL AB,CD,ABCD : STD_LOGIC; BEGIN

PROCESS(A,B,C,D,AB,CD,ABCD) BEGIN

AB<=A OR B; CD<=C AND D;

ABCD<=AB XOR CD;

CASE AB IS --类似于真值表的case语句 WHEN '0' => Y <= A;

WHEN '1' => Y <= ABCD; WHEN OTHERS =>NULL ; END CASE; END PROCESS;

END ARCHITECTURE sxdl;

图3-20 RTL图(c)

--解1:实现图3-20(c) RTL图的VHDL程序mux21a.vhd底层设计描述。 -- 用(WHEN_ELSE)实现2选1多路选择器程序(mux21a.vhd)。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21a IS

PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC); END ENTITY mux21a;

ARCHITECTURE one OF mux21a IS BEGIN

y<=a WHEN s='0' ELSE b; END ARCHITECTURE one;

--解2:实现图3-20(c)RTL图的VHDL程序DFF6.vhd底层设计描述。 -- 电平触发D型触发器程序(DFF6.vhd) LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF6 IS

PORT(CLK: IN STD_LOGIC; D: IN STD_LOGIC; Q:OUT STD_LOGIC); END;

ARCHITECTURE bhv OF DFF6 IS BEGIN

PROCESS(CLK,D) BEGIN

IF CLK='1'

THEN Q<=D; END IF; END PROCESS; END bhv;

--解3:实现图3-20(c)RTL图的VHDL程序t3_12_c.vhd顶层设计描述。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_c IS

PORT(D1,D2,CLK : IN STD_LOGIC; Q : OUT STD_LOGIC); END ENTITY t3_12_c;

ARCHITECTURE one OF t3_12_c IS

COMPONENT mux21a --调用2选1多路选择器声明语句 PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC);

EDA技术实用教程课后答案 - 潘松-黄继业.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3qtqo1f11u38ccg96mxg8n6j4879hw00bw5_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top