Skip to content

Latest commit

 

History

History
249 lines (175 loc) · 9.94 KB

README.md

File metadata and controls

249 lines (175 loc) · 9.94 KB

开发环境

Xilinx Vivado:官方中文下载页面(需注册登录 Xilinx 帐号并填写相应信息进行下载)

安装方式

届时最新的完整版本是 2018.3,请结合实际网络情况,选择安装方式:

安装方式

离线安装方式需要将下载好的完整包需要解压并运行其中的 xsetup 文件。

选择版本

选择 WebPack 版本,免费、无需帐号、无需许可证。

选择版本

选择组件

最小化安装仅需选择“设备”中的 Artix-7 型号:

选择组件

可以看到,离线安装将占用近 12GB 磁盘空间。如果在线安装,下载所需的安装文件也会在目标目录占用几个 GB 的空间,可在安装完成后手动清理释放。

第三方编辑器

代码文件均使用 UTF-8 编码及 LF 行尾。Vivado 内置编辑器功能十分有限,建议使用第三方编辑器,相关配置项:Tools/Settings/Text Editor/Current Editor/Custom Editor

推荐使用 Visual Studio Code,对应的第三方编辑器配置定义:/path/to/vscode -g [file name]:[line number],如 "C:\Program Files\Microsoft VS Code\Code.exe" -g [file name]:[line number]

第三方文编辑器

VS Code 相关扩展:

实验板卡

Xilinx Artix-7 xc7a100tfgg484-2L

xc7a100tfgg484-2L

烧录端口驱动

Windows 驱动安装包参见文件 CH341SER.EXE出处)。

在设备管理器中,正确驱动的板卡应如下图所示:

CH340

比特流烧录

项目生成的比特流文件位于 <project>/<project>.runs/impl_1,如 01_Test/01_Test.runs/impl_1/Board.bit

由于实验板卡并不支持 Vivado 内置的烧录功能,上游提供了专门的烧录工具,仅支持 Windows 平台。文件参见:BitstreamDownloader.exe

比特流烧录

如烧录工具无法运行,应为缺少相应的微软 VC++ 运行库,可以安装这个合集出处)。

配置管脚

快速索引

时钟

实验板的系统时钟从 FPGA 的 H4 引脚接入,其对应的 Pin Name (Site Type) 为 IO_L12P_T1_MRCC_35

  • 如需连续提供的时钟脉冲(如扫描数码管),可接入获得系统时钟。如需更低的频率,可使用系统时钟进行计数,达到延时、分频的目的。
  • 如需手动控制的时钟脉冲(如切换运算符),可接入下文中的开关 SW 或按钮 SWB。其中 32 个开关需要用户在接入后自行处理抖动,否则可能得到稳定性较差的脉冲;6 个按钮则均已硬件消抖,更推荐用作脉冲

返回索引

开关*32

表格说明:

  • PCB 为电路级别的引脚编号,在板卡图片中已标出对应位置;
  • Pin 为 FPGA 级别的引脚编号,在约束文件中配置管脚时将会填写这一项,如 set_property PACKAGE_PIN T3 [get_ports {sw[1]}]
  • Pin Name / Site Type 为芯片级别的引脚名称,前者出自上文的 Xilinx 官方资料,后者出自 Vivado 的 I/O Ports 查询窗口。

每个开关上方均对应一个指示灯,用于指示开关当前状态,亮为高电平,灭为低电平。

PCB Pin Pin Name / Site Type
SW01 T3 IO_0_34
SW02 U3 IO_L6P_T0_34
SW03 T4 IO_L13N_T2_MRCC_34
SW04 V3 IO_L6N_T0_VREF_34
SW05 V4 IO_L12P_T1_MRCC_34
SW06 W4 IO_L12N_T1_MRCC_34
SW07 Y4 IO_L11P_T1_SRCC_34
SW08 Y6 IO_L18P_T2_34
SW09 W7 IO_L19N_T3_VREF_34
SW10 Y8 IO_L23P_T3_34
SW11 Y7 IO_L23N_T3_34
SW12 T1 IO_L1P_T0_34
SW13 U1 IO_L1N_T0_34
SW14 U2 IO_L2P_T0_34
SW15 W1 IO_L5P_T0_34
SW16 W2 IO_L4P_T0_34
SW17 Y1 IO_L5N_T0_34
SW18 AA1 IO_L7P_T1_34
SW19 V2 IO_L2N_T0_34
SW20 Y2 IO_L4N_T0_34
SW21 AB1 IO_L7N_T1_34
SW22 AB2 IO_L8N_T1_34
SW23 AB3 IO_L8P_T1_34
SW24 AB5 IO_L10N_T1_34
SW25 AA6 IO_L18N_T2_34
SW26 R2 IO_L3N_T0_DQS_34
SW27 R3 IO_L3P_T0_DQS_34
SW28 T6 IO_L17N_T2_34
SW29 R6 IO_L17P_T2_34
SW30 U7 IO_25_34
SW31 AB7 IO_L20P_T3_34
SW32 AB8 IO_L22N_T3_34

