关于VHDL语言书写格式的学习(使用quartus Ⅱ)

news/2024/11/29 9:32:06/

        本文并不是对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;
beginp1:process()
beginend process p1;p2:process()
beginend 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 issignal:q:integer range 0 to 2048000; beginp1:process(clk)beginif(clk'event and clk='1')thenif(q<2048000)thenq=q+1;else q=0;end if;end if;if(q>=0 and q<=1024000)thenclkclk='1';elseclkclk='0';
end process p1;p2:process(clkclk)begin if(clkclk'event and clkclk='1')thenif(num<11)thennum=num+1;else num=0;end if;end if;
end process p2;end wzj;

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

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


http://www.ppmy.cn/news/866357.html

相关文章

vhdl计算机语言,vhdl语言编程实例.doc

vhdl语言编程实例 实现各种逻辑功能&#xff1a; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY louji1a IS PORT(S: IN STD_LOGIC_VECTOR(2 DOWNTO 0); C: IN STD_LOGIC; A: IN STD_LOGIC_VECTOR(4 DOWNTO 0); B: IN STD_LOGIC_VECTOR…

vhdl语言基础篇-for

1、for语法使用规则 标号:for 循环变量 in 离散范围 generate <并行语句>; end generate 标号; 代码示例如下&#xff1a; signal data_7p4bit : std_logic_vector(7*4-1 downto 0); signal data_7p_bit : std_logic_vector(6 downto 0); G_04deg : for I i…

VHDL语言基础-VHDL程序的基本结构与主要构件

目录 VHDL程序的基本结构&#xff1a; 一个完整的VHDL程序包括&#xff1a; Example&#xff1a; VHDL的主要构件&#xff1a; VHDL程序的基本构件&#xff1a; 主要构件&#xff1a; VHDL的主要构件—库&#xff1a; 使用格式&#xff1a; Example&#xff1a; VHDL的…

笔记:FPGA与VHDL语言学习1

FPGA与VHDL语言学习1 目录 1.EDA,fpga,asic 2.CPLD与FPGA 3.设计一个三选一FPGA程序 4.使用由半加器与全加器程序生成一个f_adder全加器图形模块。试用4个f_adder模块组成一个4位全加器。 5.4&#xff5e;16译码器 6.设计乘法器 1.EDA技术与ASIC设计和FPGA开发有什么关系&am…

vhdl计算机语言,八周造个CPU(1):VHDL语言的实现和仿真方法,简单PC模块的实现和仿真...

鄙系有一门很著名的课,《计算机组成原理》,教你三周造台计算机。我们组今年眼瞎,选了挑战性课程,也就是教你一学期造台32位MIPS架构的计算机。前段时间全组人都被软工和编译原理所困扰(实际上,今天是编译原理第二次大作业的deadline,但我还没做完,但是我仍然在这里悠闲地…

根据以下原理图使用VHDL语言编写完整程序。

要求&#xff1a; &#xff08;1&#xff09;完成1164库文件程序编写。 &#xff08;2&#xff09;实体名为&#xff1a;gate&#xff0c;输入信号&#xff1a;A, B, C, D&#xff1b; 输出信号&#xff1a;Y&#xff1b;完成实体程序编写。 &#xff08;3&#xff09;根据…

c19级m序列VHDL语言,m序列详解及VHDL语言实现

目录 m序列的产生 简介 线性反馈移位寄存器 VHDL语言实现 代码 仿真图 m序列的产生 简介 m序列是最长线性反馈移位寄存器序列的简称,是由带线性反馈的移位寄存器产生的周期最长的序列。下图是一个4级线性反馈移位寄存器。 假若初始状态为( a 3 , a 2 , a 1 , a 0 ) = ( 1 , 0 …

用VHDL语言实现电子计时时钟

1. 目 录 2. 设计任务及要求 3. 课题总体设计 4. 模块设计 5. 系统仿真及结果 6. 设计总结 一、设计任务及要求 1.1设计任务 利用VHDL语言,实现电子计时时钟,要求能够显示分钟、秒钟,显示输出为共阴极数码管,要求: 1、电子计时时钟具有清零功能 2、驱动的数码管为共阴极…