自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Git版本管理软件的安装及使用方法(Sourcetree)

官网下载Sourcetree软件并安装打开软件登陆账号,登录成功后后全部默认下一步即可不加载SSH密钥。

2024-04-13 17:13:25 1202

原创 C++ 学习笔记

枚举类型enum,常量const。数据类型(32位计算机)

2024-04-06 22:49:25 138

原创 Cadence Editor 关于画PCB相关内容

在Find面板中只勾选器件选项,鼠标左键框选需要复用的模块,右键点击创建复用模块,确保器件,过孔,走线,铜皮只要是模块内有的全部选中,若没全部选中则在Find面板中勾选Vias,Clines,Shapes,再次框选模块确保全部选中了。飞线是显示器件与器件之间的连接关系的,在工具栏中可以看到有两颜色不同但是图标相同的工具,绿色的是打开飞线,红色的是关闭飞线。可以查询任何东西的详细属性,选择查询工具,在Find栏中可以选择需要查询的类型,然后点击需要查询的东西,我这里查询的是DRC,这里会提示器件交叠。

2024-01-07 22:14:20 1869

原创 在Cadence中单独添加或删除器件与修改网络的方法

添加或删除器件,点击logic-part,选择需要添加或删除的器件,这里的器件必须是PCB中已经有的器件,Refdes中输入添加或删除的器件标号,点击Add添加。添加完成后就会显示在R1-3后面,点击Delete即可直接删除,完成操作后点击OK。添加完成后器件还需要放置出来,单击Place后器件会悬挂在鼠标鼠标上单击放置即可。放置完成后需要添加网络,点击Logic-net,然后需要在右边选择一个网络。选择好后单击需要赋予网络的焊盘即可,然后选择另一个网络后,再单击另一个焊盘。

2024-01-03 22:36:34 1373

原创 Quartus 18.1软件及支持包安装教程

把破解文件夹中的 Quartus_18.1_HBS.exe 文件复制到文件上面打开的文件夹中,右键以管理员身份运行,点击两次确定后,最后一个选择否即可,安装破解也就完成了。回到刚刚复制 ID 的地方,把文件添加到Quartus里面,点击OK,关闭Quartus,在桌面右键Quartus 图标,选择 打开文件所在位置。使用快捷键 CTRL+H 的替换功能把文档内的 XXXXXXXXXXXX 替换为刚刚复制的 ID 号,保存后关闭文档,把文档复制到安装目录下面。选择安装位置,等待安装完成。

2023-12-16 17:50:21 2606 1

原创 Cadence Editor画封装库以及调用方法

注:我所使用的是 Cadence 17.4 版本,以前的版本可能会有所不同在 Cadence 中画封装需要用到两工具,一个是焊盘编辑器,另一个就是画PCB的PCB Editor。焊盘工具在安装 Cadence 时也一并安装了,可以在开始菜单中找到,路径如下图所示。这里用NE555器件的封装演示。

2023-12-01 23:50:18 1533

原创 Vivado2023.1 最新版安装教程,以及遇到的问题

选择对应的操作系统就行,windows选择EXE,linux选择BIN。点击蓝色连接进入下载界面,这里会提示登录账号,直接随便注册一个就行,登录后下载界面的内容都不需要填写,直接点击下载即可,安装完成后在开始栏找到Manage Licenses 2023.1 ,选择 .lic 文件进行注册,注册完成后即可使用了。选择需要的资源,默认即可,点击安装等待完成,这个时间非常长。选择你所需要的版本,我这里安装的2023.1版本。输入AMD账号,勾选如下图所示,重新下载即可。选择vivado,选择企业版。

2023-11-29 16:53:15 12477 4

原创 Vivado vitis 2023.1 版本 hello world 教学,基于zedboard

点击vitis中的Program Device,选择在vivado中产生的bit流文件,一般情况下bit文件会在项目文件夹下的 项目名称。把Hlello world后面的 \n\r 改为 \r\n 在这里换行因该是\r\n,然后编译程序。选择板子,在老版本的vivado中在Boards中可以直接搜zedboard,新版本没了。打开串口调试助手,插好串口线,右键工程,点击Launch Hardware下载程序即可。新建应用项目,选择刚刚建立的平台,设置项目名称,点击下一步。最后把时钟连起来就行了。

2023-11-29 15:50:41 3207

原创 Cadence 关于画原理图相关笔记

