搜索
bottom↓
回复: 46

发个花了2天时间为了降低~200个LUT而做的16位专用处理器

  [复制链接]

出0入442汤圆

发表于 2018-11-16 20:51:39 | 显示全部楼层 |阅读模式
RT,该处理器的作用是:
给定传感器图像的宽和高,以及裁剪参数,计算出合法的ROI。因为图像有一从一主,从紧接在主后面,因此主从图像要求相同宽度,其它不要求一样。要求输出的参数不能溢出,End不能小于Org,可以根据参数屏蔽一些输出(就这么简单!)

使用纯逻辑计算,最小模式下(只有主图像)也要占用~330个LUT,太大了。全模式下要占用~760个LUT,简直吓到了
各种研究下,最终发现要想解决资源占用问题,必须得用时间换面积(工程选型没选好,FPGA塞爆了),杯具。于是有了这个16位专用处理器——



根据分析,只要能实现比较、加、减、条件跳转,能输入一些东西,输出一些东西即可。因此最后确定了该方案。其中,寄存器和输出复用,外部接口直接把一些固定参数写到寄存器中,而保留一些不固定的参数到外部接口。微码简单测了一下,还没有详细测试。最后得到的CPU无比简单,就8个指令,32个寄存器,256条指令空间。用Maximum Compression Map之后占用约161个LUT,以及约41个Slices,芯片面积利用率几乎98%(DFF主要在IOB里面,所以没有体现),非常紧凑了。主频可以飙到200MHz的样子,绝对够用了。只是计算时间是硬伤,时间换面积的代价是原本2个周期可以做完的工作,现在得200个周期才能做完,外面需要加个调度器等待数据刷新。

想实现自己用途的可以改asm,附件还有个专用assembler,当然报错位置貌似不对,对着代码去找吧。初值直接改REG文件即可。明天开始整合,下周往工程移植 改汇编时切记bc/bnc后面的Token不能有标点,而且Token行后面必须有:符号。

从工程上讲,FPGA这东西优化真不容易,一不小心就负优化。面积,速度,RAM,流水线,延时,等等,各种限制。从芯片本身来看,FPGA说句不客气的,它就是个双面PCB,而且是预留好线的PCB,用户只能在固定的交叉线上给想要连通的两条交叉线中间打个孔(下载个1进去)。想象一下布通这玩意的难度。一个大点的工程动不动就100000条线以上,我的服务器动不动就是跑一夜。想省一点点资源真不容易,脑细胞都累赘一把。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出10入12汤圆

发表于 2018-11-16 21:28:36 | 显示全部楼层
牛逼了!下载学习下

出0入0汤圆

发表于 2018-11-16 21:28:48 | 显示全部楼层
大牛,真厉害!还未用FPGA做个这么复杂的事情,学习了!

出0入0汤圆

发表于 2018-11-16 21:48:41 | 显示全部楼层
全能                 

出0入0汤圆

发表于 2018-11-16 21:48:50 | 显示全部楼层
厉害啦

出0入0汤圆

发表于 2018-11-16 21:55:18 来自手机 | 显示全部楼层
厉害了。

出90入4汤圆

发表于 2018-11-16 21:58:49 来自手机 | 显示全部楼层
牛人真多啊

出0入0汤圆

发表于 2018-11-16 22:07:52 来自手机 | 显示全部楼层
厉害了,学习一下

出0入4汤圆

发表于 2018-11-16 22:18:23 来自手机 | 显示全部楼层
仰慕一下

出330入1880汤圆

发表于 2018-11-16 22:25:30 | 显示全部楼层
256条指令空间是可以存256行汇编程序的意思吗?

FPGA做的软核的程序都是存内部的吗?这个软核的程序是怎么烧写进去的呀

出0入0汤圆

发表于 2018-11-16 22:47:28 | 显示全部楼层
真是太厉害了。

出0入442汤圆

 楼主| 发表于 2018-11-16 22:57:58 来自手机 | 显示全部楼层
cne53102 发表于 2018-11-16 22:25
256条指令空间是可以存256行汇编程序的意思吗?

FPGA做的软核的程序都是存内部的吗?这个软核的程序是怎么 ...

irom里面就是程序代码。写死的。

出0入17汤圆

发表于 2018-11-16 23:29:23 | 显示全部楼层
PicoBlaze了解过吗?

出0入17汤圆

发表于 2018-11-16 23:30:06 | 显示全部楼层
https://www.xilinx.com/products/ ... coblaze.html#design

出330入1880汤圆

发表于 2018-11-16 23:33:29 | 显示全部楼层
wye11083 发表于 2018-11-16 22:57
irom里面就是程序代码。写死的。

原来如此。。

出0入442汤圆

 楼主| 发表于 2018-11-16 23:54:47 来自手机 | 显示全部楼层
Nuker 发表于 2018-11-16 23:29
PicoBlaze了解过吗?

这是8位的。我这是专用的16位的。而且picoblaze并不一定方便。

出0入0汤圆

发表于 2018-11-17 03:04:44 | 显示全部楼层
挺累的,虽然只有加减比较条件跳转, 但是还是挺累的

出0入0汤圆

发表于 2018-11-17 03:36:23 | 显示全部楼层
差距太大了。偶等也就能根据芯片功能去应用,高手是根据需要来创造芯片没有的功能

