我偶然发现了一个免费的状态机工具.这似乎是用于以图形方式编程嵌入式系统.通过这样做,作者声称,与使用RTOS相比,生成的代码更易于维护.这个工具基于UML,很高兴知道,但学习曲线陡峭.
我想知道一些比较有经验的程序员在这里想到这个工具.
我正在为LM3S5P36微控制器开发嵌入式应用程序.TI有一个名为Code Composer Studio(CCS)的IDE.我还没有进入CCS,但我怀疑它有一个很酷的功能,即能够将所需的行为输入状态机图表,转动曲柄,并弹出C或C++代码.然后返回并编辑图表以生成相应的修订代码.我用C语言编写了微控制器,但对UML几乎一无所知.在过去,我保留了两个文件,其中一个是微控制器代码,另一个是流程图.每个代码修订版意味着维护两个单独的文
所以我的困境是:发现这个很酷的图表到代码一体化文档包含的工具,我很乐意使用它,但是,更重要的是,我只想完成我的项目.我是用旧方法做的,还是花几周时间学习UML?
关于SystemVerilog(SV)用于编程芯片和模拟SV代码的问题很多.语言结构的这种经济性给我带来了一些困惑:SV参考文献的第9.2.2节说明
"总有四种形式的程序:always,always_comb,always_latch和always_ff.所有形式的always程序在整个模拟过程中不断重复."
当然,这些结构当然也指定了组合逻辑和锁存逻辑的创建.那么SV标准主要是针对模拟,还是由芯片OEM提供给客户建议哪些SV结构会产生实际硬件,就像Altera在这里做的那样?
Altera制造CPLD和FPGA,其中一些并不太昂贵(因此我开始学习SV).由Altera祝福的SV构造子集是可合成的,可以在Quartus中编译成适合下载到芯片的形式.Altera标记其他构造,例如许多断言(上面引用的第16节),"支持.忽略合成".以并发断言为例.
因此,我的结论是,在此处获得的新信息之外,我可以使用例如仅针对测试平台模块的并发断言,但是可以在任何地方使用立即断言.
基本上我试图了解SV如何工作,以及我如何最好地解释上面引用的SV标准.谢谢.
我对反斜杠运算符感到困惑,因为它在以下示例中使用:
foreach op {+ - * / %} {proc $op {a b} "expr {\$a $op \$b}"}
Run Code Online (Sandbox Code Playgroud)
当反斜杠在花括号内时,将执行键盘输入(以前缀表示法).当我删除反斜杠时,错误消息是"无法读取"":没有这样的变量".
谷歌搜索这个只是一遍又一遍地告诉我关于逃脱角色和线路延续.这个上下文中的反斜杠操作符是不同的:\ $ a接受键盘输入怎么样?我应该搜索"TCL反斜杠操作符"以外的其他内容吗?