Verilog/SystemVerilog参数化加法树

突然发现百度和Google都搜索不到参数化加法树的写法,这里贴出一个单周期纯组合逻辑版本供参考。VHDL参数化加法树是类似的,这里就不列出了。


这里实现的是倒二叉树类型的加法树,纯组合逻辑,奇偶加数均支持自动生成。大概是下图的结构

参数有三个:

  • IN_WIDTH: 每一个输入加数的位宽;
  • NUM: 加数个数;
  • OUT_WIDTH: 输出结果尾款,注意加法树每一层中间结果均会增加1bit,输出位宽不能太小,否则会发生截断。

输入输出:

  • a: 所有加数concat在一起,位宽IN_WIDTH*NUM
  • ans: 结果

下面是systemverilog写法,verilog简单地将logic替换成 reg即可。

/*======================================================
Descripton:
parameterized adder tree, full comb

Create:  
Yipeng   wangyipengv@outlook.com  20191126

Modify:

Notes:
1. contain constant functions
=========================================================*/
module adder_tree#(
    parameter IN_WIDTH = 8,
    parameter NUM   = 4,
    parameter OUT_WIDTH = 32
)(
    input  logic [NUM * IN_WIDTH - 1 : 0] a,
    output logic signed [OUT_WIDTH - 1 : 0] ans
);
genvar i, j;
// - gen adders ----------------------------------------------------------
generate
for(i = 1; i <= gen_level(NUM); i++)begin:gen_add_levels
    logic signed [1:gen
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Verilog/SystemVerilog IEEE规范是由IEEE(美国电气与电子工程师协会)制定的一套关于硬件描述语言Verilog和SystemVerilog的规范和标准。这本规范详细定义了这两种语言的语法、语义、约束和使用方法。 Verilog是一种硬件描述语言,用于描述数字电路的行为和结构。Verilog使用了一种类似于C语言的语法,可以描述硬件的组成、功能和时序等信息。Verilog语言广泛应用于集成电路设计中,可以用于逻辑仿真、综合、布局和时序验证等环节。 SystemVerilogVerilog的扩展版本,增加了一些特性,如类、接口、包、属性、事务级建模等。这使得SystemVerilog更适合用于复杂系统的描述和验证。SystemVerilog是一种更高级的硬件描述语言,提供了更多的工程特性和设计方法。 Verilog/SystemVerilog IEEE规范提供了一个统一的标准,确保了不同的厂商和工具之间的互操作性。遵守规范可以保证设计的正确性和可移植性。此外,规范还定义了一些验证方法和技术,帮助设计人员进行功能验证和系统级仿真,从而提高设计的可靠性和效率。 对于硬件工程师和设计人员来说,熟悉Verilog/SystemVerilog IEEE规范非常重要。规范提供了详细的语法和语义定义,使得开发人员能够编写正确且高效的硬件描述代码。同时,规范还包含了一些重要的建议和最佳实践,可以帮助设计人员避免一些常见的设计错误和陷阱。因此,掌握Verilog/SystemVerilog IEEE规范对于硬件设计的成功至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值