选择添加的原理图库,就可以看到里面的元器件了,在Part内输入字母可以直接搜索名称,例如这里输入R,就会转跳到R开头的器件。选中器件或放置的时候按R会旋转,摁H和V会水平和垂直翻转。设置原理图属性,1选择单位,Inches是英尺单位,Millimeters是毫米单位,2选择纸张大小,一般选择A4大小,方便打印,3是自定义尺寸,每次修改只修改所选择的原理图。放置原理图器件,按快捷键 P 键,点击添加原理图库按键,会自动打开自带的原理图库的地址,选择最常用的Discrete库,同时也可以添加你自己的库。

2023-11-24 11:09:19 982

原创 Cadence 画原理图库以及调用方法

引脚放置也可以多个一起放置,点击Place-Pin Array,1第一个引脚名称,后续可以改,这里可以随便设置,2第一个引脚号,3需要放置多少个引脚,一般为一排或一列引脚的个数,4引脚间距,间距单位为格点,5引脚号增量,引脚号增量可以设置为负数。右键刚刚新建的原理图库,点击New Part新建器件,有3个地方需要设置,1是器件名称,2是器件标号首字母,例如芯片一般都是U,电阻为R,3是器件有几个Parts,设置完成后点击OK。把器件大小调整到合适的大小,点击Value设置器件名称,最后保存即可。

2023-10-28 23:12:40 3181

原创 Cadence Allegro使用笔记

自带库的地址:"安装目录"\SPB_17.4\tools\capture\library 常用的库:CAPSYM.OLB存放电源,地,输入输出口,标题栏等;CONNECTOR.OLB存放连接器,如 HEADER,CON,AT62,RCA,JACK,等;DISCRETE.OLB存放常用的电子元件,如电阻容杆,开关,变压器等;

2023-10-28 10:18:20 149

原创 RFSOC创建AXILITE外设点亮LED,与点亮MIO的LED

修改完保存后,点击Package IP窗口,选择前面没有打勾的界面,点击箭头所指的地方,把修改的内容跟新到IP核内。创建好后,把IP核添加到工程中,右键单击添加的IP核选择Edit in IP Packager,修改IP核。顶层部分一般是用来设置外接接口的,我们这里需要使用到LED,所以我们在这里添加4个外接LED接口,LED为输出外设所以端口模式为输出,并把LED端口引到底层部分。修改IP核的名称与存放地址,选择Lite,Slave模式,由于要使用4个LED,所以接口数量选择4。

2023-09-20 16:06:05 143

原创 在Vivado中,配置RFSOC的ZYNQ

接下来就是配置部分,配置的内容需要参照数据手册的内容来编写,大部分的开发板都是参照Vivado已有的配置,我们要做的就是对照数据手册选择对应的配置。找到USB的配置部分,与原理图中对应的地方,这块板子所使用的MIO为52-63在配置选项中为USB0,同时也是个USB3.0的接口,用到GT Lane2,所以在配置部分选择对应的选项。找到网口(GEM)的配置部分,与原理图中对应的地方,从原理中可以看出所使用的MIO是64到75,而配置部分的GEM3刚好与之对应所以选择GME3。

2023-09-20 14:59:58 983

原创 vivado中verilog编写RAM与IP核生成RAM

为什么要生成两个RAM呢,直接生成一个300Kx12的RAM不可以吗,答案是不可以,由于RAM 的生成规则,使用这种方式生成的RAM必须是2的次方数, 如果选择生成一个300K的RAM,那么系统会直接优化成512K的空间,这样会浪费很多没用上的RAM。搜索BRAM,选择Block Memory Generator ,双击IP核打开设置界面,设置如下,我们这里选择准双口IP核,真双IP核与准双IP核的区别是,真双口IP核的每一个口都能读写,准双口IP核一个口只能读,另一个口只能写。

2023-08-14 14:22:26 1492

原创 ZYNQ中断函数使用

首先在 vivado 中创建工程,由于本次使用的是 GPIO 中的 MIO 进行中断,所以在 vivado 中只需要添加一个 ZYNQ 的内核即可。然后在 SDK 中编写代码,代码如下。

2023-08-11 09:15:47 179

原创 Vivado使用VIO核PL端

先创建并添加VIO核,然后进行配置,第一页是设置输入探针的个数,最多可以设置256个,我这儿使用SW控制LED,所以只使用到1个输入和输出,第二页设置探针位数,这里的LED和SW都是8位,所以这里设置为8位。然后用IP核生成HDL文件,右键IP核选择生成HDL文件,弹出的选项卡第一个选项是生成编译的代码,修改后编译时使用的是修改后的文件,第二个是生成查看代码,修改差看代码,编译时还是会使用原来的代码,这里需要注意。把生成的代码修改为如下,然后添加引脚文件,生成bit流,烧录到板子里面去。

2023-08-02 13:13:47 573

原创 Vivado新建与添加外设IP核

