您的位置:首页 > 其它

记录我的VHDL学习之路(一)

2015-03-12 23:51 190 查看
自学了FPGA之后我将点滴的记录我的 错误和解决方法。
--/***************************************
--** THIS FILE FOR CNT10
--** FOR EXERCISE
--**
--** BY YANGHUIDONG
--** DATE 28.1.2015
--***************************************/
LIBRARY  IEEE;
USE IEEE.STD_LOGIC_1164.ALL;  --最基本 包含数据类型及函数
USE IEEE.STD_LOGIC_UNSIGNED.ALL;   --定义无符号的算术运算
USE IEEE.STD_LOGIC_ARITH.ALL;     --定义有,无符号的算术运算

ENTITY CNT10 IS           --说明类属,端口,实体声明及语句
PORT( CLK,RST,EN : IN STD_LOGIC; --端口类型IN,OUT,BUFFER,INOUT,LINGKAGE
CQ:  OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT: OUT STD_LOGIC);--九值逻辑X,0,1,Z,W,L,H,-
END CNT10;

ARCHITECTURE BEHAV OF CNT10 IS   --结构体说明
SIGNAL CQ1:STD_LOGIC_VECTOR(3 DOWNTO 0);  --定义语句(全局使用)
BEGIN
PROCESS(CLK,RST,EN)
--VARIABLE CQ1:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义语句(仅此进程使用)
BEGIN
IF RST='1' THEN --异步复位
--CQ1:=(OTHERS=>'0');--
CQ1<=(OTHERS=>'0');
ELSIF CLK'EVENT AND CLK='1' THEN
IF EN='1' THEN    --允许计数,同步使能
IF CQ1<15 THEN
-- CQ1:=CQ1+1;--小于9计数,变量立即赋值无延时
CQ1<=CQ1+1;--信号‘传输线’有延时,仿真可见
ELSE
--CQ1:=(OTHERS=>'0'); --大于9清零
CQ1<=(OTHERS=>'0');
END IF;
END IF;
END IF;
IF CQ1=12 THEN   --IF,ELSE使用与C语言相同
COUT<='1';--进位
ELSE
COUT<='0';
END IF;
CQ<=CQ1;
END PROCESS; --可省略进程名
END BEHAV;    --可省略结构体名


“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息