VHDL语言入门整理

2024-06-09 04:48
文章标签 语言 入门 整理 vhdl

本文主要是介绍VHDL语言入门整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.2选1多路选择器
Library ieee;
Use ieee.std_logic_1164.all;
Entity L1 is
Port
(
a,b,s:in std_logic;
y:out std_logic
);
End L1;
Architecture one of L1 is
Begin
Process(a,b,s)begin
If(s='0')then
y<=a;
Else
y<=b;
End if;
End process;
End one;
仿真结果:


2.4选1多路选择器
library ieee;
use ieee.std_logic_1164.all;
entity L2 is
port
(
a,b,c,d,s0,s1 : in std_logic;
y : out std_logic
);
end L2;
architecture two of L2 is
signal s : std_logic_vector(1 downto 0);
begin
s <= s1 & s0;
process(s1,s0) begin
case(s) is
when "00"=>y<=a;
when "01"=>y<=b;
when "10"=>y<=c;
when "11"=>y<=d;
when others=>null;
end case;
end process;
end two;

仿真结果:

3.半加器


VHDL语言描述:
library ieee;
use ieee.std_logic_1164.all;
entity L3 is
port(
A,B:in std_logic;
so,co:out std_logic
);
end L3;
architecture three of L3 is
begin
so<=A xor B;
co<=A and B;
end three;
仿真结果:

4.8位加法器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity L6 is
port(
A,B:in std_logic_vector(7 downto 0);
CIN:in std_logic;
COUT:out std_logic;
DOUT:out std_logic_vector(7 downto 0)
);
end L6;
architecture abc of L6 is
signal DATA:std_logic_vector(8 downto 0);
begin
DATA<=('0'&A)+('0'&B)+("00000000"&CIN);
COUT<=DATA(8);
DOUT<=DATA(7 downto 0);
end abc;
仿真结果:

5.D触发器的vhdl描述
library ieee;
use ieee.std_logic_1164.all;
entity L7 is
port
(
clk,D:in std_logic;
Q:out std_logic
);
end L7;
architecture abc of L7 is
signal Q1:std_logic;
begin
process(clk,Q1) begin
if clk'event and clk='1'
then Q1<=D;
end if;
end process;
Q<=Q1;
end abc;
仿真结果:

6.统计向量中1的个数
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity L7 is
port
(
DIN:in std_logic_vector(7 downto 0);
CNTH:out std_logic_vector(3 downto 0)
);
end L7;
architecture abc of L7 is
begin
process(DIN)
variable Q:std_logic_vector(3 downto 0);
begin
Q:="0000";
for n in 0 to 7 loop
if(DIN(n)='1') then
Q:=Q+1;
end if;
end loop;
CNTH<=Q;
end process;
end abc;

7.双向端口
library ieee;
use ieee.std_logic_1164.all;
entity L7 is
port
(
control :in std_logic;
in1:in std_logic_vector(7 downto 0);
q:inout std_logic_vector(7 downto 0);
x:out std_logic_vector(7 downto 0)
);
end L7;
architecture abc of L7 is
begin
process(control,q,in1)begin
if(control='0')then
x<=q;
else
q<=in1;
x<="11111111";
end if;
end process;
end abc;

仿真结果:


这篇关于VHDL语言入门整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044258

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP