硬件描述语言(Verilog、VHDL等)的最佳实践是什么
在实现HDL代码时应遵循哪些最佳实践硬件描述语言(Verilog、VHDL等)的最佳实践是什么,verilog,vhdl,hdl,Verilog,Vhdl,Hdl,在实现HDL代码时应遵循哪些最佳实践 与更常见的软件开发领域相比,有哪些共同点和不同点?这方面的最佳书籍是。它涵盖了VHDL和Verilog 特别是一些在软件中没有精确匹配的问题: 没有门闩 小心复位 检查内部和外部计时 仅使用可合成代码 注册所有模块的输出 注意阻塞与非阻塞分配 小心组合逻辑的敏感列表(或在Verilog中使用@(*) 一些相同的包括 使用CM 进行代码审查 测试(模拟)你的代码 在适当的时候重用代码 有最新的时间表 拥有规范、用例或敏捷客户 像Verilog和VHDL这
与更常见的软件开发领域相比,有哪些共同点和不同点?这方面的最佳书籍是。它涵盖了VHDL和Verilog 特别是一些在软件中没有精确匹配的问题:
- 没有门闩
- 小心复位
- 检查内部和外部计时
- 仅使用可合成代码
- 注册所有模块的输出
- 注意阻塞与非阻塞分配
- 小心组合逻辑的敏感列表(或在Verilog中使用@(*)
- 使用CM
- 进行代码审查
- 测试(模拟)你的代码
- 在适当的时候重用代码
- 有最新的时间表
- 拥有规范、用例或敏捷客户
- 在HDL中,代码的某些部分可以同时工作,例如两行代码“可以同时工作”,这是一个优势,要明智地使用。
这是一个习惯于逐行语言的程序员一开始可能很难掌握的东西:
- 可以根据您的需要创建长而具体的管道
- 您可以让您的大模块同时工作
- 您可以创建多个单元,并并行执行工作,而不是使用一个单元对不同的数据执行重复操作
- 应该特别注意引导过程——一旦你的芯片功能正常,你就已经取得了巨大的进步
- 简单的代码是首选,有时还有其他方法来加速您的代码 它已经在运行,例如使用更高速度的芯片等
- 避免组件之间的“智能”协议
-
HDL中的工作代码比其他软件更宝贵,因为硬件是很难调试的,因此重用,也考虑使用一些免费的和其他的模块的“库”。
- 如果一个设计包括几个构建块,人们可能希望创建从这些块之间的接口到芯片外部测试点的线路
- 您将希望在设计中保存足够的行,以便将感兴趣的数据转移到外部设备进行检查。您还可以使用这些行和您的代码来告诉您当前的执行状态—例如,如果您在某个时间接收到数据 在这一点上,您将一些值写入行,在执行的稍后阶段,您将写入另一个值,等等' 如果您的芯片是可重新配置的,这将变得更加方便,因为您可以定制特定的测试,并在进行测试时重新编程每个测试的输出(这与LED非常匹配:)