VHDL学习笔记——半加器 多路选择器 分频器

这篇具有很好参考价值的文章主要介绍了VHDL学习笔记——半加器 多路选择器 分频器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

VHDL程序结构:

VHDL学习笔记——半加器 多路选择器 分频器

  1. 条件语句
    if_then_else_end if
  2. 数据类型
    BIT类型(取逻辑位’1’或’0’)、整数类型INTEGER、布尔类型BOOLEAN(取TRUE或FALSE)、标准逻辑类型STD_LOGIC等
  3. 进程语句与顺序语句
    process(敏感信号表)_endprocess
    VHDL中所有的顺序语句都必须放在进程语句中
  4. 端口语句
    port(端口模式;端口数据类型);
  5. 端口模式
    in:输入端口
    out:输出端口
    inout:双向端口
    buffer:缓冲端口
  6. 关键字
    (不区分大小写)entity、architecture、end、if、else、in、out等;
  7. 标识符
    (不区分大小写)自定义实体名、结构体名、端口名、信号名等;
  • std_logic 数据类型九种含义
取值 含义
‘U’ 未初始化
‘X’ 强未知
‘0’ 强逻辑0
‘1’ 强逻辑1
‘Z’ 高阻态
‘W’ 弱未知
‘L’ 弱逻辑0
‘H’ 弱逻辑1
‘-’ 忽略

半加器

library ieee;--标注库STD、工作库WORK默认是打开的
use ieee.std_logic_1164.all;--定义了std_logic数据类型

entity h_adder is
	port(
	A:in std_logic;
	B:in std_logic;
	SO:out std_logic;
	CO:out std_logic
	);
end entity h_adder;
architecture fh1 of h_adder is
	begin
		SO <= A xor B;
		CO <= A and B;
end architecture fh1;

VHDL学习笔记——半加器 多路选择器 分频器
VHDL学习笔记——半加器 多路选择器 分频器

多路选择器/case语句

library ieee;
use ieee.std_logic_1164.all;

entity MAX41A is
	port(a,b,c,d,s0,s1:in std_logic; y:out std_logic);
end entity MAX41A;

architecture BHV of MAX41A is
signal s: std_logic_vector(1 downto 0);
begin
	s <= s1 & s0;
	process(s) begin --放s0,s1或直接放s
	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 BHV;
	


VHDL学习笔记——半加器 多路选择器 分频器

分频器

library ieee; ---表示打开IEEE库,因为IEEE库不属于VHDL的标准库,所以使用库的内容要先声明
use ieee.std_logic_1164.all;--定义std_logic/std_logic_vector
use ieee.std_logic_arith.all;-- 定义有无符号类型与对应运算
use ieee.std_logic_unsigned.all;-- 定义std_logic std_logic_vector

entity fenpingqi is  -- entity只是定义所需的全部输入/输出信号
	generic(
		sys_clk_fre_value:INTEGER:=50000000;--系统时钟50MHz
		div_clk_fre_value:INTEGER:=12500000--4分频
	);
	port(
		i_sys_clk:in STD_LOGIC;--系统时钟
		i_sys_rst:in STD_LOGIC;--系统复位
		o_div_clk:out STD_LOGIC--系统输出
	);
end entity fenpingqi;