返回索引

按钮*6

按住时为高电平,松开时为低电平。

PCB Pin Pin Name / Site Type
SWB1 R4 IO_L13P_T2_MRCC_34
SWB2 AA4 IO_L11N_T1_SRCC_34
SWB3 AB6 IO_L20N_T3_34
SWB4 T5 IO_L14P_T2_SRCC_34
SWB5 V8 IO_L21N_T3_DQS_34
SWB6 AA8 IO_L22P_T3_34

返回索引

LED*32

PCB Pin Pin Name / Site Type
LED01 R1 IO_L20P_T3_35
LED02 P2 IO_L22P_T3_35
LED03 P1 IO_L20N_T3_35
LED04 N2 IO_L22N_T3_35
LED05 M1 IO_L15P_T2_DQS_35
LED06 M2 IO_L16N_T2_35
LED07 L1 IO_L15N_T2_DQS_35
LED08 J2 IO_L9N_T1_DQS_AD7N_35
LED09 G1 IO_L5P_T0_AD13P_35
LED10 E1 IO_L3P_T0_DQS_AD5P_35
LED11 D2 IO_L4N_T0_35
LED12 A1 IO_L1N_T0_AD4N_35
LED13 L3 IO_L14P_T2_SRCC_35
LED14 G3 IO_L11N_T1_SRCC_35
LED15 K4 IO_L13P_T2_MRCC_35
LED16 G4 IO_L12N_T1_MRCC_35
LED17 K1 IO_L7P_T1_AD6P_35
LED18 J1 IO_L7N_T1_AD6N_35
LED19 H2 IO_L8P_T1_AD14P_35
LED20 G2 IO_L8N_T1_AD14N_35
LED21 F1 IO_L5N_T0_AD13N_35
LED22 E2 IO_L4P_T0_35
LED23 D1 IO_L3N_T0_DQS_AD5N_35
LED24 B1 IO_L1P_T0_AD4P_35
LED25 B2 IO_L2N_T0_AD12N_35
LED26 N3 IO_L19N_T3_VREF_35
LED27 M3 IO_L16P_T2_35
LED28 K3 IO_L14N_T2_SRCC_35
LED29 H3 IO_L11P_T1_SRCC_35
LED30 N4 IO_L19P_T3_35
LED31 L4 IO_L18N_T2_35
LED32 J4 IO_L13N_T2_MRCC_35

返回索引

数码管*8

8 位七段数码管,采用共阳极接法,并由内部译码器反相驱动。

使能信号

全部 8 位数码管的使能信号,高电平有效。

PCB Pin Pin Name / Site Type
DS3 L21 IO_L10N_T1_AD11N_15

片选编码

通过 3-8 译码选择驱动 8 位数码管中的哪一位,低电平有效。

PCB Pin Pin Name / Site Type
DS2 M22 IO_L15N_T2_DQS_ADV_B_15
DS1 M21 IO_L10P_T1_AD11P_15
DS0 N22 IO_L15P_T2_DQS_15

{DS2, DS1, DS0}3'b000 时,逻辑上对应十进制的 7,表示最左边即最高位数码管被选中,并根据下文中的段选信号显示一个十六进制数码。

欲使 8 位数码管在视觉上同时显示 32 位二进制数据,需要以一定的频率循环片选信号,对数码管进行扫描刷新。

  • 频率过低时,扫描过程将会肉眼可见,效果类似流水灯;
  • 频率过高时,分配给每位数码管的周期太短,供电不足,亮度降低。

建议在测试实验中调整分频倍数以获得相对理想的扫描频率。

段选信号

选择点亮数码管的哪些笔划,低电平有效。

PCB Pin Pin Name / Site Type
DS_a H19 IO_L12N_T1_MRCC_15
DS_b G20 IO_L8N_T1_AD10N_15
DS_c J22 IO_L7P_T1_AD2P_15
DS_d K22 IO_L9N_T1_DQS_AD3N_15
DS_e K21 IO_L9P_T1_DQS_AD3P_15
DS_f H20 IO_L8P_T1_AD10P_15
DS_g H22 IO_L7N_T1_AD2N_15
DS_dp J21 IO_L11N_T1_SRCC_15

各划的排序参见下图(出处):

七段数码管各划的排序

如数码 0 对应的段选信号为 8'b0000_0011(从高到低约定为 a, b, c, ... g, dp)。

返回索引