接口模式改为Slave,生成ip核,然后在IP Catalog界面找个刚刚生成的IP核,如果没有,IP Catalog的界面可以在window栏中找到,修改完成后点击Run Implementation 进行编译,编译完成后,需要在psvkage IP - led_ip_coer窗口中更新添加的端口。找到IP核后,右键单击,选择Edit in IP Packager 添加IP核,会打开一个新的界面。添加完后把IP核重新打包,打包完后软件会自动关闭,到这里IP核的建立以及修改也就完成了。

2023-08-01 20:30:47 2143

原创 Vivado程序固化

首先打开SDK,单独打开的SDK的方法如下图所示。

2023-07-31 16:49:32 1572

原创 AD学习笔记

设置工作区间:先画好一个封闭区间,然后剪切,选择keep-out层,E+A选择第一个,paste在keep-out画好线。选择刚刚画好的封闭区间,D-S-D设置工作区间即可。CTRL+左键:高亮显示所选择的网络,这种状态下可以摁“{}”调节对比度,CTRL+左键点其他地方取消高亮选择,P+G:铺铜 铺铜过孔设置:D+R,设置好后,选择铜皮右键y+r重新铺铜。设置线宽:D-R-Design-r-rouying-width-width。L:打开图层显示窗口。shift+s:查看单层视图切换。

2023-07-31 09:41:06 213

原创 Vivado新建PL端与PS端工程

由于需要用到俩个GPIO模块所以在复制一个或者按住ALT加左键拖桶模块,然后就是连线了,最终结果如图所示,然后把上面那GPIO的名称改为LED,下面那个改为SW,还需要复位复位模块,在模块窗口空白的地方右键选择 ADD IP...添加模块,所搜reset添加复位模块。继续有点单击design_1,点击Create HDL 弹窗直接确定,生成verilog文件,再绑定引脚,先新建一个引脚文件,方式如下。双击GPIO模块,把位数改为8位,并把模式改为对应的模式,LED为输出,SW为输入。

2023-07-31 09:25:44 794

原创 C语言windows.h库学习笔记

类型变量存储,若获取失败返回NULL。FindWindow函数只能找到第一个符合条件的窗口,如果有多个符合条件的窗口,则只能找到第一个。还有个findwindow的加强版FindWindowEx,其增加了父窗口句柄与子窗口句柄。可以先用findwindow获取父窗口句柄,然后在父窗口下查找所有的子窗口。获取窗口句柄函数,返回值为窗口句柄,需要定义。

2023-07-29 23:40:53 402 1

原创 C语言复习笔记

计算机在编译时会自动把带小数点的常量按照双精度浮点数处理,分配8个字节,当我们定义float类型时给了5位小数,编译器会警报,意思为把一个双精度的数赋值给单精度的变量会损失精度,但是我们可以在常量的后面加上f,此时表示此常量就是单精度的,赋值时不会报错。在输出浮点型时可以在%后面紧跟一个浮点类型的常量,例如:%7.2f,表示为指定数据占7位,其中小数占两位,也可已不指定数据直接编写成%.2f,代表保留两位小数。,同理可以在单精度常量后面加上L,那么编译器会把单精度的常量作为long double类型处理。

2023-07-14 23:01:16 103 1

原创 FPGA学习笔记(十八)spi_flash模块代码

最后就是状态机了,0状态为输出状态,时钟和要发送的数据都为0,10状态为使能信号等待状态,当收到使能时,等待一段时间,这个时间为使能后与发送第一个数据的间隔时间,具体时间可以在数据手册中查询,我这里等待了半个多的sclk时间,然后就可以接受与发送数据了,注意在flash的接受和发送也需要数据稳定的时间,具体也可以在数据手册中找到,flash的发送数据为上升沿采样,提前在下降沿时改变数据,接受时为下降沿采样,在sclk的上升时改变数据。模块端口共有9个,5个输入4个输出。

2023-07-09 23:19:29 237 1

原创 FPGA学习笔记(十七)spi与flash,程序固化

spi通信的时钟采样可以通过CPOL与CPHA调整,CPOL设置时钟极性,也就是空闲状态下的时钟,当CPOL为0时,空闲状态下时钟为低电平,当CPOL为1时,空闲状态下的时钟为高电平,CPHA时钟相位,可以设置时钟是奇数边沿采样还是偶数边沿采样,当CPHA为0时,时钟在偶数边沿采样,就是第0,2,4个时钟边沿,当CPHA为1时,时钟在奇数边沿采样,也就是1,3,5个时钟边沿采样,这两可以组成4种采样模式。可以使用一主多从的方式进行通讯,通讯时通过片选,选定你要通讯的从机进行通讯。

