Skip to content

superjackche/Verilog_learning

Repository files navigation

数字逻辑实验代码存档

本仓库收录《数字逻辑》课程的 Quartus 工程,包括基础实验(01~16)和创新实验(special)的 Verilog 设计文件、约束文件与编译生成的数据。

目录结构

基础实验

  • 01/~16_2/:各实验独立的 Quartus 项目目录
    • top.v:核心 Verilog 代码,已添加详细中文注释,方便课堂讲解和复习
    • *.qsf*.qpf*.qws:Quartus 工程配置文件
    • db/output_files/incremental_db/ 等:Quartus 编译过程中生成的缓存与报告文件

创新实验

  • special/:猜数字游戏(类似二分查找的创新演示项目)
    • 游戏规则:
      • 系统随机生成0-9的目标数字
      • 用4位拨码开关(sw[3:0])输入猜测
      • seg1实时显示当前拨码数字,seg2显示提示("H"=高了,"L"=低了)
      • key[1]确认猜测,key[2]重新开始游戏
      • 共3次机会,支持二分查找策略
    • 视觉效果:
      • 猜对:绿灯闪烁 + LED流水灯 + seg1外圈加速旋转(3秒庆祝动画)
      • 猜错:红灯+seg1同步闪烁(1秒,显示错误数字+大小提示)
      • 失败:8LED+红灯快闪 + seg1显示正确答案(3秒)
    • 技术特点:
      • LFSR伪随机数生成器(混合3组4位,取模10确保均匀分布)
      • 多状态FSM(IDLE/CORRECT/WRONG/GAMEOVER)
      • 独立计数器替代取模运算(资源优化:2726→468 LUTs)
      • 多时间域动画同步控制

硬件平台

  • FPGA芯片: Intel/Altera MAX 10 (10M02SCM153I7G)
  • 开发工具: Quartus Prime 24.1std.0 Lite Edition
  • 时钟频率: 12MHz 晶振
  • 板载资源:
    • 8个单色LED(低电平点亮)
    • 2个7段数码管(共阳)
    • 4个按键(低电平有效)
    • 4位拨码开关
    • 2个RGB LED

使用说明

  1. 将对应目录作为 Quartus 工程文件夹打开(例如 01/top.qpfspecial/top.qpf
  2. 若仅希望查看源码,可直接阅读各目录下的 top.v
  3. 所有按键消抖、状态机、七段译码等模块都包含中文注释,适合实验演示或考试复习
  4. 创新实验 special/ 可用于课程验收或展示演示

备注

  • 仓库已统一使用 main 作为默认分支
  • 如果不需要 Quartus 生成的 db/output_files/ 等大文件,可在克隆后自行清理或通过 .gitignore 重新配置
  • 引脚分配已统一按照「管脚对照表B」配置,不同板卡需检查.qsf文件
  • 详细引脚映射见下方附录

附录:FPGA引脚分配表 (Appendix: Pin Assignments) [AlteraMAX10M02SCM153C8G]

硬件规格 (Hardware Specifications):

  • 时钟频率 (Clock): 12MHz
  • 电平标准 (Logic Level): 3.3V LVTTL
  • 有效状态 (Active States):
    • LED: 低电平点亮 (Active Low: 0 = ON, 1 = OFF)
    • 按键 (Keys): 低电平有效 (Active Low: 0 = Pressed, 1 = Released)
    • 数码管 (7-Segment): 共阳极 (Common Anode)

1. 系统时钟与复位 (System Clock & Reset)

信号名称 (Signal) FPGA引脚 (Pin) 说明 (Description)
CLK J5 系统时钟 12MHz (System Clock)
RST_n J9 复位信号 (Reset, 与KEY1共用, Active Low)

2. 用户输入 (User Inputs)

按键 (Push Buttons)

标签 (Label) FPGA引脚 (Pin) 说明 (Description)
KEY1 J9 通用输入 / 复位 (General Input / Reset)
KEY2 K14 通用输入 (General Input)
KEY3 J11 通用输入 (General Input)
KEY4 J14 通用输入 (General Input)

拨码开关 (DIP Switches)

标签 (Label) FPGA引脚 (Pin) 说明 (Description)
SW1 J12 拨码开关1 (Slide Switch 1)
SW2 H11 拨码开关2 (Slide Switch 2)
SW3 H12 拨码开关3 (Slide Switch 3)
SW4 H13 拨码开关4 (Slide Switch 4)

3. LED指示灯 (User LEDs)

注意 (Note): LED为低电平点亮,引脚输出 0 时LED亮 (Active Low: Drive to 0 to turn ON)

标签 (Label) FPGA引脚 (Pin) 颜色 (Color) 说明 (Description)
LED1 N15 绿色 (Green) 用户LED 0 (User LED 0)
LED2 N14 绿色 (Green) 用户LED 1 (User LED 1)
LED3 M14 绿色 (Green) 用户LED 2 (User LED 2)
LED4 M12 绿色 (Green) 用户LED 3 (User LED 3)
LED5 L15 绿色 (Green) 用户LED 4 (User LED 4)
LED6 K12 绿色 (Green) 用户LED 5 (User LED 5)
LED7 L11 绿色 (Green) 用户LED 6 (User LED 6)
LED8 K11 绿色 (Green) 用户LED 7 (User LED 7)

4. RGB三色LED (RGB LEDs)

组件 (Component) 通道 (Channel) FPGA引脚 (Pin)
RGB LED 1 红 (Red) G15
绿 (Green) E15
蓝 (Blue) E14
RGB LED 2 红 (Red) C15
绿 (Green) C14
蓝 (Blue) D12

5. 七段数码管 (7-Segment Displays)

段位映射 (Segment Mapping): 标准8段接口 (A-G + 小数点DP / Standard 8-segment: A-G + Decimal Point)

段位 (Segment) 数码管1引脚 (Display 1 Left) 数码管2引脚 (Display 2 Right)
SEG A E1 A3
SEG B D2 A2
SEG C K2 P2
SEG D J2 P1
SEG E G2 N1
SEG F F5 C1
SEG G G5 C2
SEG DP L1 R2
位选 (DIG SEL) E2 B1

2025.12.26 数电实验验收完毕,交回开发板,FPGA学习告一段落了

About

本仓库收录《数字逻辑》课程的 Quartus 工程,包括基础实验(01~16)和创新实验(special)的 Verilog 设计文件、约束文件与编译生成的数据。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages