Xilinx 常用模块汇总(verilog)【01】
作者:桂。
时间:2018-05-07 19:11:23
链接:http://www.cnblogs.com/xingshansi/p/9004492.html
前言
该文私用,不定期更新,主要汇总记录Xilinx常用的基本模块,列出清单,方便查阅。
关于原语,主要参考【原语时序为什么好,一个猜想是:我吃不同的食物,要去不同的餐厅,跑的路程自然多一些;而如果我有这些原材料,自己动手,费点功夫但跑的路少,路程长短对应时间长度、对应时序特性,这个是自己想当然,需要结合CLB特性。 此处待验证】:
一、模块汇总
- 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】的更多相关文章
- Xilinx 常用模块汇总(verilog)【04】
作者:桂. 时间:2018-05-15 13:07:02 链接:http://www.cnblogs.com/xingshansi/p/9040472.html 前言 Xilinx 常用模块汇总(v ...
- Xilinx 常用模块汇总(verilog)【03】
作者:桂. 时间:2018-05-10 2018-05-10 21:03:44 链接:http://www.cnblogs.com/xingshansi/p/9021919.html 前言 主要记 ...
- Xilinx 常用模块汇总(verilog)【02】
作者:桂. 时间:2018-05-08 18:35:56 链接:http://www.cnblogs.com/xingshansi/p/9010282.html [本文遗留几处细节问题,待闲下来解决 ...
- npm常用模块汇总
npm常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 npx 使用教程:npx使用教程 bable:bable这是JavaScript编译器 ...
- node常用模块汇总
node常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 mkdirp:在node.js中像mkdir -p一样递归创建目录及其子目录
- python 所有常用模块汇总
time:时间 时间戳(timestamp):time.time() 延迟线程的运行:time.sleep(secs) (指定时间戳下的)当前时区时间:time.localtime([secs]) ( ...
- Python基础(九) 常用模块汇总
3.8 json模块重点 json模块是将满足条件的数据结构转化成特殊的字符串,并且也可以反序列化还原回去. 不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串.(比如Python的一个列 ...
- 模块、包及常用模块(time/random/os/sys/shutil)
一.模块 模块的本质就是一个.py 文件. 导入和调用模块: import module from module import xx from module.xx.xx import xx as re ...
- npm常用模块之bable使用
更多npm常用模块使用请访问:npm常用模块汇总 bable这是JavaScript编译器. Babel是一个工具链,主要用于在当前和较旧的浏览器或环境中将ECMAScript 2015+代码转换为J ...
随机推荐
- Spark的运行模式(2)--Yarn-Cluster和Yarn-Client
3. Yarn-Cluster Yarn是一种统一资源管理机制,可以在上面运行多种计算框架.Spark on Yarn模式分为两种:Yarn-Cluster和Yarn-Client,前者Driver运 ...
- linux目录结构介绍
目录 1.树状目录结构图 2./目录 3./etc/目录 4./usr/目录 5./var/目录 6./proc/目录 7./dev/目录 该文章主要来自于网络进行整理. 目录结构参考地址: http ...
- Qt 使用 net-snmp 包的过程记录
使用 C/C++ 进行 SNMP 开发,网上比较流行的主要是用 net-snmp 和 snmp++ .在 sourceforge 上以 Qt 和 snmp 为关键词进行搜索,搜到的项目 net-snm ...
- SpringMVC学习笔记三:拦截器
一:拦截器工作原理 类比Struts2的拦截器,通过拦截器可以实现在调用controller的方法前.后进行一些操作. 二:拦截器实现 1:实现拦截器类 实现HandlerInterceptor 接口 ...
- JavaWeb应用项目部署到云ubuntu
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6383068.html 在前面的博文中,我们已经在云主机ubuntu上搭建好jdk.tomcat以及mysql了 ...
- ETL面试题
1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL项目组的作用是什么? 答 ...
- iWatch应用开发-oc篇
1.创建项目 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/di ...
- ibatis中#和$如何当作字符使用?
1.情景展示 在plsql中,可以正常执行 但是在ibatis的sqlMap文件中,报错信息如下: 2.原因分析 ibatis中 #.$ 是功能符号,用来取值的,当sql中出现这类字符时便会造成冲 ...
- 安装lr时无法将值Disable Script Debugger 写入注册表
1. 运行“regedit”打开注册表编辑器. 2. 右键点击权限.HKEY_CURRENT_USER-Softwart-Microsoft-Internet Explorer-Main 3. 勾选e ...
- h2database轻量级数据库
h2和derby一样,都是轻量级数据库,h2比derby还要轻巧,核心jar包不到1M.性能效率等等方面都非常好(前提不是高并发,高数据量) 轻量级数据库的应用出其不意,可以完成很多以前常规开发中无法 ...