微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 问问大家对于C里的多重循环怎么转成verilog

问问大家对于C里的多重循环怎么转成verilog

时间:10-02 整理:3721RD 点击:
是这样的,我要解析一种帧格式的数据,就类似mpeg的ts流那种,C已经编好了,转rtl的时候,发现里面有很多嵌套的for循环很麻烦。如果用状态机,就无比复杂。因为for循环次数取决于接收到的数据,状态数目不固定。而且又嵌套
自己没有啥经验,大虾们给提点一下好么?相信这应该是个比较典型的C code转换问题。
谢谢大家!

我一般是用一个状态机拖上几个加法器,轮着玩,只要嵌套层数知道了,就没有什么问题了。
当然了,控制如果很复杂的话,还是用处理器实现比较合适。

学习了,呵呵

谢谢回复,不过是否有更好的办法呢?比如说能否把每级for循环写成task或者子模块来搞?
达人们赶紧帮忙出出主意哦!code结构定不下来,没办法写。
谢谢大家


你是要设计电路还是写verilog 代码呀

是要把C代码实现成rtl。
如果有好的建议,请不吝赐教

控制模块+数据通路

好像有System C这种东西。

嵌套计数器如何?
不太懂c和verilog的转换,是.c文件转换为.v文件吗?

没涉猎过,纯学习

counter add state machine

软件实现和硬件实现完全不是一回事,很难讲怎么转吧。


1# layow

按clk来,always不就是类似C里面的循环了嘛

你问的是要从软件转化成硬件
还是只是单纯的c 换成 verilog
verilog 里面也是支持for loop的,并且能综合

这事我干过,也是码流解析,除了状态机好像也没有什么好的方法。
可以写成fix的,也可以写成configurable的,看你的应用需求了。
1# layow

impulse c是c转HDL的软件,不知道好用不

这要看具体什么算法,一般状态机可以实现。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top