作业帮 > 综合 > 作业

fen100 library ieee; use ieee.std_logic_1164.all; use ieee.s

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 14:49:29
fen100 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_
上次没复制好,谢谢了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=>qoutqout
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=>qoutqout