【原创】如何把Vivado HLS生成的IP用作PS的外设并验证
前面的博文(请参考http://blog.chinaaet.com/detail/37142)里,我们已经学习了如何把VivadoHLS生成的IP用于VivadoIPI集成开发流程里。作为面向IP的设计流程的一部分,我们生成的IP自然也可以作为ZYNQSOC中PS的一个外设进行使用,这里我们就来看一下是如何使用的。&nbs
发表于 2014/9/8 14:27:32
阅读(9510)
【原创】如何快速在Vivado IPI中使用HLS生成的IP
我们在VivadoHLS中用高层次综合来快速地产生可综合的代码,最终的目的还是把它与其它的模块、IP等进行相连,以实现一个更加复杂的设计,所以在本博文中,我们就来学习一下,如何把Vivado集成开发环境的IPI中使用HLS中生成的IP。&nb
发表于 2014/9/1 22:06:06
阅读(13678)
【原创】Vivado HLS中四种数组端口实现方法的对比
在VivadoHLS中,C代码中的数组作为端口时,它们被默认综合为RAM端口。以下面的程序为例:voidarray_io(dout_td_o[N],din_td_i[N]){inti,rem;//Storeaccumulateddata&
发表于 2014/8/24 12:38:24
阅读(11445)
【原创】在Vivado HLS中综合时如何指定端口的综合类型
如果你对VivadoHLS中综合之后端口的ap_none之类的类型指示摸不着头脑的话,那就来一起学习一下它们是如何使用的吧。在VivadoHLS中,我们可以指定端口使用的类型,这样在对C代码进行综合的时候,就可以指定某个端口所使用的转换协议了。常
发表于 2014/8/23 22:20:25
阅读(10236)
【原创】在Vivado HLS中如何优化程序的执行速度
在前面的博文里,我们已经介绍了如何用VivadoHLS把一个C程序快速转换为RTL并导出(请参考http://blog.chinaaet.com/detail/35964),但是当时,我们并没有太关心转换之后代码的效率和执行速度问题。今天我们以含有for循环的程序来说明,代码的执行速度是如何优化的。首
发表于 2014/7/27 17:24:15
阅读(11216)
【原创】在Vivado中联合仿真MicroBlaze的外部IP
在MicroBlaze连接了一个外部用HDL书写的IP时,如何验证其功能的正确是非常重要的问题,所以我们来看看在Vivado中是如何对此进行仿真验证的。首先新建一个工程,如图1所示,这里引用的IP是以前自定义的一个(打包方法可以用HDL写然后封装,也可以用systemgenerator生成,
发表于 2014/7/26 10:34:32
阅读(11111)
【原创】在Vivado IPI中用接口推断法自动连接IP
前一篇博文里我们已经讲了如何在SystemGenerator生成并打包自定义IP(http://blog.chinaaet.com/detail/35983),其中我们通过自定义GatewayIn和Gatewayout模块的名字,指定了生成的IP的端口名称,它与其它IP的连接需要我们自己手动配置
发表于 2014/7/26 9:06:49
阅读(6444)
【原创】使用端口打包法高效生成Vivado IP
为了更好地使用一个自定义IP,正确定义定义它的端口是非常重要的,所以我们需要了解SystemGenerator中封装IP的方法。在这里我们以端口/管脚接口打包法为例,看看这个是如何创建一个可以在Vivado中使用的IP并验证它的。使用端口/管脚接口打包法的话,GatewayIn和Gatewayo
发表于 2014/7/24 21:22:46
阅读(4282)
【原创】Vivado HLS是如何快速把C/C++算法导入System Generator模型的
VivadoHLS(highlevelsynthesis)可以直接把现有的C/C++算法转换为RTL,而SystemGenerator则可以把现有的基于Matlab/Simulink模型实现的DSP算法直接转换为RTL,二者的侧重点不同,但是也可以有一定的交集。那二者直接如何不通过VivadoIDE而直接进行互动呢?SystemGenera
发表于 2014/7/21 20:43:36
阅读(14360)
【原创】在Vivado中调用ModelSim生成FSM的状态转移图
如果我们已经书写了一段FSM代码,现在想倒过来把它转换成为状态转移图,方便我们直观地检查我们书写的状态对不对(在写论文什么的画图太麻烦的时候,有个自动生成的是多方便啊!),应该怎么弄呢?通过在Vivado中调用ModelSim,可以直接完成这个操作,下面我们就来看看
发表于 2014/7/19 17:53:18
阅读(12711)
【原创】用数据来说明,Vivado的效率提高到底有多少?-Vivado高效设计案例分享博客大赛
自从去年10月Xilinx发布ISE14.7之后,ISE套件便暂时没有了更新计划,相当于进入了软件生命中的“中年”;而当初在2012.x版本还作为ISE套件中的一个组件的Vivado,此时已经如早上8、9点钟的太阳一样冉冉升起:因为随着FPGA/SOC制造工艺、硬件单元规模和设计方法的不断改
发表于 2014/6/29 21:18:48
阅读(21108)
【原创】TI C2833x介绍---HRPWM(18)-HRPWM的寄存器
HRPWM本身的寄存器,除了配置寄存器HRCNFG以外,剩下的就是两个状态寄存器了,一个是在比较值调整模式下用到的计数比较寄存器A的高分辨率寄存器CMPAHR,用来保存MEP校正之后的比较值;另一个是在周期值调整模式下用到的时间基准高分辨率寄存器TBPHSHR,用来保存MEP校正
发表于 2014/3/7 21:36:14
阅读(2957)
【原创】TI C2833x介绍---HRPWM(17)-HRPWM的寄存器
HRPWM的寄存器并不多,所以除了SFO库的使用需要花点时间了解以外,寄存器的配置是比较容易的。首先看它的配置寄存器HRCNFG。HRCNFG是EALLOW保护的,它的各个位的含义是:位名称值含义15-4Reserved这么多都是保留位,看来以后的升级版本可以加入很多的功能HR
发表于 2014/2/20 21:28:14
阅读(3375)
【原创】TI C2833x介绍---HRPWM(16)
总结一下HRPWM的所有寄存器如下:寄存器名称地址偏移量长度(x16)/是否含有影子寄存器描述时间基准寄存器TBCTL0x00001/0时基控制寄存器TBSTS0x00011/0时基状态寄存器TBPHSHR0x00021/0时基相位高分辨率寄存器TBPHS0x00031/0时基相位寄存器TBCNT0x00041/0时基计数寄存器T
发表于 2014/1/19 10:24:43
阅读(3340)
【原创】TI C2833x介绍---HRPWM(15)
脉宽调制PWM的本质就是把基波/调制波信号用三角载波(或者其它更新奇的载波,例如抛物线形式的载波)进行叠加、调制,从而得到脉宽可变的方波波形。一般情况下载波的频率远高于调制波的频率,所以如果我们使用一个低通滤波器或者限波器等滤除载波频率的话,基本上就能复
发表于 2014/1/3 21:36:32
阅读(4004)