出0入4汤圆

发表于 2018-11-17 08:47:05 | 显示全部楼层
牛逼了                              

出0入91汤圆

发表于 2018-11-17 08:50:02 | 显示全部楼层
那么多逻辑 楼楼能稳定200MHZ不错不错

出0入85汤圆

发表于 2018-11-17 08:57:52 | 显示全部楼层
看看神仙发帖

出0入442汤圆

 楼主| 发表于 2018-11-17 09:37:05 来自手机 | 显示全部楼层
qiqirachel 发表于 2018-11-17 03:04
挺累的,虽然只有加减比较条件跳转, 但是还是挺累的

够用了。再多1条指令可能lut得多几十个(decode得4位了),而且这套指令集其实很好用,不是么?除了资源少,连寄存器都是带初值的,硬件保证不覆盖值寄存器,程序和微码保证跑飞了也不会覆盖值寄存器。

出0入0汤圆

发表于 2018-11-17 10:16:52 | 显示全部楼层
厉害了啊

出0入42汤圆

发表于 2018-11-17 12:50:04 来自手机 | 显示全部楼层
这个程序是c写的吗?用的什么编译器呀

出10入23汤圆

发表于 2018-11-17 17:06:07 来自手机 | 显示全部楼层
我是一个大白菜 发表于 2018-11-17 12:50
这个程序是c写的吗?用的什么编译器呀

楼主不说了写了个汇编器么?几条指令用汇编很好用

出0入0汤圆

发表于 2018-11-17 18:16:52 | 显示全部楼层
wye11083 发表于 2018-11-17 09:37
够用了。再多1条指令可能lut得多几十个(decode得4位了),而且这套指令集其实很好用,不是么?除了资源 ...

不是,我的意思是说,做这个小功能的处理器应该花了不少时间,挺累的。功能看起来不多,但是考虑的细节还是挺多的

出0入0汤圆

发表于 2018-11-17 19:13:37 | 显示全部楼层
赞一个
PicoBlaze也挺好用,还有人改写了NanoBlaze 16位的

出0入442汤圆

 楼主| 发表于 2018-11-17 22:36:31 来自手机 | 显示全部楼层
qiqirachel 发表于 2018-11-17 18:16
不是,我的意思是说,做这个小功能的处理器应该花了不少时间,挺累的。功能看起来不多,但是考虑的细节还 ...

哈哈,只看面积。像有人说用picoblaze,那个8位机做这些工作指令就得放bram了,为了这么点破功能还用个bram不值,没意义。这个模块irom大概占44个lut(s6),其它功能加一起占~120个lut。

出0入42汤圆

发表于 2018-11-17 23:10:33 来自手机 | 显示全部楼层
zouzhichao 发表于 2018-11-17 17:06
楼主不说了写了个汇编器么?几条指令用汇编很好用

嗯,仔细看了,确实疏忽了,学习一下

出0入0汤圆

发表于 2018-11-18 14:01:06 | 显示全部楼层
不懂,但很厉害的样子

出0入0汤圆

发表于 2018-11-19 03:10:58 来自手机 | 显示全部楼层
厉害。不过spi外挂一个low pony count的小单片机也很省事,反正现在的单片机外部晶振都可以省了

出0入0汤圆

发表于 2018-11-19 03:11:36 来自手机 | 显示全部楼层
晕,输入法把pin 改为pony了。。。

出0入0汤圆

发表于 2018-11-19 07:56:31 | 显示全部楼层
厉害   

出0入0汤圆

发表于 2018-11-19 08:06:05 来自手机 | 显示全部楼层
大神果然不一样

出0入0汤圆

发表于 2018-11-19 08:42:02 | 显示全部楼层
大神 现在得个精华帖很不容易啊

出0入0汤圆

发表于 2018-11-19 08:56:58 | 显示全部楼层
看不太懂,话说楼主做图像 主要都处理哪些》算法之类的在部门一般怎么分配?

出0入0汤圆

发表于 2018-11-19 09:00:15 | 显示全部楼层
感觉开窍不容易,有啥方法心得分享一下

出0入0汤圆

发表于 2018-11-21 16:14:29 | 显示全部楼层
牛逼牛逼 膜拜一下

出0入4汤圆

发表于 2018-11-21 21:27:22 来自手机 | 显示全部楼层
虽然不懂,但还是要顶一下。

出0入0汤圆

发表于 2018-11-22 16:48:55 | 显示全部楼层
学习一下    谢谢分享

出0入0汤圆

发表于 2018-12-5 22:11:38 | 显示全部楼层
+++++++niui好牛

出0入0汤圆

发表于 2018-12-10 22:03:04 | 显示全部楼层
牛逼了!真厉害!

出0入0汤圆

发表于 2018-12-10 22:20:46 来自手机 | 显示全部楼层
太厉害了

出0入0汤圆

发表于 2019-1-14 18:53:19 | 显示全部楼层
点个赞,厉害了。

出0入0汤圆

发表于 2020-12-23 16:06:53 | 显示全部楼层
厉害!设计mcu其实工作量还挺大。

出0入42汤圆

发表于 2020-12-25 08:38:56 | 显示全部楼层
厉害了,学习一下

出0入0汤圆

发表于 2021-1-30 15:06:22 | 显示全部楼层
TAI NIU B LA!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-23 14:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表