2023-07-07 10:02:38 774 1

原创 FPGA学习笔记(十六)

uart串口的回环实验,串口的发送和接收前几期都已经详细介绍过了,这次只需建立一个顶层文件调用他们,输入参数:时钟clk,复位rst。我们还可以添加逻辑分析仪,用两个通道ch0与ch1连接到cp_rxd和cp_txd,此外还要连一个gnd,我们可以通过40pin的外接扩展,把cp_rxd与cp_txd连上去,在原理图中绑定对应的引脚,这样就可以观测到它们的数据变化了。运行流程,当接受到数据时,接受模块传出数据有效位,和有效的数据。接收到的数据传给发送模块,发送模块在把数据发送出去,整个流程就这样。

2023-07-05 16:11:40 65

原创 FPGA学习笔记(十五)

若判断下降沿是数据的起始位时,后续8位就是发送的数据位了,让状态机给隔一个flag周期向下传递,知道第9位,状态机的第10种状态时,此时接受到时信号是数据的校验位,根据前面选择的检验方式进行校验,若检验成功进入11,校验失败进入12,之后11,12,都进入13。uart串口接受模块的编写,宏定义参数由俩个分别是波特率和时钟频率,输入参数由时钟clk,复位rst,校验模式mod,校验模式有3种,当mod为0时是无校验模式,为1时是偶校验模式,为2时是奇校验模式。串口输入信号data_in。

2023-07-03 22:09:17 96 1

原创 FPGA学习笔记(十四)小总结

verilog的代码的编写要根据FPGA的运算规程来编程,最开始可以模仿别人的代码,然后在学习的过程中遇见更好的编写方式就记下来,并学习它,把它融汇贯通到你自己的代码中去,跟多的是一个公式化的编写方式,随着学习的时间增长,记下的公式也越来越多,那时候编写代码就是一个不断套公式的过程,所以不仅要自己写代码还要多看看别人的代码,你才能越来越强。以及代码边学过程中,尽量不要出现小学3年纪以上的数学公式,例如乘除取余操作,2的倍数乘除可以使用移位的操作完成,因为这些公式不利于FPGA的运算,会消耗大量的逻辑资源。

2023-07-02 23:34:41 55 1

原创 FPGA学习笔记(十三)

这样我们可以定义一个计数器,让它根据时钟来计数,当计数值等于频率除以波特率减一时,我们设置一个标志位flag等于1。再定义一个5位的寄存器select,当接收到发送使能时,并且收到标志位的高电平(每个标志位的间隔即是发送数据所需要的间隔)给select赋值为1,并且给接受使能置0,USART串口发送模块的编写,模块的参数列表输入信号有时钟clk,复位rst,发送使能tx_en,校验模式mod,时钟频率frequency,波特率baud,输出信号有串口发送的数据data,接受使能。所以有一个接收使能的输出。

2023-06-30 23:54:44 80

原创 FPGA学习笔记(十二)

接下来我们要考虑怎么减少除法与取余的运算,可以使用3个寄存器分别存储时分秒,当计数器计数到最大值时秒寄存器加1,当秒计数到最大时分寄存器加1,当分计数到最大值时时寄存器加1,如此就可以减少除法与取余的运算了。定义一个second_pulse秒脉冲,当检测到一个秒脉冲秒计数sec_c就加1,当秒计数到59后在检测到一个秒脉冲则清零,分计数min_c当秒脉冲计数到59,并且收到下一个秒脉冲,分计数器加1,当分计数器计数到58,秒计数器计数到59,并且收到下一个秒脉冲后进行清零,时钟计数器hur_c同理。

2023-06-29 17:08:22 311 1

原创 FPGA学习笔记(十一)

使用计数器的17~15位表示位选信号,调整位选信号在计数器的位置,可以改变数码管的频率,极大的简化了代码,如需要用到计数器的地方都可以考虑使用这种形式。in7~in0为8位数码管,输入参数为显示字模的编号,可以在第一部分的function中添加或减少,甚至修改字模的顺序。控制8位数码管,分两部分,一部分为产生位选和段选模块,另一部分为输出模块。第二部分为输出位选段选信号。

2023-06-28 18:01:00 225 1

原创 FPGA学习笔记(十)

使用两片74LS138合成片74LS238。74LS138使用Verilog表述方法。

2023-06-28 13:31:14 71 1

原创 FPGA学习笔记(九)

38译码器用veriloge语言描述,有行为描述和门级描述等,行为描述是根据输入与输出的差异根据真值表描述的方法,门级描述是根据电路图的电子元器件一个个描述形成的。在电路中_代表低电平有效,_p代表高电平有效,不加默认为高电平有效。使用case时可以考虑是否能用用移位的方式进行简化描述,在上面的38译码器中的行为描述里的case就可以使用移位方式实现。function的用法。

