集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1747|回复: 2

FPGA学习:编写综合友好的代码

[复制链接]
zxopenljx 发表于 2021-5-8 18:05:24 | 显示全部楼层 |阅读模式
原文链接:https://mp.weixin.qq.com/s/W8x2vgOykJe4FDAyCv2m5g
随着EDA和集成电路的发展,速度快,规模大,设计复杂成为趋势,以往那种仅仅依靠软件的行为描述,进行的EDA建模带来综合效率低下,甚至不可综合。因此2000年前后,有学者提出“综合友好Synthesis Friendly”概念。要求现代EDA工程师,具有如下的知识背景:
“什么样的HDL语句对应什么样的电路”(What Statements is what Circuits)
“什么样的电路对应什么样的HDL语句” (What Circuits is what Statements)

总之,该课程(或该学术范畴)研究HDL代码和综合的关系。

与其它的EDA理论体系相同,综合理论也是遵循“形式逻辑”的思想发展,从看似简单基础规律推导出复杂结论。综合理论的基础规律则是:代码模型分析CMA(Code-Model Analysis)

代码模型分析CMA:
1.任何一段代码块CB(Code Block)中被引用的信号,对应代码模型CM(Code-Model)的输入信号(输入端口)
2.任何一段代码块CB(Code Block)中被驱动的信号,对应代码模型CM(Code-Model)的输出信号(输出端口)
3.根据代码块的层次结构,决定内层信号和外层信号的连接拓扑。

这里,代码块中被引用的信号即在代码块中,位于赋值号右侧的信号,或者在条件语句的括弧中出现的信号;代码块中被驱动的信号,即在代码块中位于赋值号左侧的信号。

关于代码模型,按照描述方式是否直接,分为显式模型EM(Explicit Model)和隐式模型IM(Implicit Model)。

显式模型的典型例子是module-endmodule结构,在其中显式声明了输入输出信号(端口),以及信号的属性;隐式模型的典型例子是always begin-end结构,在其中并没有显式声明信号的属性(方向,宽度),但依据代码分析(层次,引用和驱动),仍然具有明确的信号属性定义。

代码模型分析的例子一:
图片

lihongkun16 发表于 2021-5-9 08:41:07 | 显示全部楼层
FPGA学习:编写综合友好的代码
zhangyukun 发表于 2021-5-9 14:06:09 | 显示全部楼层
FPGA学习:编写综合友好的代码
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-29 01:32 , Processed in 0.058331 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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