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

CPLD题库(4)

来源:网络收集 时间:2018-12-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

五、阅读程序,将实体部分补充完整,并画出输出信号y的时序图 (20分) 1、a和b的取值范围为0-15 LIBRARY ieee;

USE ieee.std_logic_1164.all; entity v13 is

end v13;

architecture example OF v13 is begin

process(a,b) begin

if(a=b) then q<=\ elsif(a>b) then q<=\ else

q<=\ end if; end process; end example;

port(a,b: in std_logic_vector(3 downto 0); q: out std_logic_vector(2 downto 0));

2、

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; ENTITY bcd7 IS

END bcd7;

ARCHITECTURE abc OF bcd7 IS

SIGNAL din : STD_LOGIC_vector(3 downto 0); SIGNAL dout : STD_LOGIC_vector(6 downto 0); BEGIN

din<=d3&d2&d1&d0; process(din) begin

case din is

when \

when \ when \ when \ when \ when \ when \ when \ when \ when \ when others => dout<=\ end case; end process; a<=dout(6); b<=dout(5); c<=dout(4); d<=dout(3); e<=dout(2); f<=dout(1); g<=dout(0); END abc;

--display 1 --display 2 --display 3 --display 4 --display 5 --display 6 --display 7 --display 8 --display 9 --display E

PORT(

d3,d2,d1,d0 : IN STD_LOGIC; a,b,c,d,e,f,g : OUT STD_LOGIC);

3、1位十进制计数器的VHDL描述,试补充完整。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS

PORT ( CLK : IN STD_LOGIC ;

Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ; END CNT10;

ARCHITECTURE bhv OF CNT10 IS

SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS (CLK) BEGIN

IF CLK'EVENT AND CLK = '1' THEN -- 边沿检测 IF Q1 > 10 THEN

Q1 <= (OTHERS => '0'); -- 置零 ELSE

Q1 <= Q1 + 1 ; -- 加1 END IF; END IF; END PROCESS ; Q <= Q1; END bhv;

4、多路选择器的VHDL描述,试补充完整。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY bmux IS

PORT ( sel : IN STD_LOGIC;

A, B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)) ; END bmux;

ARCHITECTURE bhv OF bmux IS BEGIN

y <= A when sel = '1' ELSE B; END bhv;

六、编程

1、请用With_Select_Then或When_Else分别编写一个4选1的数据选择器,如右图。要求:输入信号(1位)为a,b,c,d,选择信号(2位)为s,输出信号为x,当s为“00”输出a,“01”输出b,“10”输出c,其他情况输出d,使用STD_LOGIC数据类型。 LIBRARY ieee;

USE ieee.std_logic_1164.all; ENTITY mux IS

PORT ( a,b,c,d : IN STD_LOGIC;

s: IN STD_LOGIC_VECTOR(1 DOWNTO 0); x : OUT STD_LOGIC); END mux;

ARCHITECTURE example OF mux IS BEGIN

WITH s SELECT

x <= a WHEN \ b WHEN \ c WHEN \ d WHEN OTHERS; END example;

2、带计数使能的异步复位计数器

输入端口: clk 时钟信号

rst 异步复位信号 en 计数使能 load 同步装载

data (装载)数据输入,位宽为10

输出端口: q 计数输出,位宽为10 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT1024 IS

PORT ( CLK, RST, EN, LOAD : IN STD_LOGIC;

DATA : IN STD_LOGIC_VECTOR (9 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (9 DOWNTO 0) ); END CNT1024;

ARCHITECTURE ONE OF CNT1024 IS BEGIN

PROCESS (CLK, RST, EN, LOAD, DATA)

VARIABLE Q1 : STD_LOGIC_VECTOR (9 DOWNTO 0); BEGIN

IF RST = '1' THEN

Q1 := (OTHERS => '0');

ELSIF CLK = '1' AND CLK'EVENT THEN IF LOAD = '1' THEN Q1 := DATA; ELSE

IF EN = '1' THEN Q1 := Q1 + 1; END IF; END IF; END IF; Q <= Q1; END PROCESS; END ONE;

3、用VHDL语言编写完整的同步复位D触发器。要求:输入信号为cp,d,rst,输出为q,下降沿触发,rst高电平有效。 LIBRARY ieee;

use ieee.std_logic_1164.all; entity v15 is

port(cp,d,rs: in std_logic; q: out std_logic); end v15;

architecture behave of v15 is begin

process(cp) begin

if (cp'event and cp='0') then if rst='1' then q<='0'; else

q<=d; end if; end if; end process; end behave;

4、用VHDL语言编写完整的3-8译码器。输入信号用a、b、c表示,定义为std_logic,输出用y表示,定义为std_logic_vector,写出完整的程序。

LIBRARY ieee;

USE ieee.std_logic_1164.all; entity v12 is

port(a,b,c: in std_logic;

y: out std_logic_vector(7 downto 0)); end v12;

architecture example OF v12 is

signal indata: std_logic_vector(2 downto 0); begin

indata<=c&b&a; process(indata) begin

case indata is

when \ when \ when \ when \ when \ when \ when \ when \ when others=>NULL; end case; end process; end example;

四.(30分)设计:8选1数据选择器,用VHDL写出源程序。其中:D7—D0是数据输入端,S2、S1和S0是控制输入端,Y是数据输出端。当S2、S1、S0=“000”时,D0数据被选中,输出Y=D0;当S2、S1、S0=“001”时,D1数据被选中,输出Y=D1,以次类推。 程序填空题(类似)

下面程序是带异步复位、同步置数和移位使能的8位右移移位寄存器的VHDL描述,试补充完整。 library ieee;

use IEEE.STD-LOGIC-1165 .all; entity sreg8b is

port ( clk, rst : in std_logic; load,en : in std_logic;

din : in STD_LOGIC_VECTOR (7 downto 0); qb : out std_logic); end sreg8b;

architecture behav of SREG8B is

signal reg8 : std_logic_vector( 7 downto 0); begin

process (clk, RST , load, en) begin

if rst='1' then ――异步清零 reg8 <= (OTHERS=>'0') ;

elsif CLK'EVENT AND CLK='1' then ――边沿检测 if load = '1' then ――同步置数 reg8 <= din;

elsif en='1' then ――移位使能 reg8(6 downto 0) <= reg8(7 downto 1) ;

end if; __end if ____; end process;

qb <= _reg8(0)___; ――输出最低位 end behav; 序列检测答案 library ieee;

use ieee.std_logic_1164.all; entity se is

port(din,clk,clr : in std_logic; ab : out std_logic); end se;

architecture behav of se is

type fsm_st is (s0,s1,s2,s3,s4); signal cstate,nstate : fsm_st; begin

reg:process(clr,clk) begin

if clr='1' then cstate <= s0; --ab <= '0'; elsif clk = '1' and clk'event then cstate <= nstate; end if; end process;

com:process(cstate,din) begin

case cstate is

when s0 => if din = '1' then nstate <= s1; else nstate <= s0; end if; ab <= '0';

when s1 => if din = '1' then nstate <= s2; else nstate <= s0; end if; ab <= '0';

when s2 => if din = '1' then nstate <= s2; else nstate <= s3; end if; ab <= '0';

when s3 => if din = '1' then nstate <= s4; else nstate <= s0; end if; ab <= '0';

when s4 => if din = '1' then nstate <= s1; else nstate <= s0; end if; ab <= '1'; end case; end process; end behav;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库CPLD题库(4)在线全文阅读。

CPLD题库(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/392094.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: