IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 关于VHDL语言书写格式的学习(使用quartus Ⅱ) -> 正文阅读

[C++知识库]关于VHDL语言书写格式的学习(使用quartus Ⅱ)

????????本文并不是对VHDL的系统的讲解,而是我认为的关键部分,知道了这些,基本上可以使用VHDL语言进行一些相应的设计。并且在使用的过程中发现问题,再进行一些相应的检索,深入学习,最后达到精通。

????????首先要明白VHDL是硬件语言,相较于c语言等编程语言较为死板,有某些特定的要求,比如你选用的芯片,它的逻辑单元数量是固定的,所以你编写的代码所用的逻辑单元不能超过它固有的逻辑单元。

????????其次要明白我们学习VHDL语言是为了服务于硬件,通俗来讲就是要让你的硬件按照你的想法动起来,所以我们编写的代码编译成功并不代表成功要下载到硬件中检验。(这里按照老师的讲法是要先仿真再下载,但是一般情况下是直接下载到硬件中去,如果出现错误在进行各个部分的仿真,这是我个人认为编写最快的方式)。

VHAL的结构

????????分为实体结构体三个部分。

????????对于库,就是库函数一般我们使用就加上如图所示的即可,可以满足我们的使用

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

? ? ? ? 对于实体,就是你的定义,你的输入输出一般常用的有三种类型? out(输出)? ?in(输入)? buffer (具有反馈的类型,通俗讲就是你给他赋值了,你有把他作为另一个条件了,“中间商”,使用也是比较方便),关于out与buffer的区别,我在后面会举例说明。

entity shitiming is--实体名要与新建的工程名一样
	port (
		one:in std_logic;
		two:out std_logic;
		three:buffer std_logic		
	);
end shitiming;

? 有关于定义的类型,在我其他文章中有介绍,需要学习可以去看看。

? ? ? ? 对于结构体可以理解成运行程序的地方,需要你编程的地方,介绍下基本结构体的组成和书写规则。

architecture jiegoutiming of shitiming is
signal a:  std_logic;
signal b:  std_logic;
signal c:  std_logic;
signal d:  std_logic;
begin

p1:process()
begin


end process p1;


p2:process()
begin

end process p2;
end jiegoutiming;

关于在process中所用的顺序函数还有再process外所用的并列函数我会在其他文章中讲解,需要的可以去翻看。

VHDL的编写实例

我这里以编写一个12进制的计数器为例,给大家讲解一下,我所用的芯片是

芯片内部的系统时钟的2.048MHz?

设计思路也是很简单就是给大家演示一下书写VHDL的格式

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity jishuqi is
port(
    clk:in std_logic;
    clkclk:out std_logic;
    num:integer range 11 downto 0 
    
);

architecture wzj of jishuqi is

signal:q:integer range 0 to 2048000; 

begin

p1:process(clk)
   begin
    if(clk'event and clk='1')then
       if(q<2048000)then
            q=q+1;
       else 
            q=0;
        end if;
    end if;
    if(q>=0 and q<=1024000)then
        clkclk='1';
    else
        clkclk='0';
end process p1;

p2:process(clkclk)
    begin 
    if(clkclk'event and clkclk='1')then
       if(num<11)then
            num=num+1;
       else 
            num=0;
      end if;
    end if;
end process p2;
    

end wzj;

? ? ? ? 编程部分就是这样,若要显示在七段译码管上则需要加上译码以及编码的部分(在我的其他文章中有讲解)

VHDL的编程格式、步骤大致就是这样,有什么问题随时在评论区询问

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 18:45:28  更:2022-01-30 18:47:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:33:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码