1nnocent

  • 2024-12-10
  • 回复了主题帖: FPGA 数据变量使用问题?

    定义信号时放前面,处理信号固定bit位时放后面表示要处理的bit范围

  • 2024-12-06
  • 发表了主题帖: 【复刻瀚文键盘】7、键盘组装(完工)

    本帖最后由 1nnocent 于 2024-12-1 16:37 编辑     经过不懈的努力终于来到了最后的外壳组装环节。     外壳的组装主要分成三块,分别为USB hub底座的组装、扩展功能部分的组装和键盘主体的组装。 1、 USB hub组装     这部分主要是hub板子和锂电池充电板以及锂电池的组装。最后组装时没有使用之前的USB hub板子,之前的板子教分散转接板较多,现在使用的绿色板子有做合并,绿色板子是复刻键盘过程中认识的朋友给的,我之前那个板子功能也能正常使用。   2、键盘主体组装     键盘主体的之前有安装好键轴、隔音棉、定位板等这里就只要安装好和USB hub的转接和触摸条的转接,最后装上下盖,安装键帽即可。     3、扩展部分安装     这部分的安装算是最复杂的部分,细小零件相对多一点,使用的螺丝种类也较多。以下是安装完成后的效果。        最终安装完的效果:     键盘全貌:       演示视屏: [localvideo]27bc93e17cb02194b1b15af6913d4e50[/localvideo] [localvideo]197c5db0c31bb816ebfa2e763a579876[/localvideo]  

  • 2024-12-04
  • 发表了主题帖: 【复刻瀚文键盘】6、软件调试(扩展板)

    本帖最后由 1nnocent 于 2024-12-1 16:31 编辑     键盘主体功能已经没问题,剩下扩展板功能,该功能也调通后就可以进行最后键盘外壳的安装。扩展板改动较多,所以不经要排查硬件加工问题,由于之前原理图上使用的电机驱动芯片的封装使用了QFN,所以事先将芯片换掉了,原理有做修改。     刷固件前先通电测试各部分电源供电正常后接上各种外设,该扩展键盘需要接上一个OLED屏幕、一个墨水屏、一个电机。       待刷入固件后可以通过上位机向扩展板传输需要显示的图片,这里随便照一张图片试下效果,图片可以正常显示。       按下按键能够切换OLED屏的菜单显示,OLED也能正常工作。   [localvideo]fe9dbe467d81755253695dfa7cd7178c[/localvideo]     测试电机时发现电机的回弹功能存在失效的问题,检查完硬件焊接已经原理都没问题后尝试更换了一个电机的霍尔芯片后发现功能正常应该是买到的芯片良品率不太行估计是翻新件。这个问题排查了较久因为原理图上有做一些修改。以下为最终电机功能的演示效果: [localvideo]9343c416198286da2f3bfea3a401651f[/localvideo]     至此韩文键盘的功能已经验证完成,还剩最后外壳的包装工作就能完成复刻了。  

  • 2024-12-03
  • 发表了主题帖: 【复刻瀚文键盘】5、软件调试(键盘主体)

    本帖最后由 1nnocent 于 2024-12-1 16:30 编辑     之前已经将硬件全部加工完成,现在使用网络上找到的固件进行调试,键盘主体前期在硬件上只做了阻容元件封装上的变动原理上不会出什么问题,主要查看硬件加工上是否存在问题。输入相应的固件后马上就能看到键盘的led灯珠亮起,虽然有进行补焊但还是出现了虚焊的问题,明显能看到部分灯珠没有点亮,由于键盘的灯珠都是串联的所以不亮的地方都是成片出现的,只需要找到最前面那个不亮的灯珠进行补焊就好,补焊完成之后灯珠全部亮起。       测试完灯珠还需要检测按键是否都正常,这里的时候可以不用万用表一个个去测试,直接使用在线键盘测试网站进行测试。你点击哪个按键网页上的相应按键就会被检测到被按下。在线键盘测试,经过测试按键全部正常。       连接电脑后成功识别到键盘,以下为使用效果: [localvideo]283413ce3216409edeaefcd4a8300cb6[/localvideo] [localvideo]f654c8907625382d4605fd2549c3cf81[/localvideo]  

  • 2024-12-02
  • 回复了主题帖: 【复刻瀚文键盘】5、软件调试(键盘主体)

    秦天qintian0303 发表于 2024-12-2 09:32 背光灯是单色的还是彩色的,都能独立控制吗? 可以,但是目前还没有控制灯效的固件目前就是固定一种灯效

  • 回复了主题帖: 【复刻瀚文键盘】6、软件调试(扩展板)

    秦天qintian0303 发表于 2024-12-2 09:31 电机驱动会考虑供电问题吗?   电机驱动有外加锂电池,usb带不动电机加了锂电池,升压到12V去驱动电机

  • 回复了主题帖: 【复刻瀚文键盘】7、键盘组装(完工)

    秦天qintian0303 发表于 2024-12-2 09:20 这些按键帽也是定制的吗?   直接买的

  • 2024-12-01
  • 发表了主题帖: 【复刻瀚文键盘】4、硬件PCB加工

        本来预计9月份做完但是由于工作原因以及键盘外壳定制两个事情一直拖着进度,一直没有更新完,键盘实际上9月中旬就已经做出来但是没空更新。现在稍微空闲了一点所以简单记录一下复刻过程。 1、转接板加工     韩文键盘有不少转接板,之前还花了点功夫去研究这些转接板怎么连接的,给人的感觉还是有点复杂转接板有点分散,有些转接板还是可以合并一下,减少转接板简化接线。以下是所有只为转接功能的转接板。       这些转接板基本上都有fpc母座,直接手工焊接可能还得费点功夫,这里直接用锡膏更快捷,为避免连焊直接上下交错点上锡膏。        2、USB hub加工     板子器件较少,加工难度还是在fpc母座的焊接上,实际加工下来也没碰上什么问题。   3、电机驱动模加工     这块板子是器件最多的一块,加工难度也是最大的,锡膏有点久没用了好像有点问题出现了挺多虚焊的地方。事先将0402封装换成0603以及将部分QFN封装的芯片换成了SOP封装的操作降低了不少加工难度,唯一缺点就是封装变大了板子布局变得比之前紧凑了。好在最终也成功加工完成。   4、键盘主体加工     键盘主体加工主要是工作量,键盘轴座的焊接将近有100个,加工的时候使用锡膏,配合加热台,加热台有点偏小分成好几次加热。这次加工也因为锡膏出现了好多虚焊的地方,后面又实用烙铁将轴座重新补焊了一遍。另外在加热板子时由于键盘主体较大,有大部分pcb悬空在焊台外面,一加热由于重力作用导致PCB主体变形,最终加工完成后又重新加热将板子形状尽量复原了一下。            加工完成之后的样子:           确认好硬件焊接没什么问题后安装隔音棉、定位板、键轴等。           至此硬件已经全部加工完成,后续进行软件的调试,韩文键盘现在处理原版的固件网上已经有好多固件可以用,后续直接使用网络上的固件进行调试。

  • 2024-11-28
  • 回复了主题帖: 清华AI医院首批42位AI医生亮相,诊断覆盖300余种疾病

    这种AI医生会不会只会医治已经出现的过的病症,对新出现的疾病会不会无从下手

  • 2024-11-20
  • 回复了主题帖: FPGA设计一个FIR数字滤波器(vivado+MATLAB)

    uestc_fpgaer 发表于 2024-11-19 19:57 配置和仿真给的比较充分,空闲了自己搭建一个,感谢分享 搭一个也挺快的 。

  • 2024-11-18
  • 回复了主题帖: FPGA设计一个FIR数字滤波器(vivado+MATLAB)

    okhxyyo 发表于 2024-11-18 11:42 酷!!!!!给你一个超大的赞!!

  • 发表了主题帖: FPGA设计一个FIR数字滤波器(vivado+MATLAB)

    本帖最后由 1nnocent 于 2024-11-23 11:24 编辑 要求     设计一个带通滤波器,并验证其功能。 1、使用MATLAB设计滤波器系数     MATLAB首页找到APP后找到滤波器设计工具并打开,使用该工具可以生成数字滤波器的系数后续用于FPGA配置FIR IP核。       打开滤波器设计工具后即可输入相关参数并设计需要的滤波器,本次设计一个带通滤波器,所以滤波器响应类型选择带通;设计方案选择FIR(有限冲激响应);滤波器阶数这里选择最小阶,也可以自己指定阶数,阶数越大滤波器的滤波效果越好但越耗费FPGA资源,阶数可以根据实际情况进行取舍;密度因子默认20;频率设定,本次设计的采样率设置为10MHz,滤波器的频率特性设置可以按照图示进行填写,图片指示的意义很清楚,Fstop1为下限阻带截止频率,这里设置为50kHz,Fpass1为下限通带截止频率,这里设置为100kHz,Fpass2为上限通道截止频率,这里设置为400kHz,Fstop2为上限阻带截止频率,这里设置为450kHz(Fpass1-Fstop1和Fstop2-Fpass2为过渡带宽度,本次设计的过渡带宽度为50kHz;Fpass2-Fpass1为通带宽度,本次设计的通带宽度为400kHz;其余为阻带);幅值设定,其中Astop为阻带衰减的幅度值,本次设计阻带衰减50dB,Apass为通带的纹波,这里限制通带纹波不超过0.1dB。       设置好以上参数后点击滤波器设计,等待片刻即可设计好所需滤波器,从左侧窗口当前滤波器信息中可以发现符合本次设计需求的最小阶数为483阶。       点击工具栏  可以查看滤波器幅值响应、相位响应、零极点等。     点击工具栏文件--导出,即可导出设计的滤波器系数。导出后可以在工作区中看到滤波器系数的变量Num。       以下为本次导出的系数,一共484个。       滤波器系数在FPGA中导入时每个系数之间需要逗号隔开,所以这里将系数保存到txt并使用逗号隔开,注意最后一个数的逗号需要删除。       生成后的系数删除最后的逗号。   2、FPGA中FIR的实现   这里省略FPGA工程建立过程,新建工程后点击Create Block Design。       添加FIR IP核。       配置FIR IP核,Filter Option中Select Source选择Vector,Coefficient Vector中粘贴之前MATLAB生成的系数,其余保持默认。左边Freq.Response窗口中可以查看频率响应曲线。       Channel Specification中主要配置采样率和工作时钟,input Sampling Frequency(MHz)配置10MHz采样率,后续DDS工作时钟需要和采样率保持一致;Clock Frequency(MHz)配置200MHz后续FIR IP核的工作时钟给200MHz。       Implement配置,Coefficient With可以根据需要进行配置,本次设计时配置成24,配置成24时通过查看左边Freq.Response窗口可以发现两条红色和蓝色曲线重合较接近理想曲线Ideal,所以这里配置成24,也可以根据需要进行配置。       Interface这里配置如下:      FIR配置完后再增加一个fifo,配置如下:     配置完后将FIR和fifo相连并引出接口:       最后右击block design先generate Output ...再Create HDL...。   3、FPGA中DDS的实现     这里DDS用于产生FIR的输入信号。同样点击Create Block Design,添加DDS IP核。       Configuration配置System Clock(MHz)为10MHz即可,其余保持默认配置。       Detailed Implementation配置如下:       最后输出频率配置成0.15MHz即150kHz,也可以根据需要进行配置。       按照上述配置再生成50kHz、350kHz、450kHz频率的DDS。       生成完DDS后再生成一个fifo。该fifo用于跨时钟域,将DDS产生的10MHz时钟域的信号转到200MHz时钟域输入FIR进行滤波。fifo配置如下,深度16,数据位宽16bit。       最后将生成的IP核按下图连线,该dds用于测试fir滤波器。可以外部可以将DDS生成的350kHz和150kHz进行叠加后再输入到fifo中,最后经过跨时钟域后从Multi_wave_M_AXIS输出到FIR进行滤波,叠加后的波形存在和频(500kHz)、差频(200kHz),经过滤波器后只剩下差频200kHz,如果滤波器输出200kHz正弦波则说明设计符合预期。也可以将单频信号(50kHz/150kHz/350kHz/450kHz)输入滤波器查看滤波器输出幅度情况。   4、top模块编写      顶层模块例化两个block_design ,dds产生50kHz、150kHz、350kHz和450kHz的正弦信号,外部将dds生成的其中两个信号做乘法后输入到dds的fifo接口中,使相乘的信号从10Mhz时钟域到200Mhz时钟域,最后输入到FIR中进行滤波。如果需要测试FIR单频信号的滤波器则可以将DDS输出的其中一个信号与常数相乘后再输入到FIR中进行测试。另外top模块中还需例化一个pll产生10MHz时钟用于DDS产生信号,以及200MHz时钟用于FIR。 module fir_top( input pl_ref_clk_100m_p, input pl_ref_clk_100m_n ); reg [4:0] cnt; wire clk_10m,clk_200m; wire signed [7:0] M_AXIS_50k_tdata; wire M_AXIS_50k_tvalid,M_AXIS_50k_tready; wire signed [7:0] M_AXIS_150k_tdata; wire M_AXIS_150k_tvalid,M_AXIS_150k_tready; wire signed [7:0] M_AXIS_350k_tdata; wire M_AXIS_350k_tvalid,M_AXIS_350k_tready; wire signed [7:0] M_AXIS_450k_tdata; wire M_AXIS_450k_tvalid,M_AXIS_450k_tready; wire signed [15:0] Multi_wave_S_AXIS_tdata; wire Multi_wave_S_AXIS_tvalid,Multi_wave_S_AXIS_tready; wire signed [15:0] Multi_wave_M_AXIS_tdata; wire Multi_wave_M_AXIS_tvalid,Multi_wave_M_AXIS_tready; wire signed [15:0] FIR_S_AXIS_tdata; wire FIR_S_AXIS_tvalid,FIR_S_AXIS_tready; wire signed [23:0] FIR_M_AXIS_tdata; wire FIR_M_AXIS_tvalid,FIR_M_AXIS_tready; assign rst_n = locked; // Multi_wave_S_AXIS assign Multi_wave_S_AXIS_tdata = M_AXIS_450k_tdata * 8'hff/*M_AXIS_350k_tdata */; assign Multi_wave_S_AXIS_tvalid = M_AXIS_450k_tvalid & 1/*M_AXIS_350k_tvalid */; assign M_AXIS_50k_tready = Multi_wave_S_AXIS_tready; assign M_AXIS_150k_tready = Multi_wave_S_AXIS_tready; assign M_AXIS_350k_tready = Multi_wave_S_AXIS_tready; assign M_AXIS_450k_tready = Multi_wave_S_AXIS_tready; // Multi_wave_M_AXIS assign FIR_S_AXIS_tvalid = Multi_wave_M_AXIS_tvalid; assign FIR_S_AXIS_tdata = Multi_wave_M_AXIS_tdata; assign Multi_wave_M_AXIS_tready = FIR_S_AXIS_tready; assign FIR_M_AXIS_tready = (cnt == 'd19) && Multi_wave_M_AXIS_tvalid; dds_design_wrapper dds_design( .M_AXIS_150k_tdata (M_AXIS_150k_tdata ), .M_AXIS_150k_tready (M_AXIS_150k_tready ), .M_AXIS_150k_tvalid (M_AXIS_150k_tvalid ), .M_AXIS_350k_tdata (M_AXIS_350k_tdata ), .M_AXIS_350k_tready (M_AXIS_350k_tready ), .M_AXIS_350k_tvalid (M_AXIS_350k_tvalid ), .M_AXIS_450k_tdata (M_AXIS_450k_tdata ), .M_AXIS_450k_tready (M_AXIS_450k_tready ), .M_AXIS_450k_tvalid (M_AXIS_450k_tvalid ), .M_AXIS_50k_tdata (M_AXIS_50k_tdata ), .M_AXIS_50k_tready (M_AXIS_50k_tready ), .M_AXIS_50k_tvalid (M_AXIS_50k_tvalid ), .Multi_wave_M_AXIS_tdata (Multi_wave_M_AXIS_tdata ), .Multi_wave_M_AXIS_tready(Multi_wave_M_AXIS_tready), .Multi_wave_M_AXIS_tvalid(Multi_wave_M_AXIS_tvalid), .Multi_wave_S_AXIS_tdata (Multi_wave_S_AXIS_tdata ), .Multi_wave_S_AXIS_tready(Multi_wave_S_AXIS_tready), .Multi_wave_S_AXIS_tvalid(Multi_wave_S_AXIS_tvalid), .aresetn (rst_n ), .clk_10m (clk_10m ), .clk_200m (clk_200m ) ); always@(posedge clk_200m or negedge rst_n)begin if(!rst_n)begin cnt <= 'd0; end else begin cnt <= (cnt == 'd19)? 'd0 : (cnt + 1'b1); end end bandpass_fir_wrapper bandpass_fir( .FIR_M_AXIS_tdata (FIR_M_AXIS_tdata ), .FIR_M_AXIS_tready (FIR_M_AXIS_tready ), .FIR_M_AXIS_tvalid (FIR_M_AXIS_tvalid ), .FIR_S_AXIS_tdata (FIR_S_AXIS_tdata ), .FIR_S_AXIS_tready (FIR_S_AXIS_tready ), .FIR_S_AXIS_tvalid (FIR_S_AXIS_tvalid ), .aresetn (rst_n ), .clk_200m (clk_200m ) ); clk_wiz_0 pll( .clk_10m(clk_10m), .clk_200m(clk_200m), // output clk_200m .reset(1'b0), // input reset .locked(locked), // output locked .clk_100m_in(clk_100m) // input clk_100m_in ); IBUFDS clk_100m_ibufds( .O (clk_100m), .I (pl_ref_clk_100m_p), .IB (pl_ref_clk_100m_n) ); endmodule 5、功能仿真        DDS产生的四个信号如下: 50kHz信号,一个时钟周期的时间为102.31-82.31=20us,刚好为50kHz。  150kHz,一个时钟周期的时间为82.51-75.91=6.6us,频率约为151515Hz。  350kHz,一个是时钟周期的时间为71.21-68.31=2.9us,频率约为344827Hz。  450kHz,一个时钟周期的时间为91.51-89.31=2.2us,频率约为454545Hz。       将150kHz正弦和350kHz正弦叠加后输入到FIR,输入信号代码修改如下(配图中的频率写错了,实际是150kHz和350kHz相叠加,图片的是450kHz和350kHz,图片上的组合也不影响测试FIR,因为两个信号的和频以及差频为800kHz和100kHz,经过滤波器后100kHz信号正常输出而800kHz信号则被滤除):       两个光标之间的间隔为112.975-102.975=10us,每个时钟周期为5us,所以滤波器输出的频率为200kHz。由于输入的信号为150kHz正弦波叠加350kHz的正弦波,叠加后的波形存在和频500kHz和差频200kHz,由于500kHz在滤波器通频带外,所以500kHz的信号会被滤除,经过滤波器后只剩下200kHz的正弦波。所以仿真结果符合滤波器特性。仿真波形如下图,其中FIR_M_AXIS_tdata信号为FIR滤波输出信号。       将50kHz正弦信号输入FIR,输入信号代码修改如下:50kHz信号与常数8‘hff叠加后输入到FIR。       由于50kHz在滤波器带外,所以经过滤波器后幅度应该被衰减。仿真波形如下图,FIR输出信号FIR_M_AXIS_tdata被衰减,符合预期。      将150kHz正弦信号输入FIR,输入信号代码修改如下:150kHz信号与常数8‘hff叠加后输入到FIR。       由于150kHz在滤波器带内,所以经过滤波器后幅度不变。仿真波形如下图,FIR输出信号FIR_M_AXIS_tdata幅度正常,符合预期。      将350kHz正弦信号输入FIR,输入信号代码修改如下:350kHz信号与常数8‘hff叠加后输入到FIR。       由于350kHz在滤波器带内,所以经过滤波器后幅度不变。仿真波形如下图,FIR输出信号FIR_M_AXIS_tdata幅度正常,符合预期。      将450kHz正弦信号输入FIR,输入信号代码修改如下:450kHz信号与常数8‘hff叠加后输入到FIR。       由于450kHz在滤波器带外,所以经过滤波器后幅度应该被衰减。仿真波形如下图,FIR输出信号FIR_M_AXIS_tdata被衰减,符合预期。   6、结论      从仿真结果可知输入信号不管是单频信号还是叠加后的双频信号,结果都符合预期。 工程源码下载地址: FPGA实现FIR滤波器

  • 2024-11-16
  • 回复了主题帖: hi,小伙伴们!这里有棵测评许愿树

    CYUSB3KIT-001,开发人员使用该套件能够将USB3.0设备的功能添加到任何系统中

  • 上传了资料: FPGA实现FIR滤波器

  • 2024-08-08
  • 回复了主题帖: vitis 2024.1 创建HLS工程问题

    littleshrimp 发表于 2024-8-8 12:04 版本很多 每个都不太一样 换个版本就得多学一些东西 版本变化确实太多了 差点不会用

  • 回复了主题帖: vitis 2024.1 创建HLS工程问题

    建议看看官方文档,我前几天使用vitis2023.2做HelloWorld实验也差点不会用了,跟着官方文档结合网络上的教程才成功了

  • 2024-08-01
  • 加入了学习《【Follow me第二季第1期】全部任务演示》,观看 全部任务演示2.0

  • 回复了主题帖: 【Zynq UltraScale+MPSoC学习01】Helloworld最小系统的搭建

    Jacktang 发表于 2024-8-1 08:56 跟着网络上旧版本的操作学习时都没能实现功能,看来新的Zynq PS变化挺多 主要还是刚开始学Zynq,而且用的软件版本也比较新。 vitis自带的串口调试也不知道在哪打开,直接用友善串口调试助手了

  • 2024-07-31
  • 发表了主题帖: 【Zynq UltraScale+MPSoC学习01】Helloworld最小系统的搭建

    本帖最后由 1nnocent 于 2024-8-5 11:38 编辑     实现PS端通过串口输出HelloWorld功能,熟悉ZYNQ的操作流程。本次实验使用的芯片是Xilinx Zynq UltraScale+ MPSoC系列,型号为XCZU9CG FFVB1156。使用的软件:vivado2023.2、vitis2023.2。 MPSoC最小系统     MPSoC最小系统包含ARM核心,DDR4,串口(用于打印PS端运行的信息)。   step1 创建vivado工程     打开vivado2023.2后Create Project,根据提示给工程命名并选择工程存放路径,选择相应的芯片(xczu9cg-ffvb1156-2-i)。   step2 使用IP Integrate Processing System     点击Create Block Design创建Block Design并命名,点击“+”号添加Zynq UltraScale+ MPSoC IP核。       生成下图的IP核:       双击该IP核配置外设,此时IP核中maxihpm0_lpd_aclk、pl_clk0、pl_resetn0、M_AXI_HPM0_LPD等接口,这些接口在本实验中不需要,所以要将这些接口关掉。双击IP核后点击UART1,在跳出的窗口中勾选UART1并选择MIO24.25(在选择MIO时需要查看硬件原理图将需要使用的串口接到芯片的那个引脚)。 step3 生成顶层HDL       选中I/O Configuration 中设置IO bank的供电电压(需要查看硬件原理图设置相应的供电电压);选中Clock Configuration,点击Output Clocks取消“PL0”的勾选该部分给PL提供时钟,由于本实验没有使用PL端所以取消勾选。         选中DDR Configuration,根据硬件原理图使用的DDR颗粒进行相应的配置。       选中PS-PL Configuration,取消Fabric Reset Enable和AXI HPM0 LPD。       以上配置完成后点击OK得到的IP核如下图所示,之前不需要的接口都去掉了。   step4 (生成Bitstream)并导出Hardware     本次实验没有使用PL端,所以不需要生成Bitstream,右击创建的Block Design并点击Generate Output Produces。       Generate Output Produces运行完成之后右击创建的Block Design并点击Create HDL Wrapper。       点击File->Export->Export Hardware。       由于没有Bitstream所以不需要include bitstream,命名并选择保存路径。   step5 在Vitis中进行软件设计     点击Tools->Launch Vitis IDE打开Vitis进行设计。       打开vitis后点击Open Workspace选择一个路径作为工作空间,建议在vivado工程目录下新建一个Vitis文件夹,并将生成的xsa文件放到该文件夹下,将这个文件夹设置为工作空间。       单击 Vitis Unified IDE 中的“File”(文件)选项,然后选中“New Component” → “Platform”(新建组件 > 平台)。       选择给Platform命名并选择保存路径后选中xsa文件的路径。          创建完成之后左边VITIS窗口中可以看到Platform工程。       点击自带历程选择HelloWorld       命名并选择保存路径。       选择刚刚创建的Platform后一路Next直到Finish。       创建完成之后左边VITIS窗口多了一个Application文件,点击Source->Src->helloworld.c可以查看代码。       坐标FLOW窗口中选中Platform文件并进行编译。       将文件换成Application文件,进行同上的编译操作。   step6 板级验证     硬件上连接JTAG接口和UART接口,打开串口调试助手进行以下设置并打开串口:       FPGA开发板进行上电,Vitis中运行代码并观察串口输出现象。       成功运行HelloWorld程序。   结语     本实验主要是熟悉Zynq PS端的开发过程,目前网络上找到的教程都是2023.2之前的版本,从2023.2之后的Vitis的操作界面和之前差别较大,跟着网络上旧版本的操作学习时都没能实现功能,最后结合官方文档《ug1400-vitis-embedded-zh-cn-2023.2.pdf》的操作流程后终于实现了HelloWorld功能。

  • 2024-07-26
  • 回复了主题帖: 想做一个触摸板的键盘

    okhxyyo 发表于 2024-7-25 18:59 @1nnocent  这个小伙伴也在整键盘,可以交流交流呀 最近工作比较忙要九月份以后更新了

统计信息

已有268人来访过

  • 芯积分:1120
  • 好友:3
  • 主题:129
  • 回复:704

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言