# 番茄钟项目 **Repository Path**: riverflows2333/tomato-clock-project ## Basic Information - **Project Name**: 番茄钟项目 - **Description**: 西安交通大学电气工程专业数字电子技术实验项目 - **Primary Language**: Verilog - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-18 - **Last Updated**: 2021-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 番茄钟项目 ## 项目内容介绍 此项目为西安交通大学电气工程专业数字电子技术实验的大作业项目,主要功能为通过Xilinx的FPGA开发板实现番茄钟的计数、设置等简单功能。代码还有一些冗余与不足之处,但实现基本功能尚可。 ## 参数介绍 1. FPGA型号:xc7a35tcsg324-1(对应vivado中显示型号) 2. 开发环境:vivado 2021.2 in ubuntu 20.04 3. 使用引脚: - JTAG & UART:用于开发板与电脑的连接、供电及程序的烧写; - 开关:用于reset功能,实现寄存器的初始化; - 按钮:用于计时的开始与停止、设置计时长短等功能; - LED灯:用于倒计时结束时的提示功能; - 数码管:用于计时及设置过程中数字的显示。 ## 代码内容简介 1. 模块设置:项目名称为tomato-clock,sources文件中主程序为top_main.v,其主要功能为调用以main开头的其它几个模块。 2. 引脚设置:使用的引脚类型已经在参数部分提及,具体引脚设置见工程文件(module_test.xdc)。 3. 运行方式: - 新建项目,名称为tomato-clock,开发板的相关参数设置正确; - 将项目中的.srcs文件夹和.xpr文件替换为本项目中的文件; - 之后进行常规的编译、烧写操作即可。 ## 功能介绍 ### 按键与功能概览 ![avatar](https://pic.imgdb.cn/item/619644c82ab3f51d9142cdcf.jpg) ### 计时功能 1. 工作开始/暂停 [![ITjX9A.gif](https://z3.ax1x.com/2021/11/18/ITjX9A.gif)](https://imgtu.com/i/ITjX9A) 2. 工作结束 [![ITvZj0.md.gif](https://z3.ax1x.com/2021/11/18/ITvZj0.gif)](https://imgtu.com/i/ITvZj0) 3. 休息开始/暂停 [![ITvsgI.md.gif](https://z3.ax1x.com/2021/11/18/ITvsgI.gif)](https://imgtu.com/i/ITvsgI) 4. 休息结束 [![ITvo2n.md.gif](https://z3.ax1x.com/2021/11/18/ITvo2n.gif)](https://imgtu.com/i/ITvo2n) ### 设置功能 [![ITvHK0.md.gif](https://z3.ax1x.com/2021/11/18/ITvHK0.gif)](https://imgtu.com/i/ITvHK0) ### 附加功能 1. 切换工作状态 [![I7SND0.md.gif](https://z3.ax1x.com/2021/11/18/I7SND0.gif)](https://imgtu.com/i/I7SND0) 2. 跳过当前阶段 [![I7SHKI.md.gif](https://z3.ax1x.com/2021/11/18/I7SHKI.gif)](https://imgtu.com/i/I7SHKI) ## 存在问题 1. 代码存在冗余,模块数过多; 2. 在工作或休息结束时会到达下一个阶段的初态而不自动进行计时; 3. 数码管的显示存在部分问题。 总之,把代码发出来,欢迎大家批评指正,一起学习,共同进步!