2023-06-27 09:23:56 50

原创 FPGA学习笔记(八)

case中的x与z的用法,x和z可以用在case的后面,组成casex与casez,或者用在case的分支项。使用case时表达式需要与分支项相同,使用casez时表达式与分支向中除有z或?的那一位,其他位数需要相同,使用casex时表达式与分支项除有z或x或?区分方法,用always加时钟边沿检测的就是时许逻辑电路,其它的都是组合逻辑电路。使用always时只有敏感条件为取边沿检测时才需要写铭感条件,其实时候敏感列表为“*”。同步复位是与时钟同步的复位,异步复位为无需时钟的边沿检测。

2023-06-25 21:47:53 58 1

原创 FPGA学习笔记(七),ADC转换(电压表),红外遥控

注:文章内容为本人学习笔记,若有错误欢迎指正或补充。1,ADC转换(电压表)在FPGA中使用ADC模块主要的端口有6个,3路输入,3路输出。输入有:时钟,复位,输入的数据。输出有:AD转换所需要时钟(使用不同的芯片所需要的频率不同)AD转换后的数据,AD转换后的数据符号。在ADC转换的数据采集前,ADC的数据采集先端口不接入信号,然后对ADC芯片采集到的数据取平均值,得到中值为,然后再对接入信号后采集到的数据与中值比大小,大则数据符号为正,反则反之。

2023-06-11 21:54:47 432

原创 FPGA学习笔记(六),RS485,频率计,DDS

注:文章内容为本人学习笔记,若有错误欢迎指正或补充。1,RS485串口常用的另一种接口RS485,它是双向半双工通信协议,信号采用差分传输方式。差分传输是一种数据传输模式,它有两个信号线,它们振幅相同相位相反,由两个信号的电位差决定输出的逻辑。与之相对的是单端信号,上期的RS232的信号传输就采用这种传输方式,它只有一个信号线,其逻辑值为与地之间的电位差。

2023-06-06 21:39:16 465

原创 FPGA学习笔记(五),串口

integer函数用于定义变量,寄存器数据类型,位宽为主机的字的位数,最小为32位,默认有符号类型。task函数,类似c语言中的非主函数,需要调用才运行内部代码,用法如下。//name为函数名称,data为输入信号/*内部代码需要调用才能运行*///函数结束标志endtake//在initial中调用,程序最开始的时候调用一次initialbeginend。

2023-06-02 21:50:34 291

原创 FPGA学习笔记(四),RAM-IP核,FIFO-IP核,VGA及图像显示

注:文章内容为本人学习笔记,若有错误欢迎指正或补充。1,RAM-IP核RAM随机存储器。在FPGA中RAM有单端口与双端口两种类型的RAM,双端口RAM又分为简单双端口RAM与正真双端口RAM。简单双端口RAM的一个端口只能读,另一个只能写,正真双端口RAM的两个端口都能读写。RAM进行读写操作一般需要时钟,地址,数据,使能信号。RAM-IP核的端口有:data 数据。

2023-05-30 17:02:51 350

原创 FPGA学习笔记(三),74hc595芯片,ip核,PLL-IP核与ROM-IP核

注:文章内容为本人学习笔记,若有错误欢迎指正或补充。1,74hc595芯片74hc595是一个串行输入并行输出的芯片,可以多个一起并用,每一个芯片有8个输出端口。输入端口: DS 输入端口。SHCP 移位寄存器时钟,用于把数据从DS传到移位寄存器中。STCP 储存寄存器时钟,用于把数据从移位寄存器传到存储寄存器中。OE 输出使能,低电平有效,从存储寄存器中把数据输出。MR 复位信号 ,电平有效,一般接VCC。Q7S 多个74hc595连用时这个端口连接下一个芯片的DS端口。

2023-05-27 10:15:44 306 1

原创 FPGA学习笔记(二),分频器,边沿检测,PWM,状态机

注:文章内容为本人学习笔记,若有错误欢迎指正或补充。

2023-05-23 13:00:37 446

原创 FPGA学习笔记(一),初识Verilog语言

参数定义一共有两个函数 parameter 和 localparam ,用法类似c语言中的宏定义,parameter可以用于实例化用法如下。#((...)endmodule//实例化格式example#((...)

2023-05-20 18:58:43 240

Vivado程序固化 bootloader文件 zynq-fsbl.elf

Vivado程序固化 bootloader文件 zynq-fsbl.elf

2023-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除