ViVado报错记录及解决方式
DRC NSTD-1|Place 30-494|DRC UTLZ-1|DRC BIVC-1|Synth 8-5535|DRC AVAL-326|USF-XSim-62|Unable to open file \ because the path is invalid
在HEXO文章中添加进度条
前言想在markdown中添加进度条记录事件进度,一番搜寻过后发现可以利用Bootstrap自定义进度条。但是出现了一些问题,该篇记录解决方案。
导入Bootstrap对于懒惰的我来说,不想自己构建进度条样式,直接引入他人写好的最为方便了,于是我找到了Bootstrap。引入的方式很简单,在博客主题config文件中找到inject,导入该链接即可
123456inject: head: - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" /> # - <link rel="stylesheet" href="/xxx.css"> bottom: # - <script src="xxxx"></script>
使用进入Bootstrap中文网查看样式以及例程。
问题 ...
Vivado用户说明
综合 (Synthesis)
参考: UG901 Vivado Design Suite User Guide : Synthesis
综合设置约束
物理约束:这些约束定义引脚位置,以及单元如块ram、lut、flip - flop和设备配置设置的绝对或相对位置。
时序约束:这些约束定义了设计的频率要求。在没有时间限制的情况下,Vivado Design Suite仅针对电线长度和放置拥堵进行了优化设计。
综合策略Default
功能:使用默认设置。
特点:提供一种平衡的优化方案,适合大多数设计需求。
RuntimeOptimized
RuntimeOptimized: Performs fewer timing optimizations and eliminates some RTL optimizations to reduce synthesis run time.
功能:减少时序优化,消除一些RTL优化,以减少综合运行时间。
特点:优先考虑快速运行时间,可能会牺牲一些设计性能。适用于对综合时间要求较高的设计场景。
AreaOptimized_high
P ...
GTX光通信
信息来源设备 : ZYNQ
技术手册 : Zynq 7000 SoC Technical Reference Manual (Zynq 7000 SoC技术参考手册)
参考该技术手册第21章节 Input/Output 小节下 GTX Low-Power Serial Transceivers 器件说明,其中可以获取到ZYNQ各个收发器对应的物理引脚约束信息。在 Out-of-Band Signaling 项目下提到:
For more details on GTX Transceivers, see 7 Series FPGAs GTX Transceiver User Guide (UG476).
或者进入 Vivado 在 IP core 的 IDE 界面的 Documentation -> Product Guide 可以获取对应 IP 文档。
GTX 时钟一个 Quad 包含4个收发器以及一个 GTXE2_COMMON 资源,无论用户在IDE中选择 QPLL还是CPLL,GTXE2_COMMON都会被例化,因此使用同一个Quad的不同收发器的例化时候需要注 ...
ZYNQ Uboot编译
参考Xilinx Wiki
Uboot下载
GitHub下载源码,地址https://github.com/Xilinx/u-boot-xlnx.git
下载主分支即可,不必听从网上教程下载与Vivado版本号相同的分支
Versioning:Starting with the release in October 2008, the names of the releaseswere changed from numerical release numbers without deeper meaninginto a time stamp based numbering. Regular releases are identified bynames consisting of the calendar year and month of the release date.Additional fields (if present) indicate release candidates or bug fixreleases in “stable” maintenance tre ...
Hexo | Butterfly 主题美化
博客主题配置记录教程:修改首页标题显示|修改顶部导航栏搜索图标排序|修改侧栏作者卡|固定导航栏|添加个人GitHub贡献度日历|设置动态星空背景|自动提交网址到Google和Bing
傅里叶变换原理(简易)
傅里叶变换连续与离散一般人们口中所说的傅里叶变换都是指连续傅里叶变换,针对的是连续时域信号。维基百科上是这么描述连续信号的:
连续信号或称连续时间信号是指定义在实数域的信号,自变量(一般是时间)的取值连续。若信号的幅值和自变量均连续,则称为模拟信号。根据实数的性质,时间参数的连续性意味着信号的值在时间的任意点均有定义。
简单来说,对于一个sin函数的连续信号,其波形长这样:
对于计算设备的信号处理,因为采样设备的采样率是有限的。因此得到的采样信号都是离散的,所以就有了针对离散信号的离散傅里叶变换。维基百科是这么描述离散信号:
离散信号是在连续信号上采样得到的信号。与连续信号的自变量是连续的不同,离散信号是一个串行,即其自变量是“离散”的。这个串行的每一个值都可以被看作是连续信号的一个采样。由于离散信号只是采样的串行,并不能从中获得采样率,因此采样率必须另外存储。以时间为自变量的离散信号为离散时间信号。离散信号并不等同于数字信号。数字信号不仅是离散的,而且是经过量化的。即,不仅其自变量是离散的,其值也是离散的。因此离散信号的精度可以是无限的,而数字信号的精度是有限的。而有着 ...
GT Wizard 多通道问题
在使用Xilinx提供的GT Wizard IP核时例化了多个两个收发通道,前期测试时只接了通道0,测试正常。但后期接入通道1时出现问题。当我断开通道0,只连接通道1时,数据接收错乱了。多方查询后发现是使用Vivado生成的仿真例程有问题,修改例程文件中的时钟连接逻辑即可解决例化多通道时只使用单通道有可能出现数据时钟错乱的问题。
环境
Vivado 2021.2.1
VScode Portable
分析解决问题定位右键IP核生成IP仿真例程后,可以在工程列表中找到类似gtwizard_0_GT_USRCLK_SOURCE。v的文件,这是用于配置GTX时钟资源的文件,其中在末尾的发送与接收时钟输出的语句可以看到问题所在,例程在仿真时输出的时钟全部采用通道0的时钟,因此在综合后上板子调试后,若通道0空载,则输出的恢复时钟混乱造成数据处理时序混乱。代码如下:
12345678910111213141516171819202122232425 // Instantiate a MMCM module to divide the reference clock. Uses int ...
数字下变频(DDC)、数字上变频(DUC)
概述了数字变频的数学原理与实际使用情况,使用Matlab仿真,先构造频域连续的宽带信号模拟基带数字信号,如果利用傅里叶反变换构造了时域信号用于仿真.文章给出了仿真代码与结果图.
前言在无线通信中,数据由核心网下传至基站,基站经过处理后变成电磁信号对外发送,最后到达用户端。在基站中,核心网下发的未被处理过的数字信号被称为基带信号。基带信号通常是零频宽/窄带信号。基带信号的采样率较低,不能满足射频发射的要求,所以基带信号往往经过滤波和内插转换成高采样率,从而调制到中频载波频率上.此时若基站接收到两路不同的基带信号,则无法做模拟上变频到同一频段,因为从频谱上看两个基带信号频谱叠加了,相互干扰。若使用两个频段对外发送则过于浪费频谱资源了。在同一空间内,通信信道是有限的,因此需要在模拟上变频之前先做数字上变频,将两路基带信号调制到一起,成为在频谱上连续的基带信号后,做模拟上变频,调制到中高频后对外发送。这样就只会占用一条中频带,节约了无线资源。
具体可以看这篇博客[4G&5G专题-9]:RRU 数字上变频DUC与数字下变频DDC。
数字上变频(DUC)数学原理数字上 ...
FreeRTOS
FreeRTOS学习日志,由于工作原因,目前这棵技能树不作为主要发展方向了,该类型博客无限期停更…
1.关于 osThreadNew ()1.1 FreeRTOS线程与任务的关系1234567891011121314151617osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr)/*******************************没有感情的分界线********************/BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, const configSTACK_DEPTH_TYPE usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * con ...