图像处理分为两个部分:算法
这里主要讨论第一部分图像处理部分。ide
通常产品设计流程以下:工具
适用人群有如下两类:学习
这里先用一张slider来进行总体归纳:优化
基于模型的设计的好处——算法验证不成功,进行优化会更加方便快捷,对下列的循环过程大大缩短开发时间。设计
相关演示(在matlab的example中有能够直接打开调用):3d
一、搭建模型:算法作好了,而后再添加实现的支路,就能够开始产生代码了。code
产生代码时,只须要告诉HDL coder,须要将红色的模块变为HDL代码,便可以获得对应的HDL代码。blog
上面提到了两个重要的模块ip
(1)全幅帧处理变成像素处理的模块:
HDL工具会根据输入的图像的大小,自动产生同步信号,而不须要咱们去管。
下面matlab还提供了不少演示模型:
咱们来看看有哪些模型,增强学习:
一、滤波
能够看到模型中有两种支路,这里是为了证实这两种算法是彻底同样的。
二、灰度的伽马校订
三、棒状图的平衡
四、边缘检测并将结果与原来图像重合
五、不完整图像的边缘检测工做
六、识别键盘键值
下面是一些成功案例:
HDL coder主要带来了两个方面的好处:
HDL产品的主要特征:
HDLcoder对传统工具的产品的优化有两个方面:一、对面积的优化二、对速度的优化
对于不熟悉HDLcode的人,若是你模型建好了,可使用HDLworkflow advisor来建立HDL代码,它能够一步一步的帮助你优化代码,完成你的设计
这里面有个很是重要的东西:关键路径
simulink是一个基于图形设计的平台工具,他能够帮助你将关键路径在其内显示出来。若是是作硬件的,上面这个图应该能够看出来是个滤波器,若是要提升运行速度,只须要加一个寄存器将关键路径打断就能够将速度提上去了。
可是若是你不是设计硬件的,你也不知道往哪放寄存器,HDL提供了工具帮助你去找往哪放寄存器的功能,你只需将寄存器放在输入端或者输出端,软件会自动找出最佳的位置。并且加了寄存器后,不只近将关键路径打乱了,还把算法也打乱了,你必须在其余地方都加一个一样数量的寄存器才能保证算法是正确的,HDL提供的工具一样帮你完成了这个设计。
加完之后,会将加的寄存器在模块中显示出来(橙色都是工具添加的)
若是你是作控制的,你有一部分算法跑的慢一点,有一部分算法须要跑的快一点。优化工具也考虑到了这一点,也可以利用这种快慢的不一样去进行优化。
刚才提升的关键路径必定是要产生出代码,而后运行程序,运行完之后才能获得关键路径的信息。可是这个综合程序并非matlab的,而是调用xilinx或altera的综合工具后才能获得的结果。这个通常有个问题。若是算法复杂,产生的代码较多,运行一次会花费的时间很长。matlab在产生代码的时候提供了一个估计。
刚才的都是速度优化。刚才滤波器设计中有6个乘法器,咱们若是不在意速度,只在意资源的化,能够进行如下优化。这部分工做HDL coder能够自动的在产品里去作。
咱们只须要告诉你的指望便可
作完优化后,会产生一个新的模型进行了哪些变化。
代码和模型的双重追踪
资源运用报告——用来多少个四则运算而不是用来多少个logic
报告具备可跳转性
将代码插入到程序,在模型中获得留空白,你能够插入你成熟的代码。
将成熟的ip核加入到模型中