哪位好心人帮我解释下VHDL程序?fen100 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_
可以帮我解释一下吗?上次没复制好,谢谢了fenxlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsi...
可以帮我解释一下吗?上次没复制好,谢谢了fenx
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity fenx is
port
(clk:in std_logic;
qout:out std_logic
);
end fenx;
architecture behave of fenx is
constant counter_len:integer:=1999999;
begin
process(clk)
variable cnt:integer range 0 to counter_len;
begin
if clk'event and clk='1' then
if cnt=counter_len then
cnt:=0;
else
cnt:=cnt+1;
end if;
case cnt is
when 0 to counter_len/2=>qout<='0';
when others =>qout<='1';
end case;
end if;
end process;
end behave; 展开
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity fenx is
port
(clk:in std_logic;
qout:out std_logic
);
end fenx;
architecture behave of fenx is
constant counter_len:integer:=1999999;
begin
process(clk)
variable cnt:integer range 0 to counter_len;
begin
if clk'event and clk='1' then
if cnt=counter_len then
cnt:=0;
else
cnt:=cnt+1;
end if;
case cnt is
when 0 to counter_len/2=>qout<='0';
when others =>qout<='1';
end case;
end if;
end process;
end behave; 展开
3个回答
展开全部
library ieee; --库说明
use ieee.std_logic_1164.all;--前面这几行,是用的package 即数据库
use ieee.std_logic_unsigned.all;--
use ieee.std_logic_arith.all;--
entity fenx is --实体说明,fenx 实体名
port --端口
(clk:in std_logic;--clk为端口名,in 为端口类型,这里是输入,std_logic指的是标准逻辑数据类型。
qout:out std_logic--类似于上边
);
end fenx;--结束实体
architecture behave of fenx is-- 结构体 behave 为结构体名,fenx 为上边的实体名。
constant counter_len:integer:=1999999;--结构体说明部分,这里定义了一个常数,常数名为counter_len,将1999999赋给了这个常数。
begin
process(clk)--开始进程
variable cnt:integer range 0 to counter_len;--定义了一个变量,范围为0-1999999
begin
if clk'event and clk='1' then --在当前一个相当小的时间间隔内,事件发生了,并且clk为逻辑值1,然后执行下边的语句
if cnt=counter_len then --再如果,cnt这个变量的值等于定的那个常数counter_len, 则,把0赋给cnt
cnt:=0;
else
cnt:=cnt+1; --否刚,让cnt加1;
end if; --结束if语句
case cnt is --case 语句
when 0 to counter_len/2=>qout<='0';--若case 的值为0到counter_len 的一半,刚执行,把0赋给qout;
when others =>qout<='1';--其它,刚把1赋给qout;
end case; --结束case语句;
end if; --与第一个if对应,结束if 语句;
end process; --结束process 进程;
end behave; --结束behave 结构体。
晚上做的,不会我们再交流。
use ieee.std_logic_1164.all;--前面这几行,是用的package 即数据库
use ieee.std_logic_unsigned.all;--
use ieee.std_logic_arith.all;--
entity fenx is --实体说明,fenx 实体名
port --端口
(clk:in std_logic;--clk为端口名,in 为端口类型,这里是输入,std_logic指的是标准逻辑数据类型。
qout:out std_logic--类似于上边
);
end fenx;--结束实体
architecture behave of fenx is-- 结构体 behave 为结构体名,fenx 为上边的实体名。
constant counter_len:integer:=1999999;--结构体说明部分,这里定义了一个常数,常数名为counter_len,将1999999赋给了这个常数。
begin
process(clk)--开始进程
variable cnt:integer range 0 to counter_len;--定义了一个变量,范围为0-1999999
begin
if clk'event and clk='1' then --在当前一个相当小的时间间隔内,事件发生了,并且clk为逻辑值1,然后执行下边的语句
if cnt=counter_len then --再如果,cnt这个变量的值等于定的那个常数counter_len, 则,把0赋给cnt
cnt:=0;
else
cnt:=cnt+1; --否刚,让cnt加1;
end if; --结束if语句
case cnt is --case 语句
when 0 to counter_len/2=>qout<='0';--若case 的值为0到counter_len 的一半,刚执行,把0赋给qout;
when others =>qout<='1';--其它,刚把1赋给qout;
end case; --结束case语句;
end if; --与第一个if对应,结束if 语句;
end process; --结束process 进程;
end behave; --结束behave 结构体。
晚上做的,不会我们再交流。
展开全部
fen100 library ieee; (使用库文件library ieee)
use ieee.std_logic_1164.all; (使用库文件library ieee中的1164包中的所有数据类型,即1164包中的所有数据类型都可以使用)
use ieee.std_logic_unsigned.all;(使用库文件library ieee中的unsigned包中的所有数据类型,即unsigned包中的所有数据类型都可以使用)
你是不是把use ieee.std_logic_unsigned.all;漏掉了unsigned.all;
但愿能帮到你
use ieee.std_logic_1164.all; (使用库文件library ieee中的1164包中的所有数据类型,即1164包中的所有数据类型都可以使用)
use ieee.std_logic_unsigned.all;(使用库文件library ieee中的unsigned包中的所有数据类型,即unsigned包中的所有数据类型都可以使用)
你是不是把use ieee.std_logic_unsigned.all;漏掉了unsigned.all;
但愿能帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段程序是分频程序,把clk时钟分成更小的频率时钟脉冲
建议你看一下http://hi.baidu.com/%B4%F3%B2%DD%D4%AD%BB%C6%BB%A8%B2%CB/blog/item/b3549a18c4bb596adab4bdde.html
建议你看一下http://hi.baidu.com/%B4%F3%B2%DD%D4%AD%BB%C6%BB%A8%B2%CB/blog/item/b3549a18c4bb596adab4bdde.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询