无符号比较器
无符号比较器
无符号比较器,需要比较两边信号均为无符号类型,同时如果位宽不匹配,需要扩展位宽进行匹配,对于无符号数,扩展位补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
无符号比较器,需要比较两边信号均为无符号类型,同时如果位宽不匹配,需要扩展位宽进行匹配,对于无符号数,扩展位补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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构