数字逻辑电路-8位流水灯(自动)-Quartus2-时序逻辑电路实验

一.实验预习

设计 一个8位流水灯电路,要求如下:
(1)8个灯每次7亮1暗;
(2)流动方向从左到右;
(3)采用JK或者D触发器构成的异步计数器和74138实现;
(4)流水灯每秒钟变化一次状态(调用50M分频信号模块,将1Hz信号作为流水灯电路的时钟信号输入)。

69ec0f4e18ec447cba74bbb763b09b5e.png二、实验内容

1、设计计数译码型8位流水灯的逻辑电路。要求采用JK或者D触发器构成 SSI异步3位二进制计数器和74138实现,进行仿真

2、利用实验板50MHZ系统时钟,采用分频的方案产生1HZ2HZ4HZ8HZ的低频时钟信号(使用VHDL语言描述),用于实验电路的CP时钟,并下载至实验板测试。

3、应用层次化设计思路将调用50M分频信号模块,作为流水灯电路的CP信号输入,实现自动流水灯设计(不需要仿真),并下载实验板进行功能测试。

(1):使用预习电路画出仿真波形:

鼠标左键双击左侧空白区域,调出 Insert Node or BUS (添加节点)窗口。

 

点击Node Finder 按钮,调出Node 添加界面

点击OK点击List 按键点击双箭头按键连续两次点击OK,把原理图设计成功的电路中所有的节点加载到波形仿真文件,进行观察。

1edacc32b6e44e2199ae1a0dee705713.png

设置仿真时间长度(Set end time)可设置成100 微秒。

896cba11a3f0413cb96edf6a85add269.png

 

设置仿真时间周期(Set Grid Size)可设置成1微秒。

bad32ebca9694fceb2d75773ee2571bf.png选中CP信号,点击Overwrite Clock 图标,将低频脉冲作为输入时钟信号,其中Periodcp 周期)可设置成1 微秒。

c68f8d6ea591458d9ac44ffc745f1a5e.png

运行仿真波形:

 

73a31ca54b5c4eb197acb0a8f1a654d3.png如图即为正确。

 

(2):时钟信号产生及测试

[1]:新建VHDL设计文件

d59cc46585a14caabfee40b3d9976c37.png36ebd6f848b143699e750e4002cc57bf.png

输入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_1Hz  : buffer STD_LOGIC;
	clk_2Hz  : buffer STD_LOGIC;
	clk_4Hz  : buffer STD_LOGIC;
	clk_8Hz  : buffer STD_LOGIC);
END LowFreqClk;
 
ARCHITECTURE Behv OF LowFreqClk IS
BEGIN
PROCESS(Clk_50M,rst_n)
VARIABLE Count:INTEGER ;
BEGIN
  IF rst_n = '0' then 
    Count := 0 ;
	 clk_8Hz <= '0';
  ELSIF Clk_50M'EVENT AND Clk_50M='1' THEN
    IF Count >= 3124999 THEN
	   clk_8Hz <=not clk_8Hz;
		Count := 0 ;
	  ELSE
		Count := Count + 1;
	  END IF;
  END IF;
END PROCESS ;
PROCESS(clk_8Hz,rst_n)
BEGIN
  IF rst_n = '0' then 
	 clk_4Hz <= '0';
  ELSIF Clk_8Hz'EVENT AND Clk_8Hz='1' THEN
	 clk_4Hz <=not clk_4Hz;
  END IF;
END PROCESS ;
PROCESS(clk_4Hz,rst_n)
BEGIN
  IF rst_n = '0' then 
	 clk_2Hz <= '0';
  ELSIF Clk_4Hz'EVENT AND Clk_4Hz='1' THEN
	 clk_2Hz <=not clk_2Hz;
  END IF;
END PROCESS ;
PROCESS(clk_2Hz,rst_n)
BEGIN
  IF rst_n = '0' then 
	 clk_1Hz <= '0';
  ELSIF Clk_2Hz'EVENT AND Clk_2Hz='1' THEN
	 clk_1Hz <=not clk_1Hz;
  END IF;
END PROCESS ;
END Behv;	

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

00f9a970bbab48fab5a5a019c627a43c.png

bea583641d2549338aeba31dd4410c09.png

[2]:为设计文件创建符号文件

2ede341be4d34f24b250dddc1fba1265.png

[3]画电路图测试:

上一步创建的 符号文件和库文件一样,可以在原理图设计文件中使用。

89cb0c3f08b64df0835a093eca5d0279.png

测试电路及引脚分配按下图:
ff3632aadcd9453ebbd1dfac4827129d.png
并进行下载到板子上,这部分应该都会。

(3)、下载实验板进行功能测试

[1]示波器接线:

(补充信息): c9af1496f8d64e57ba30a8ca88e11612.png 1879d25a0f3e4225a6894b6796d4476f.png ccc04fac02984b16a7ea6eb2c9be99f7.png
使用 JP1的40pins 的接口, 及此图
这个实验我们只测试了1Hz,2Hz,有兴趣可以测完。
 

8b23b018203d496f93c140732fa53e6c.png

CH1 黄色、 CH2 青色
CH1两端接法如下:(勾上夹下)

4f20c14a472346a4ad813635516c4c10.png

CH2两端接法如下:(勾上夹下)

f2721eb56adf4d9db8702ab3688ed5ca.png

调整示波器参数:(500ms, -25.0ms)

c8fbbd6eaa1a47d6abdb1f0b598e84a9.png

-------------------------------------------------------------------------------------------------------------
(如果没有波形,尝试拨动实验板开关,因为在测试电路中设计了拨码开关,如图: ced050a95a4e4627b05d2f26d18d1ef1.png
,所以波动对应开关 1e62bb42ebb34284b045c114a0fb96ca.png)
---------------------------------------------------------------------------------------------------------------------
最后结果如图及为成功:

8d8f9fbd8c444e82aef44416ed0502ab.png

[2]加入50M分频模块e119905bc6cf4bd1b92c0da558fb2c25.png

3d20669ef1954d8d87ca2705d0efe931.png
进行编译。
再进行引脚分配:
a3beacdcea6347f3b2d67693e3c7a4eb.png
再编译一遍。
 

[3]下载至电路板并验证功能

VID_20241104_115038

结果为灯流向闪动

ending--------------------------------------------------

有帮助请点赞或评论支持,有错误也请指出,感谢观看。

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wirepuller_king

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

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

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

打赏作者

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

抵扣说明:

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

余额充值