数字逻辑电路-8位序列信号发生器-Quartus2-时序逻辑电路

一、实验要求:

(1)设计一个8位的序列信号发生器,序列码为“01011100”序列信号发生器

(2)对所设计的电路进行波形仿真验,并下载到实验板测试电路是否正确;

(3)用示波器观察产生的序列脉冲信号

二、实验内容:

(1)、序列脉冲发生器设计

创建VHDL文件,输入一下代码:

-- 相关库和软件包 library and package
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
-- 实体 entity
ENTITY senqgen8 is -- 实体名与文件名相同
    PORT(
            clk,clr: IN STD_LOGIC; 
            sout:out STD_LOGIC;
            sync:out STD_LOGIC --这里没分号
    );
END ENTITY senqgen8;
-- 结构体 architecture
ARCHITECTURE bhv of senqgen8 is
    signal count :std_logic_vector(2 downto 0);
BEGIN
    p1:process(clk,clr) 
     begin
         if clr='1' then --异步清零
            count<="000";
         else
            if (clk'event and clk='1') then --上升沿跳变
                if count="111" then
                    count<="000";
                else
                    count<=count+1;
                end if;
            end if;
         end if;
      end process;
      p2:process(count)
      begin
        case count is
            when "000"=>sout<='0';
            when "001"=>sout<='1';
            when "010"=>sout<='0';
            when "011"=>sout<='1';
            when "100"=>sout<='1';
            when "101"=>sout<='1';
            when "110"=>sout<='0';
            when "111"=>sout<='0';
            when others=> sout<='0';
        end case;
      end process;
      p3:process(clk,clr,count)
      begin
        if clr='1' then --异步清零
            sync<='0';
        elsif count="000" then
            sync<='1';
        else
            sync<='0';
        end if;
     end process;
end ARCHITECTURE bhv;

保存文件名为:senqgen8.VHD并置顶编译通过(这步要注意)

创建器件符号:c51ec36d27914ea8a1d95c7906bc25bf.png

(2)、设计设置LowFreqClk--产生时钟信号的器件

创建VHDL文件,输入一下代码:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LowFreqClk IS
PORT(rst_n  : IN STD_LOGIC;
    Clk_50M  : IN STD_LOGIC;
    clk_1MHz  : buffer STD_LOGIC);
END LowFreqClk;
 
ARCHITECTURE bhv OF LowFreqClk IS
BEGIN
PROCESS(Clk_50M,rst_n)
VARIABLE Count:INTEGER ;
BEGIN
  IF rst_n = '1' then 
    Count := 0 ;
     clk_1MHz <= '0';
  ELSIF Clk_50M'EVENT AND Clk_50M='1' THEN
    IF Count = 24 THEN
       clk_1MHz <=not clk_1MHz;
        Count := 0 ;
      ELSE
        Count := Count + 1;
      END IF;
  END IF;
END PROCESS ;
END bhv;

保存文件名为:LowFreqClk.VHD,并置顶编译通过(这步要注意)

创建器件符号:

2be00285446048059629d17a9e66d35c.png

(3)、设计电路图:

如下图:

599ab358e06e49199380e3143564ef97.png

(4)、波形仿真:

c57f7d8175b3460db8b076e1c28166af.pngd244ca3732454f459a2372ca5674d409.png

c2d9416c11694b1280b59bafb68e73eb.png0428c39c3a894164acb6d1868bf98f48.png

84c6caad645f4456a18c8d81557469db.png5a3b24c1412244049515c183260def8a.png

如图绘制: 

 4175239a7a704890a88116eef829be86.png

编译,结果如下:

8d0a5a4bd26b4c68ba57e1c5303b4c90.png

即为正确。 

编译结果为:

(4)、引脚分配:83074ce7edfd47ad9ab1133842372fe9.png

如图:

335373930f424175b46a1b40783c91e0.png

编译一遍。

(5)、示波器接线:

99b869dd04e04cefae7f928a84a5d034.png

 CH1 黄色、 CH2 青色

CH1两端接法如下:(勾上夹下)0c66b0eb986347c38f73939424ce7451.png

CH2两端接法如下:(勾上夹下) ​​​​502d8d1000fb4dd3801847ce9deab0df.png

调整示波器参数:

结果如图:

341234fce92f467ebc24469f1c125deb.png

(如果有帮助请点赞或评论支持,有问题请指正,其他问题请评论交流...) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wirepuller_king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值