作者:桂。

时间:2018-05-07  19:11:23

链接:http://www.cnblogs.com/xingshansi/p/9004492.html


前言

该文私用,不定期更新,主要汇总记录Xilinx常用的基本模块,列出清单,方便查阅。

关于原语,主要参考【原语时序为什么好,一个猜想是:我吃不同的食物,要去不同的餐厅,跑的路程自然多一些;而如果我有这些原材料,自己动手,费点功夫但跑的路少,路程长短对应时间长度、对应时序特性,这个是自己想当然,需要结合CLB特性。 此处待验证】:

7series_scm.pdf

7series_hdl.pdf

一、模块汇总

  • 1- adder

路径:印象笔记-1/0019/001

描述:三个数加、减混合运算

  • 2- rtldelay

路径:印象笔记-1/0019/002

描述:数据延拍,延迟delayval-1拍

  • 3- addsub_premitive

路径:印象笔记-1/0019/003

描述:两个数的加、减运算(实数)

  • 4- abs

路径:*/003

描述:求绝对值(实数),与addsub_premitive类似,符号位作为标志位,正数x = 0 + x,负数x = 0 - x,输出即为绝对值。

  • 5- selmax

路径:*/004

描述:求两个数据的最大值

  • 6- amp_cal

路径:*/005

描述:复数幅度近似估计。

借助复数幅值近似估计一文的思路,进行复数幅度的近似计算,其中以上几个模块,此处被调用。

  • 7- neg_primitive

路径:*/006

描述:求相反数-原语, 0 latency.

  • 8- 常用延拍思路

路径:*/007

描述:4种常用延拍思路

  • 9- 复数乘法

路径:*/008

描述:主要借鉴FFT节省资源的思路一文的思路,一个复数乘法需要3个乘法器。latency:0

乘法位宽的特性:

实数: 对于无符号数:n_bit x m_bit <= m+n_bit,有符号各添加1bit符号位

复数:有符号数,(n+1_bit x (m+1)_bit <= (m+n+2)_bit

output signed [*width-:] outr;
output signed [*width-:] outi;
assign outr = (ar-ai)*bi+(br-bi)*ar;
assign outi = (ar-ai)*bi+(br+bi)*ai;
  • 10- cplxmult_conj 

路径:*/009

描述:复数共轭相乘,与复数相乘类似,bi换做-bi即可。直接处理内部也是调用DSP48,此处采用IP核(DSP48)进行硬件描述。 latency:4 clocks

关于DSP48,可参考:基础004_V7-DSP Slice,各IP核具体参数设置,参考印象笔记*/009截图。

  • 11- cplxdelay

路径:*/010

描述: 复数数据移位,本质上:1)[实部, 虚部]拼成一个长数据,直接按实数移位的思路移位即可; 2)实部、虚部分别按照实数移位思路移位即可; 这里单独列出来,主要是改用shift_ram进行移位操作,思路上并无新意。  shift RAM参数设置可参考印象笔记*/010截图。depth即为延迟的拍数。

wire [datwidth*2-1:0] din = {din_i, din_r};

  • 12- CORDIC

路径:*/011

描述:CORDIC计算幅度、相位,cordic原理可参考:Cordic算法简介

主要分为:象限判定(-pi/2 ~ pi/2,因此根据xin符号位判定即可。)

