基于VHDL语言、状态机的序列信号发生器的实现

本文介绍了使用VHDL语言和状态机在Basys3开发板上实现一个8位序列信号发生器的实验过程。在Vivado2017.4环境下,设计实现了串行和并行输出(序列11010010),虽然未在实际硬件上运行,但提供了仿真结果。代码包括主设计、仿真测试及分频相关部分。

一、实验平台

1、Basys3开发板;
2、Vivado2017.4开发环境;
3、VHDL语言。

二、实验描述

最近在学习时序电路,接触到状态机,就利用有限状态机,写了一个8位的序列信号发生器(11010010),分为串行输出和并行输出。这次只是仿真,所以没有进行分频,不过我会把后面的1HZ分频代码贴出来。

三、相关代码

1、主代码

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity signal_generate is
    Port (
           clk   : in STD_LOGIC;
           rst   : in STD_LOGIC;
           d     : out STD_LOGIC_VECTOR (7 downto 0);                       --并行输出
           d_out : out STD_LOGIC                                            --串行输出
          );
end signal_generate;

architecture Behavioral of signal_generate is
  type states is (s0,s1,s2,s3,s4,s5,s6,s7);
  signal state     : states:=s0;
  signal d1        : std_logic_vector(7 downto 0):="00000000";
  signal temp      : std_logic;
begin
--串并转换  
  process(clk)
  begin
    if(rst='1')then
      d1<="00000000";
  
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值