现代数字系统设计结业作业(EDA技术)
描叙一、libraryieee;useIEEE.std_logic_1164.all;useIEEE.std_logic_unsigned.all;useIEEE.std...
描叙一、
library ieee;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;
entity counter_t is
generic(width : integer := 8);
port(data : in std_logic_vector (width-1 downto 0);
load, en, clk, rst : in std_logic;
q : out std_logic_vector (width-1 downto 0));
end counter_t;
architecture behave of counter_t is
signal count : std_logic_vector (width-1 downto 0);
begin
process(clk, rst)
begin
if rst = '1' then
count <=(others=>'0'); --清零
elsif CLK'EVENT AND CLK='1' then --上升沿检测
if load = '1' then
count <= data;
ELSIF en = '1' then
count <= count + 1;
END IF;
end if;
end process;
Q<=COUNT;
end behave;
要求:
(一)基本要求:
1、分析上面VHDL代码所实现的电路功能;
2、分析各语句的功能;
如果高人有答案请发到625234430@qq.com 展开
library ieee;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;
entity counter_t is
generic(width : integer := 8);
port(data : in std_logic_vector (width-1 downto 0);
load, en, clk, rst : in std_logic;
q : out std_logic_vector (width-1 downto 0));
end counter_t;
architecture behave of counter_t is
signal count : std_logic_vector (width-1 downto 0);
begin
process(clk, rst)
begin
if rst = '1' then
count <=(others=>'0'); --清零
elsif CLK'EVENT AND CLK='1' then --上升沿检测
if load = '1' then
count <= data;
ELSIF en = '1' then
count <= count + 1;
END IF;
end if;
end process;
Q<=COUNT;
end behave;
要求:
(一)基本要求:
1、分析上面VHDL代码所实现的电路功能;
2、分析各语句的功能;
如果高人有答案请发到625234430@qq.com 展开
展开全部
library ieee; //要使用的IEEE库
use IEEE.std_logic_1164.all; //器件的输入输出端口数据类型中
use IEEE.std_logic_unsigned.all; //要用到IEEE的std_logic_1164.all,
use IEEE.std_logic_arith.all; // std_logic_unsigned.all,std_logic_arith.all程序包
entity counter_t is //定义counter实体
generic(width : integer := 8); //定义data为一个8位的位矢量
port(data : in std_logic_vector (width-1 downto 0); //定义端口data为输入
load, en, clk, rst : in std_logic; // load, en, clk, rst为输入,std_logic类型
q : out std_logic_vector (width-1 downto 0)); //q为输出端口,std_logic_vector类型
end counter_t; //定义结束
architecture behave of counter_t is //定义behave结构体
signal count : std_logic_vector (width-1 downto 0); //声明信号count
begin //结构体开始
process(clk, rst) //进程敏感信号的声明
begin
if rst = '1' then //rst=1时复位,count清零
count <=(others=>'0'); --清零
elsif CLK'EVENT AND CLK='1' then --上升沿检测
if load = '1' then //rst=0,如果有上升沿且load=1,count=data
count <= data;
ELSIF en = '1' then //rst=0,如果load=0,且en=1,count=count+1
count <= count + 1;
END IF;
end if;
end process;
Q<=COUNT; //输出count
end behave; //结束
rst=1时复位,count清零。若rst=-0,当clk端口检测到上升沿时,如果load=1,则count=data。如果load=0且en=1时,count加一。此程序可以统计上升沿的次数,且可以设置初始值。
use IEEE.std_logic_1164.all; //器件的输入输出端口数据类型中
use IEEE.std_logic_unsigned.all; //要用到IEEE的std_logic_1164.all,
use IEEE.std_logic_arith.all; // std_logic_unsigned.all,std_logic_arith.all程序包
entity counter_t is //定义counter实体
generic(width : integer := 8); //定义data为一个8位的位矢量
port(data : in std_logic_vector (width-1 downto 0); //定义端口data为输入
load, en, clk, rst : in std_logic; // load, en, clk, rst为输入,std_logic类型
q : out std_logic_vector (width-1 downto 0)); //q为输出端口,std_logic_vector类型
end counter_t; //定义结束
architecture behave of counter_t is //定义behave结构体
signal count : std_logic_vector (width-1 downto 0); //声明信号count
begin //结构体开始
process(clk, rst) //进程敏感信号的声明
begin
if rst = '1' then //rst=1时复位,count清零
count <=(others=>'0'); --清零
elsif CLK'EVENT AND CLK='1' then --上升沿检测
if load = '1' then //rst=0,如果有上升沿且load=1,count=data
count <= data;
ELSIF en = '1' then //rst=0,如果load=0,且en=1,count=count+1
count <= count + 1;
END IF;
end if;
end process;
Q<=COUNT; //输出count
end behave; //结束
rst=1时复位,count清零。若rst=-0,当clk端口检测到上升沿时,如果load=1,则count=data。如果load=0且en=1时,count加一。此程序可以统计上升沿的次数,且可以设置初始值。
蓝鲸智能科技
2024-11-21 广告
2024-11-21 广告
理论考试系统是我们河南蓝鲸智能科技有限公司研发的一款高效、便捷的在线考试平台。该系统集题库管理、在线组卷、自动评分等功能于一体,支持多种题型和考试模式。通过智能化的防作弊手段,确保考试的公平公正。用户可以随时随地进行在线练习和模拟考试,有效...
点击进入详情页
本回答由蓝鲸智能科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询