查看: 3664|回复: 5

Artix-7 35T Arty FPGA 评估套件学习 + SiFive risc-v 指令集芯片验证

[复制链接]
  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-11-2 16:45:00 | 显示全部楼层 |阅读模式
    分享到:
    目录
    1、简介
    2、深入
    3、DEMO
    4、SiFive基于risc-v指令集的芯片验证
    5、LINKS


    1、简介
    xlinx官网地址: https://china.xilinx.com/products/boards-and-kits/arty.html

    1.1 产品描述

    售价 99 美元的 Arty 评估套件可为各种嵌入式应用实现快捷跨越式启步,其中包括从基于 Linux 的计算密集型系统到轻量级微控制器等各种应用。 针对 Xilinx 业界最佳低端产品性能功耗比 Artix®-7 35T FPGA 精心设计Arty 套件具有 Xilinx 可针对几乎任何处理器使用案例进行定制的 MicroBlaze™ 处理器。

    1.2 主要性能和优势

    • Artix-7 XC7A35T-L1CSG324I FPGA
    • 片上模数转换器 (XADC)。
    • JTAG 与 Quad-SPI Flash 可编程
    • 256 MB DDR3L 支持速率为 667 MHz 的 16 位总线
    • 16 MB Quad-SPI Flash
    • 10/100 Mb/s Ethernet
    • USB-UART Bridge
    • 开关、按钮、RGB LED
    • 4 个 Pmod 接口 (32 I/O)
    • Arduino/ChipKit“盾”接插件 (49 I/O)



    1.3 特色 Xilinx 器件
    [td]
    项目个数
    逻辑单元33,280
    DSP Slice90
    存储器1,800
    GTP 6.6Gb/s 收发器4
    I/O 引脚250

    注:包含 Artix-7 XC7A35T-L1CSG324I FPGA

    1.4 电路板特性

    下图是整个开发板上资源的概览,更详细的可以参考:


    1.png
    注:板子自带JTAG,用于烧写FPGA固件的,DEBUG得用外置工具

    1.5 视频资源


    打开vivado,将开发板用一根数据线连接到电脑上,点击设备管理找到对应的设备;在工程页面,双击XADC可以出来一个温度曲线(这个视频花很大篇幅讲了XADC);右键点击xc7a35t,选择program device可以烧写程序;

    了解如何快速简单地在 Artix-7 A35T Arty 评估套件上不用任何 HDL而使用简单有效的 IPI 内置设计来评估 Xilinx 模拟混合信号 (AMS) 技术。 视频还展示了一些 TCL 脚本,通过 Vivado 轻松与 XADC 交互并后置处理数据。

    2.png


      展示了用freeRTOS工程的网络接口,做一个webserver








    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-11-2 16:47:01 | 显示全部楼层
    2、深入
    START地址: https://reference.digilentinc.co ... le-logic/arty/start

    2.1 两种开发方法HDL/SOC

    FPGA让Arty变得非常灵活。在众多的特点中,FPGAs有能力转换成定制的软件定义的片上系统(SoC)。这些“软SOC”FPGA配置使用图形化的工具ViVADO IP积分器(Vivado IPI)来设计。在这个工具中,从广泛的库中拖动预构建的外围块,并根据需要放入处理系统。这些预构建的外围设备包括定时器、UART/SPI/IIC控制器以及通常在SoC或微控制器中找到的许多其他设备。厉害的用户还会发现,他们可以用硬件定义语言(HDL),特别是Verilog或VHDL,来创建自己的外围块。对于那些对学习HDL不感兴趣的人来说,Xilinx高级合成工具可以通过用C编写自定义外围块来定义它们。

    ARTY的软SOC配置由MyBLAZE处理器核心提供。MixBRAZE是32位RISC软处理器内核,专门设计用于Xilinx FPGA。Arty SoC配置中的MicroBlaze处理器通常以100MHz运行,不过可以设计您的SoC,使其能够在200MHz上运行。Arty通过提供16MB的非易失性程序内存和256MB的DDR3L RAM,支持具有要求高的内存需求的大型MicroBlaze程序。

    3.png

    在设计好SOC配置之后,Xilinx也提供了工具用于在软核上应用程序开发。这是通过将您的SoC设计导出到Vivado IPI中并导入到Xilinx软件开发包(XSDK)中来完成的,它是一个用于设计/调试C中的MicroBlaze程序的集成开发环境(IDE)。在IPI到XSDK切换之后,XSDK被自动配置为包括用于SoC中包括的外围块的库和示例。此时,编程Arty非常类似于编程其他SoC或微控制器平台:程序用C编写,通过USB编程到板上,然后可选地在硬件中调试。软SoC配置和MicroBlaze程序也可以加载到16MB非易失性程序存储器中,以便在Arty上电后立即执行。

    尽管Arty特别适合Microblaze软SoC设计,它也可以像其他FPGA开发一样在门电路级别编程。此设计流程要求您在Vivado中使用HDL描述RTL电路,并且它不使用Vivado IPI或XSDK工具。这种设计有许多优点,但与编程单板计算机非常不同,而是由熟悉FPGA设计或对设计和实现不包含处理器的数字电路感兴趣的人使用。

    4.png

    2.2 电路板电源供应系统

    复杂电路一般都有多个芯片负构成整体电源系统,Arty板子也同样具备该系统:输入包括7~15V的DC接口和Micro-USB接口;其中DC接口后还接了一个ADP2384芯片,用于将输入电压降到5V;5V电压经过ADP5052芯片分压成多种电压,供后级系统使用;特别的ERF3012芯片用于将ADP5052电压稳定到1.25V,用于XADC的VREF:

    5.png

    下表是电源系统各路的去向:
    6.png








    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-11-2 16:49:35 | 显示全部楼层
    3、DEMO


    3.1 闪灯DEMO


    Getting Started with Vivado : https://reference.digilentinc.com/vivado/getting_started/start


    0) sudo 打开工程:



    1. source /opt/Xilinx/Vivado/2018.2/settings64.sh
    2. sudo /opt/Xilinx/Vivado/2018.2/bin/vivado
    复制代码


    1) 创建新工程,命令为blink:

    注:视频中创建blink文件的时候,clk and led 输入输出属性弄错了,真正的是:clk是output, led是input

    7.gif

    其中包含两个重要文件,第一个是板子文件,另一个是自己创建的verilog文件。对于板子文件要和自己的开发板相匹配,此外,对于本工程需要修改下板子文件(增加clk和led):
    1. ## Clock signal
    2. #set_property -dict { PACKAGE_PIN E3    IOSTANDARD LVCMOS33 } [get_ports { CLK100MHZ }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100]
    3. #create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { CLK100MHZ }];
    4. set_property -dict { PACKAGE_PIN E3    IOSTANDARD LVCMOS33 } [get_ports { clk }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100]
    5. create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { clk }];

    6. ...

    7. ## LEDs
    8. set_property -dict { PACKAGE_PIN H5    IOSTANDARD LVCMOS33 } [get_ports { led }]; #IO_L24N_T3_35 Sch=led[4
    9. #set_property -dict { PACKAGE_PIN H5    IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L24N_T3_35 Sch=led[4]
    10. #set_property -dict { PACKAGE_PIN J5    IOSTANDARD LVCMOS33 } [get_ports { led[1] }]; #IO_25_35 Sch=led[5]
    复制代码


    自己创建的.v文件为:
    1. module blink(
    2.     input clk,
    3.     output led
    4.     );

    5. reg [24:0] count = 0;
    6. assign led = count[24];
    7. always @ (posedge(clk)) count <= count + 1;
    8.    
    9. endmodule
    复制代码
    这样blink工程实现的功能便是:周期性的控制开发板上的LED0闪烁

    2) 编译烧写:

    接下来便是编译+烧写,编译需要先点击三角形(RUN)进行编译,然后再点击三角形右边的(create bitstream)产生*.bit文件,如果没有错误在messages中不会有错误提醒。接着左下角的PROGRAM AND DEBUG栏目中选择Open Hardware Manager进行连接开发板(连接时选择auto连接,如果找不到开发板,则说明其他哪里有问题):

    8.png

    烧写的时候点击左下角PROGRAM AND DEBUG区域中的program device便可:
    9.png

    此时点击Flow Navigator中的RTL ANALYSIS的Schematic会产生我们编写代码对应的原理图:
    10.png
    注:更详细的烧写方法见LINK-6,bit烧写掉电会没有,bin烧写会掉电保持










    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-11-2 16:52:54 | 显示全部楼层
    4、SiFive基于risc-v指令集的芯片验证
    4.1 准备工作

    1) Xilinx Artix-7 35T Arty FPGA Evaluation Kit开发板
    2) ARM-USB-TINY-H(这里我选用JLink当作Jtag用,省了点钱)
    3) FPGA toolchain(下载WEB版开发工具:https://www.xilinx.com/support/download.html)
    1. sudo chmod +x Xilinx_Vivado_SDK_Web_2018.2_0614_1954_Lin64.bin
    2. sudo ./Xilinx_Vivado_SDK_Web_2018.2_0614_1954_Lin64.bin
    复制代码
    下载合适的驱动:
    1. cd /opt/Xilinx/Vivado/2018.2/data/xicom/cable_drivers/lin64/install_script/install_drivers/
    2. sudo ./install_drivers
    复制代码
    获取Diailent板级支持文件,拷贝到Vivado下:
    1. git clone https://github.com/Digilent/vivado-boards.git
    2. sudo cp -r vivado-boards/new/board_files/*  /opt/Xilinx/Vivado/2018.2/data/boards/board_files/
    复制代码
    返回到HOME目录,启动环境变量(每次新打开一个termianl去启动VIVADO的时候,都需要执行):
    1. source /opt/Xilinx/Vivado/2018.2/settings64.sh
    2. sudo /opt/Xilinx/Vivado/2018.2/bin/vivado
    复制代码

    4) 通过vivado UI界面给板子配置(烧写pre-build FPGA二进制程序)

    预编译好的二进制FPGA文件Freedom E310 Arty FPGA Dev Kit Bitstream可以从https://dev.sifive.com/dashboard/下载(需要注册)

    打开vivado -> Hardware Manager -> 选择板子( Micron part n25q128-3.3v,也可以根据板子来筛选)-> add configuration memory device
    11.png

    烧写完毕后,点击PROG按键,demo程序将会执行,LED1、LED2会点亮,用上位机打开串口会发现LOG输出:
    1. <span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">sudo minicom -D /dev/ttyUSB0

    2. Welcome to minicom 2.7.1

    3. OPTIONS: I18n
    4. Compiled on Aug 13 2017, 15:25:34.
    5. Port /dev/ttyUSB0, 23:03:08

    6. Press CTRL-A Z for </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">help</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">on</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> special </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">keys</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">

    7. core freq </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">at</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">65000000</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> Hz

    8.                 SIFIVE, INC.</span>

    9. <span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">         </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555555555555555555555555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    10.         </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                   </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    11.        </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                     </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    12.       </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                       </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    13.      </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">       </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555555555555555555555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    14.     </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">       </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">555555555555555555555555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    15.    </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                             </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    16.   </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                               </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    17. </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                                 </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    18. </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5555555555555555555555555555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">          </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    19. </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">555555555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    20.    </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    21.      </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    22.        </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">                   </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    23.          </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">               </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    24.            </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">           </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    25.              </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">       </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    26.                </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">   </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    27.                  </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">555555555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    28.                    </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">55555</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    29.                      </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">5</span>

    30. <span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">SiFive E-Series Software Development Kit </span><span class="hljs-string" style="color: rgb(163, 21, 21); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">'demo_gpio'</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> program.
    31. Every </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">2</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">second</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">, the Timer Interrupt will invert the LEDs.
    32. (Arty Dev Kit </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">Only</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">): Press Buttons </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">0</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">, </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">1</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">, </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">2</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">to</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">Set</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> the LEDs.
    33. Pin </span><span class="hljs-number" style="line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">19</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> (HiFive1) </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">or</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> A5 (Arty Dev Kit) </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">is</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> being </span><span class="hljs-built_in" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">bit</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">-banged
    34. </span><span class="hljs-keyword" style="color: rgb(0, 0, 255); line-height: 1.5; font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">for</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"> GPIO speed demonstration.</span>
    复制代码

    BT0~3对应板子上的几个按键:
    1. <span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">*
    2. </span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">*
    3. </span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">**        Avnet/Digilent Arty Evaluation Board        **</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    4. </span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">**        LEDs and switches GPIO Demonstration        **</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">
    5. </span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">*
    6. </span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span class="hljs-strong" style="font-weight: bold; line-height: 1.5; color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap;">*****</span><span style="color: rgb(0, 0, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 12px; white-space: pre-wrap; background-color: rgb(245, 245, 245);">*
    7. **
    8. Choose Task:
    9. BTN0: Print PWM value.
    10. BTN1: 'Cylon' LED display.
    11. BTN2: Scrolling LED display.
    12. BTN3: Return to this menu.</span>
    复制代码
    注:只要用USB数据线连接上就行,查看串口会发现开发板占了两个USB,依次打开,第二个发现会有LOG输出
    注:此外上位机串口工具请参考: https://blog.csdn.net/zoujiachi666/article/details/79441340













    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-11-2 16:53:33 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-25 14:50
  • 签到天数: 1071 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2018-11-2 22:31:49 | 显示全部楼层
    看着好复杂的板子
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 22:41 , Processed in 0.155879 second(s), 26 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.