architecture behavior of fenpingqi is
	signal r_div_count:STD_logic_vector(31 downto 0);--32位的向量 2^32Hz > 50MHz(输入频率)
	signal r_div_clk:STD_LOGIC;
	
	begin
	process(i_sys_clk,i_sys_rst)
		begin
		if(i_sys_rst='1')then--复位信号为高电平
				r_div_count<=x"00000000";--分频计数置全0
				r_div_clk<='0';--分频结果置0
			elsif(i_sys_clk'event AND i_sys_clk='1')then
				if(r_div_count=sys_clk_fre_value/div_clk_fre_value/2-1)then
					r_div_count<=x"00000000";
					r_div_clk<=NOT r_div_clk;
				else
					r_div_count <= r_div_count+1;--分频计数+1
				end if;
			end if;
	end process;
	o_div_clk<=r_div_clk;--输出
end architecture behavior;

VHDL学习笔记——半加器 多路选择器 分频器
Simulator:Quartus II Simulator.
VHDL学习笔记——半加器 多路选择器 分频器文章来源地址https://www.toymoban.com/news/detail-433993.html

到了这里,关于VHDL学习笔记——半加器 多路选择器 分频器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【实验室学习】时钟分频器,2、3、4、8分频 verilog实现

    记录时钟分频器的Verilog代码编写,主要掌握分频器设计思路 2、4、8分频设计较为容易: 2分频—设计一个1位的寄存器,当原时钟上升沿时取反即可 代码展示: 4分频与8分频—设计一个两位的计数器,4分频只需在计数器计数到00B或者10B时跳变电平即可,8分频只需在计数器计

    2024年02月11日
    浏览(44)
  • FPGA学习——实现任意倍分频器(奇数/偶数倍分频器均可实现)

    在FPGA(可编程逻辑门阵列)中,分频器是一种用于将时钟信号的频率降低的电路或模块。它可以根据输入的时钟信号生成一个较低频率的输出时钟信号。 常见的分频器可以按照固定比例来进行分频,例如将输入时钟频率除以2、除以4等。因此,如果输入时钟信号的频率为10

    2024年02月05日
    浏览(42)
  • FPGA学习日记——verilog实现分频器

    主要思想是利用计数器实现分频器功能,其中按原理不同可分为分频和降频 一、先说分频。 1、第一种实现方式 输入信号为系统时钟50MHz,本例子先以偶数倍六分频为例实现分频的第一种方式:计数器对系统时钟的上升沿进行计数,最大计数M=5,即count取值范围为0~5,当计数

    2024年02月04日
    浏览(45)
  • 数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    目录 一、前言 二、偶数分频 2.1 触发器级联法 2.2 计数器法 2.3 verilog代码 2.4 Testbench 2.5 仿真结果 三、奇数分频 3.1 占空比非50%奇数分频 3.2 占空比50%奇数分频 3.3 Verilog代码 3.4 Testbench 3.5 仿真结果 四、小数分频 4.1 双模前置分频法 4.2 Verilog代码 4.3 Testbench 4.4 仿真结果 五、半整

    2024年02月04日
    浏览(48)
  • 数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    数字IC经典电路设计 经典电路设计是数字IC设计里基础中的基础,盖大房子的第一部是打造结实可靠的地基,每一篇笔者都会分门别类给出设计原理、设计方法、verilog代码、Testbench、仿真波形。然而实际的数字IC设计过程中考虑的问题远多于此,通过本系列希望大家对数字I

    2024年02月08日
    浏览(45)
  • 【基础知识】~ 半加器 & 全加器

    半加器,就是不考虑进位的加法器,只有两个输入和两个输出:输入A和B,输出和数sum和进位cout,半加器真值表如下: 全加器就是在半加器的基础上引入一个进位输入,总共三个输入两个输出。全加器真值表如下: 这里的输出一共有两个,一个sum,一个进位cout。sum的值是

    2024年02月11日
    浏览(41)
  • 分频器——(任意奇分频(50%占空比、非50%占空比),任意偶分频,任意小数分频)

            在数字系统的设计中经常会碰到 需要使用多个时钟 的情况。时钟信号的产生通常具有两种方法,一种是使用PLL(Phase Locked Loop,锁相环),可生成 倍频、分频信号 ;另一种则是使用硬件描述语言构建一个分频电路。         分频器的设计通常分为以下 三类:

    2023年04月23日
    浏览(69)
  • 12-分频器 -偶分频

    计数器是对于时钟信号进行计数,板载晶振的时钟频率是固定的,有时候需要进行分频和倍频才能满足需要 开发板上只有一种晶振,只有一种频率的时钟,想要通过对与固定时钟进行分频或者是倍频的方式得到各个模块所需的时钟频率,得到比固定时钟快的时钟通过 倍频 ,得到比固

    2024年02月06日
    浏览(42)
  • 【FPGA实验一】半加器全加器实现

    半加器 什么是半加器? 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 半加器的真值表 半加器表达式: 半加器电路图: 建立原理图 启动 Quartus II 软件,选择File-New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着

    2024年02月12日
    浏览(44)
  • 加法器、半加器、全加器、超前进位加法器

    简单来讲,半加器不考虑低位进位来的 进位值 ,只有两个输入,两个输出。由一个与门和异或门构成. 真值表: 输入 输出 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 半加器不考虑低位向本位的[进位],因此它不属于[时序逻辑电路],有两个输入端和两个输出。 设加数(输入端)为A、B

    2024年02月02日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包