首页 > 其他分享 >低开销求补码电路

低开销求补码电路

时间:2024-04-28 14:33:32浏览次数:24  
标签:din dout 补码 inv mask 开销 WIDTH 电路

电路里经常用补码来表示有符号整数,求一个负数的补码表示最直接的方法是将对应的正数取反再加1。如果要写一个参数化的求补码的模块,则代码如下:

module cal_complement#(
    parameter WIDTH = 8
)(
    input  [WIDTH-1:0] din,
	output [WIDTH-1:0] dout);
	
	assign dout = ~(din - 1);

endmodule

此模块需要用到一个加法器,如果位宽较大可能时序上有些差并且所需资源较多。在阅读CSAPP的时候,了解到一种新的求补码的方式:从LSB到MSB寻找第一个为1的位置,然后从该位置的下一个位置开始直到MSB全都取反,就可以得到该数的补码非。我忽然联想到不用加法器也可以实现求负数的补码。

首先需要构建一个mask,该mask生成的规则是,从LSB到MSB的第一个为1的位置的下一个位置开始直到MSB都置1,其他位置置0。例如对于二进制数4'b0110,对应的mask为4'b1100。然后将该mask与原数做按位异或运算即可得到补码。负数做此运算会得到对应的正数的补码。

基于上述思路,模块的代码如下:

module cal_complement#(
	parameter WIDTH = 8
)(
	input  [WIDTH-1:0] din,
	output [WIDTH-1:0] dout
);
	wire [WIDTH-1:0] inv_mask_w;
	assign inv_mask_w = {din[WIDTH-2:0]|inv_mask_w[WIDTH-2:0],1'b0};
	assign dout = din^inv_mask_w;
endmodule

代码中inv_mask[0]直接置0即可,因为不管din的LSB是0还是1,inv[0]都应该置0。

接下来我设置位宽为32位然后综合了一下,很不幸,结果显示采用第二种写法确实会降低面积,但是降低的程度很有限,但是时序上第一种反而要比第二种要好一些,不得不说DesignWare的电路优化确实可以,不是一般代码可以比得上的。我猜测虽然用了减法器,但是减数是常数,所以实际使用的资源可能会低一些。

标签:din,dout,补码,inv,mask,开销,WIDTH,电路
From: https://www.cnblogs.com/lzhj/p/18163680

相关文章

  • 数字电路中的等效电路和FPGA中的等效电路
    欢迎各位朋友关注“郝旭帅电子设计团队”,本微信公众号会定时更新相关技术类资料、软件等等,希望各位朋友都能在本微信公众号获得一些自己想要的“东西”。本篇内容主要介绍数字电路中的等效电路(注意:是数字电路,不是模拟电路)。 上述为利用三个二输入与门组成的两种不同结构的四......
  • 模拟集成电路设计系列博客——6.1.2 折叠电阻串DAC
    6.1.2折叠电阻串DAC为了减少数字解码的数量以及大的容性负载,可以使用折叠电阻串D/A,如下图所示[Abrial,1988]:这种方式使得解码非常类似于数字存储器,从而减少了总的解码区域。在上图中的4-bit例子中,为了转换数字码,高2比特{b1,b2}决定了需要选中的单个字线(其他的保持为低)。一个字......
  • 模拟集成电路设计系列博客——6.1.1 电阻串DAC
    6.1.1电阻串DAC最直接的实现\(N-bit\)D/A转换器的方式是产生\(2^N\)个参考信号,并根据数字输入码,将合适的信号传递到输出。我们将这种D/A转换器成为基于解码器的转换器。最早的8-bit集成MOSD/A转换器是基于通过一个开关网络选择一部分分段电阻串[Hamade,1978]。开关网络连接在......
  • AP5121是一款外围电路简单的多功能平均电流型LED 恒流驱动器
    AP5121是一款外围电路简单的多功能平均电流型LED恒流驱动器,适用于宽电压范围的非隔离式大功率恒流LED驱动领域。芯片PWM端口支持超小占空比的PWM调光,可响应最小60ns脉宽。芯片采用我司专利算法,为客户提供最佳解决方案,最大限度地发挥灯具优势,以实现景观舞台灯高辉的调......
  • APS54087 是 一款外围电路简单的无频闪降压LED恒流驱动器
    APS54087是一款外围电路简单的无频闪降压LED恒流驱动器,芯片采用高压工艺,减少整个电路的发热量,提高效率。适用于6.5-80V电压范围的非隔离式大功率恒流LED驱动领域。LD端口支持模拟调光,调光范围0-1.8V,应用于大电流设置。LD端口接电容到地,可以设置软起动时间。APS54087芯片的......
  • 逻辑电路的动态功耗⼀般跟以下哪个因素相关()
    选项:A、电压B、频率C、⼯艺D、⼯作温度答案:ABCD解析:动态功耗=开关功耗+短路功耗;开关功耗=CLVDDf,其中CL为负载电容,VDD为电源电压,f为翻转频率(翻转率*频率),显然,电压、频率与开关功耗有关;短路功耗=tscVDDIpeakf,其中tsc代表短路状态的时间,Ipeak代表短路状态时的电......
  • 无源RLC电路和阻抗匹配 part2:串并联网络变换+L型匹配
    串并联变换(以RL串联→并联为例)若使上述变换成立,串联支路(Ls、Rs)总阻抗应等于并联支路(Lp、Rp)总阻抗因为可得RC串联→并联:上述变换为窄带阻抗变换,仅在以w0为中心的窄带内成立L型匹配L型匹配所用元件较少,仅用两个无源器件即可构成(电容or电感),根据Rs和Rl的大小关系可分......
  • 推荐蓝牙对讲机内部PA+SW组合电路-CB5337+CBS8112
    CB5337是完整的2.4GHz802.11axWLANRF前端模块(FEM)。包含一个2.4GHz单刀双投(SPDT)发射/接收(T/R)开关,一个2.4GHz低噪声放大器(LNA),以及一个应用于大功率802.11ax2.4GHz功率放大器(PA),非标最高可提供33dbm发射增益和14dbm接收增益;CB5337提供了完整的2.4GHzWLAN射频解决方案,从......
  • 数字电路基础-二进制数据表达;数电基础(基础逻辑门电路、运算器)
    嵌入式技术之从零搭建计算机课堂笔记第1章数字电路基础1.1二进制数据表达文字图片 ——透明度占1个字节,只有png图片有透明度该选项,其他图片都是(24位;3字节)对应3原色声音视频1.2数电基础①基础逻辑门电路需要记住:口诀、符号、表达式!1.非门口诀:输出与输入......
  • 驻极体话筒(MIC)、三极管、led组成的声控led闪光电路分析
    电路:声控LED闪烁灯这里介绍一个通过声音控制LED闪光的简单电路,将它挂在室内音响或电视机的扬声器附近,LED会随喇叭播放的音色声而闪闪发光。电路图如下。 电路工作过程:1、电路上电后,周围环境无声音时,三极管Q1,基极电阻R1,集电极电阻R3,刚好是三极管的一个基极偏置电路,三极管Q1......