集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1054|回复: 2

VHDL学习1

[复制链接]
fpga_feixiang 发表于 2018-12-3 14:50:35 | 显示全部楼层 |阅读模式
--/***************************************
--** 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;    --可省略结构体名
---------------------
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-1 07:18 , Processed in 0.059376 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表