首页 > 其他分享 >无符号比较器

无符号比较器

时间:2023-03-04 17:36:54浏览次数:24  
标签:begin end 符号 unsigned 比较 WIDTH reg

 无符号比较器
无符号比较器,需要比较两边信号均为无符号类型,同时如果位宽不匹配,需要扩展位宽进行匹配,对于无符号数,扩展位补0即可。当然,Synposys,推荐的时候,在定义信号时,把信号符号类型定义清楚,默认定位为无符号,可以不作位宽匹配,工具自动优化。不过本人还是建议,按照位宽扩位方式进行代码编写,一个是电路表达最清晰和可控,不依赖于工具的理解,因为可能synopsys综合最优,但可能FPGA综合就有问题,二个是,作工具语法检查,可以省去很多位宽不匹配的Warning的检查,防止Warning过多,检查疏忽,反而把真正有位宽匹配的问题漏掉。

个人推荐无符号比较器 Verilog写法:
       localparam   A_WIDTH;
       localparam   B_WIDTH;
      
       reg [A_WIDTH-1:0]  a;  // Default declaration type is unsigned
       reg [B_WIDTH-1:0]  b;  // Default declaration type is unsigned
   
       reg                          c;
      // A_WIDTH is bigger than B_WIDTH
      always @(*) begin
            if (a > {{(A_WIDTH-B_WIDTH){1'b0}},b}) begin
                  c = 1'b1;
            end
            else begin
                 c = 1'b0;
            end
      end

sysnopsys 推荐写法:
       localparam   A_WIDTH;
       localparam   B_WIDTH;
      
       reg unsigned [A_WIDTH-1:0]  a;  // Default declaration type is unsigned
       reg unsigned [B_WIDTH-1:0]  b;  // Default declaration type is unsigned
   
       reg                          c;
      // A_WIDTH is bigger than B_WIDTH
      always @(*) begin
            if (a > b) begin
                  c = 1'b1;
            end
            else begin
                 c = 1'b0;
            end
      end

标签:begin,end,符号,unsigned,比较,WIDTH,reg
From: https://www.cnblogs.com/chunk998/p/17178659.html

相关文章

  • 无符号乘法器
    无符号乘法器与无符号加法类似,无符号乘法器也要求两边的乘数是无符号的,一旦有一方为有符号数,则整个结果为有符号数,否则综合会出现不可预知的结果。与无符号加法不同的是,无......
  • 有符号数的加法
    有符号数的加法,从无符号的加法章节就提及过,只要加数有一方为有符号数,则和一定是有符号数,重点强调一下,大家千万不要从场景上分析,认为C=A+B一定是>0,则及时A和B有一个是有符......
  • 有符号加法的Verilog实现
    有符号加法的Verilog实现形式,推荐两种方式:方式一:传统方式,手动扩位,实现左右位宽匹配,扩位为符号位,另外信号输入有符号数,一定要显示定义,Verilog默认不定义就是无符号类型1 ......
  • 无符号二进制加法
    无符号二进制加法,需要保证两个相加的加数均为无符号数,如果有一个位有符号数,则均为有符号运算,结果为有符号数,即对于减法来讲,不存在无符号减法。  无符号A+无符号B=无......
  • idea2020版本找不到符号,找不到程序包问题
    本人把网上除了重装idea的方法试了个遍,最后才重装的,根据群体反应2020版本的这个问题是通病,2020版本会出现这种莫名的错误,建议官网下载2019,2021,2022版本的idea(2022版本需......
  • LNK2001 无法解析的外部符号 "int const ROUND"
    今天在写代码时出现了这个错误,网上的解决方法都不合适我的代码是这样,在一个cpp里申明了一个常量//data.cppconstintROUND=3;然后在一个头文件里申明为全局变量......
  • 一个网站有多个域名,怎么处理对SEO比较友好?
    哪些情况下,会出现一个网站多个域名?1、购买了核心域名(如:seowhy.com),同时把小众后缀域名一起买了(如:seowhy.org),网站建立后,希望把小众后缀的域名一起解析到网站上。2、发现正使......
  • 如何使用 js 实现一个比较APP版本号的大小的版本号排序函数 All In One
    如何使用js实现一个比较APP版本号的大小的版本号排序函数AllInOne(......
  • HTML 符号实体
    HTML符号实体本字符实体参考手册包括了数学符号、希腊字符、各种箭头记号、科技符号以及形状。注释: 实体名称对大小写敏感。HTML支持的数学符号字符实体编号实体......
  • mysql: 看不见的空符号 char(9) char(10) char(13)
    trim,消除前后的空格,没有效时果updatetable_namesetcolumn_name=replace(replace(replace(column_name,char(9),''),char(10),''),char(13),'');说明:table_name:表......