其中(补码数据读取参考:FIR基本型仿真_03

        x_new = x+y*^-i;%此处移位寄存器实现
y_new = y-x*^-i;%此处移位寄存器实现

可借助3- addsub_premitive模块求解,标志位由y符号位给出,generate迭代即可。

印象笔记目录:

二、原语简介

primitive 与 macro

A primitive is the most basic FPGA element that can be instantiated with out any extra logic.
A macro is basically a combination of different primitives that requires logic beyond the most basic components. Primitives can be instantiated while macros cannot be instantiated in HDL.
We can add a macro to a schematic and generate the HDL so you can view combination of logic inside of the macro. We can then use this HDL in our design.

以一个基本的加法器举例:

查看schematic:

其中LUT为查找表,实现逻辑功能,由于LUT是基本单元,可调用原语,以LUT3为例:

原语在hdl.pdf或language template可查看:

                     
 

Xilinx 常用模块汇总(verilog)【01】的更多相关文章

  1. Xilinx 常用模块汇总(verilog)【04】

    作者:桂. 时间:2018-05-15  13:07:02 链接:http://www.cnblogs.com/xingshansi/p/9040472.html 前言 Xilinx 常用模块汇总(v ...

  2. Xilinx 常用模块汇总(verilog)【03】

    作者:桂. 时间:2018-05-10  2018-05-10  21:03:44 链接:http://www.cnblogs.com/xingshansi/p/9021919.html 前言 主要记 ...

  3. Xilinx 常用模块汇总(verilog)【02】

    作者:桂. 时间:2018-05-08  18:35:56 链接:http://www.cnblogs.com/xingshansi/p/9010282.html [本文遗留几处细节问题,待闲下来解决 ...

  4. npm常用模块汇总

    npm常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 npx 使用教程:npx使用教程 bable:bable这是JavaScript编译器 ...

  5. node常用模块汇总

    node常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 mkdirp:在node.js中像mkdir -p一样递归创建目录及其子目录

  6. python 所有常用模块汇总

    time:时间 时间戳(timestamp):time.time() 延迟线程的运行:time.sleep(secs) (指定时间戳下的)当前时区时间:time.localtime([secs]) ( ...

  7. Python基础(九) 常用模块汇总

    3.8 json模块重点 json模块是将满足条件的数据结构转化成特殊的字符串,并且也可以反序列化还原回去. 不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串.(比如Python的一个列 ...

  8. 模块、包及常用模块(time/random/os/sys/shutil)

    一.模块 模块的本质就是一个.py 文件. 导入和调用模块: import module from module import xx from module.xx.xx import xx as re ...

  9. npm常用模块之bable使用

    更多npm常用模块使用请访问:npm常用模块汇总 bable这是JavaScript编译器. Babel是一个工具链,主要用于在当前和较旧的浏览器或环境中将ECMAScript 2015+代码转换为J ...

随机推荐

  1. 关于inode&硬连接

    这两天看了一道面试题,什么是inode?我勒个去,第一次听说.于是Google了一下,发现下面这段内容讲解的非常不错,供大家参考. 一.inode是什么? 理解inode,要从文件储存说起.文件储存在 ...

  2. mysql中间件研究(Atlas,cobar,TDDL)[转载]

    mysql中间件研究(Atlas,cobar,TDDL) mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差. ...

  3. Lotus Domino开发心得(一)

    —- Lotus Domino 是当今办公自动化系统的主流开发平台之一,目前大部分企业和机构都在使用Lotus Domino 开发自己的无纸办公系统.在开发过程中,我积累了一些小技巧,现在公布出来,希 ...

  4. SSM框架搭建总结(2)

    一.开发环境搭建 1.本地jdk安装及配置环境变量 2.本地tomcat安装 3.本地maven安装 3.1 maven安装 3.2 maven数据仓库配置settings.xml 4.本地安装SVN ...

  5. USACO holstein AC code

    /* ID:kevin_s1 PROG:holstein LANG:C++ */ #include <iostream> #include <cstdio> #include ...

  6. windows DLL中使用COM的注意事项

    windows的DLL开发是有需要注意的地方的,不然会造成一些问题.由于我最近的使用不当,又造成了问题,虽然之前有写过一篇笔记, http://www.cnblogs.com/foohack/p/66 ...

  7. Android 百度鹰眼轨迹SDK(v2.1.6)

    闲聊 看过<鹰眼追击>这部电影的读者一定对"鹰眼"这台巨无霸计算机印象深刻,如今我们能够实现自己的鹰眼. 效果图 本篇为百度地图SDK第三篇博文 第一篇实现:Andro ...

  8. XML制作RSS源

    什么是RSS源?看到这片文章的人相信都知道.自己博客首页不就是一个吗? 好吧,先来一个简单点的.直接就是死代码:详细如何使用就看RSS使用标准吧! <?xml version = "1 ...

  9. BOM介绍

    BOM 浏览器对象模型 BOM (Browser Object Model,浏览器对象模型)提供了通过 JavaScript 访问和控制浏览器窗口(window).显示器(screen)与浏览历史(h ...

  10. Windows XPSP3通过网络级身份验证方式连接Windows Server 2008远程桌面

    远程桌面大大方便了大家的日常管理工作,Windows Server 2008同样秉承这一优秀特性,并引入网络级身份验证(NLA)作为远程桌面连接的默认身份验证方式. 网络级身份验证 (NLA) 是一种 ...