All articles

  1. 临时修复 DocNav 下载失败的问题

    By Kele

    DocNav 是 Xilinx 的文档管理工具,在其中可以方便的搜索、下载和整理所有 Xilinx 写的英文文档,实属利器。从 2017.1 开始,我开始碰到一个 BUG。具体来说用 DocNav 下载某些特定(大概其中一半)的文档,总是会得到下载失败的错误:

    DocNav

    在确认了不是我的网络的问题之后,我去 Xilinx 的论坛问了问1,得到了这是一个 BUG 的确认。但是最近更新到 2017.2 之后,我发现这个问题仍然存在。但并不是总会碰到——我的另一台电脑上的 DocNav 能够正常下载所有文档。

    根据 Xilinx 论坛 Mod 的指示,这个问题会发生在下载链接以 https 开头的文档上。一个临时的解决方法是使用 http 来下载以规避这个问题。具体来说找到这个文件 …

  2. 在 Windows Server 2012 R2 上安装 Vivado

    By Kele

    最近需要在一台 Windows Server 2012 R2 上安装 Vivado 2017.2,由于这台服务器是被防火墙隔离的,自从安装系统之后就没有安装任何更新,所以碰到了一些麻烦。

    问题

    安装 Vivado 2017.2 之后,安装器正常完成退出。运行 Vivado、HLS、SysGen 等都会报错:

    The program can’t start because api-ms-win-crt-runtime-l1-1-0.dll is missing from your computer. Try reinstalling the program to fix this problem.

    我的第一反应是下载安装文件的时候有损坏,但是又在安装的目录下找到了这个文件:C:\Xilinx\.xinstall …

  3. System Generator 中的 FIR 滤波器设计

    By Kele

    基础

    FIR 是数字信号处理中一个经典的常见运算。一个 \(N\) 阶的数字 FIR 滤波器可以表示为:

    $$y[n] = \sum_{i = 0}^{N}{h_i \cdot x[n-D-i]}$$

    其中:

    \(x[n]\) 是输入信号,\(y[n]\) 是输出信号,\(h_i\)FIR 滤波器的系数。\(D\) 是一个常数,代表处理的延迟。

    FIR 也可以看成卷积运算。FPGA 中的 FIR 滤波器的首要目标就是完成上述计算。在实际开始设计之前,可能需要考虑以下参数:

    1. 滤波器阶数
    2. 吞吐量(输入信号采样率)
    3. 是否是多速率滤波器(抽取、插值)
    4. 工作时钟频率
    5. 处理延迟

    对于通信系统中的 FIR …

  4. DDS in FPGA

    By Kele

    DDS(Direct Digital Synthesizer,直接频率合成器),或者叫 NCO(Numerically Controlled Oscillator,数控振荡器)是数字信号处理中的一个非常重要的组件。一般来说,DDS 利用查找表法产生一个数字的正弦曲线。其它的算法包括 CORDIC、泰勒展开等。典型的应用包括 DUC/DDC

    基础

    简单来说,DDS 完成这样的运算:

    $$y = \sin({\Theta(n)})$$

    其中 \(y\)DDS 模块的输出;\(n\) 为整数,是现在时刻的编号;\(\Theta(n)\) 是期望输出曲线的相位。

    由于在 FPGA 中,\(\Theta(n)\)\(y\) 都需要量化,而且一般采用定点实现。这就引出了 …

  5. System Generator 上手

    By Kele

    简介

    System Generator 是 Xilinx Vivado 套件里的组件之一。它主要的作用是利用 Matlab 中的 Simulink 组件来完成 FPGA 设计,即将 Simulink 仿真模型 .slx 转换为 HDL 文件。具体来说,System Generator 为 Simulink 提供了一套 Block 库,这套 Block 库既可以完成功能仿真,也有对应的 HDL 描述/网表。这和 Matlab 自己的 HDL Coder 类似,但由于是 Xilinx 为自己的 FPGA 写的 Block 库,能够比 …

  6. 设置浏览器默认字体

    By Kele

    简单来说

    简单来说,我建议你为你的浏览器设置好一个好看的、适合阅读的默认字体,比如最近大红大紫的 Noto CJK

    详细

    之前从 hexo 换成 Pelican,主题也随之改成了 Flex。这主题开箱即用,也没有什么问题,但毕竟是英语用户写的,并没有考虑中文字体:

    body{font-family:Source Sans Pro,Verdana,sans-serif}
    

    第一个字体 Source Sans Pro 还是从 Google Fonts 上加载的。对于大部分都是中文的站来说,几乎没有价值,必须得删掉。

    实际上,现在中文用户可以选择的字体已经比较多了。包括 Windows 自带的微软雅黑、Android 上的 Droid 字体、Google 的 Noto CJK、Adobe …

  7. FPGA 中的数值修约(Rounding)

    By Kele

    实数(连续值)

    对于一个数,如果我们无需那么高的位宽(精度),那么就可以对其修约。修约代表着用一个精度更低(但是更易用)的数来替代它。也许世界上最著名的数值修约的例子就是 \(\pi\approx3.14\) 了。

    从小学开始,老师就会开始教“有效位”、“四舍五入”的规则。对于大部分的数,处理方式都不会有问题。例如 7.3 比起 8,还是更接近于 7。但是 7.5 呢?它在数轴上距离 7 和 8 一样近(0.5),为何我们一般都将其四舍五入到 8 呢?如果是一个负数,例如 -7.5 又应该如何呢?

    实际上修约的主要艺术就在于如何花式修约 0.5 …

  8. 极限逃脱:零时困境

    By Kele

    感谢传统节日,我又有点时间来谈一些没有营养的事情。这次是 Zero Escape: Zero Time Dilemma,翻译过来应该叫做《极限逃脱:零时困境》。在游戏的开始,代表玩家的 9 人组被神秘黑衣男子 Zero 关在监狱中。Zero 告诉玩家:“我丢一枚硬币,你们猜对了正反面我就放了你们。猜输了你们就得和我玩没几个人能活下来的 大逃杀 Decision Game。”

    “我猜正面。”
    “啊,正面……你们赢了,我放你们走。”
    “???”

    ED 响起,制作人员名单开始滚动

    玩到这里我突然想起来几年前看到过的“几百块的游戏,三分钟通关”的吐槽是怎么回事儿了。后来看攻略才知道,第一次玩到这里肯定会猜对,读档回来选择另外一个选项才是开篇。当然,这不单只是制作人的玩笑,还是游戏剧情里的一个 Flag。主角等 9 人算是骨骼惊奇,万中无一,他们是具有 Shifter …

  9. AXI BRAM Controller 来调试 BRAM

    By Kele

    尽管在做 FPGA 产品设计时,仿真是非常重要的步骤,但是仿真确实无法做到所有的事情。有一半是因为仿真的速度实在堪忧,另一半是因为并不是所有的外设都有仿真模型。因此,上硬件调试很多时候也是不可避免的事情。为了观察片内的信号,Xilinx 为其产品提供的工具是 Integrated Logic Analyzer (ILA)Virtual Input/Output (VIO)。大部分时候,这两个 IP 简直如同神器,直到……某个情况下你想看看某个 BRAM 里装的东西是什么。

    除了尽量避免这种破事发生,其它解决手段也很多,有一个方法是使用 Xilinx 提供的另外两个 IPAXI Block RAM (BRAM) ControllerJTAG to AXI Master。简单来说,JTAG to AXI Master …

  10. 時計仕掛けのレイライン -朝霧に散る花-

    By Kele

    作为《時計仕掛けのレイライン》三部曲的完结篇,《朝霧に散る花》剧情暴走如龙卷风。

    在剧透开始之前,先感谢一位日本友人的攻略,为我省去了不少麻烦。在推《時計》系列前两部时,同样参考了其攻略。第三部不同于前两部的三线,这次直奔大结局(女主角的怀抱)。虽然之前的非女主角线,也只是单纯为了让你能和女配角卿卿我我而已。无需担心的是,为了销量,也或许是作为完结篇的慷慨,《朝雾》通关后的 Extra 里附赠了一堆 H Scene,满足各种口味的宅男。原来的推理选择题全对或全错才有的额外 CG 奖励,也变成了每个评价都有一张。

    这次,SSS 评价的通关奖励终于是女主角上位了。

    Bonus CG SSS

    感谢攻略,附上其余通关奖励 CG 的链接:SSS, SS, S, A, B, C, D, E …

Page 1 / 5 »