0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

fpga 有符号数、无符号数

FPGA学习交流 2018-10-09 15:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。

通过“*”运算符完成有符号数的乘法运算。
module ceshi (out, clk, a, b);
output [15:0] out;
input clk;

//通过 signed 关键字定义输入端口的数据类型为有符号数
input signed [7:0] a;
input signed [7:0] b;

//通过 signed 关键字定义寄存器的数据类型为有符号数
reg signed [7:0] a_reg;
reg signed [7:0] b_reg;
reg signed [15:0] out;

wire signed [15:0] mult_out;
//调用*运算符完成有符号数乘法
assign mult_out = a_reg * b_reg;

always@(posedge clk)
begin
a_reg <= a;
b_reg <= b;
out <= mult_out;
end

endmodule
上述程序在 ISE 中的综合结果如下图所示,从其 RTL 结构图可以看到乘法器标注为“signed” ,为有符号数乘法器。
102341y0qc66p2geg9g6pz.png




仿真结果图
102341otfrnmtnnbqkvqbz.png


二进制显示的结果
102342g9l5ier7ljzj1j1z.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22501

    浏览量

    639031
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索LM12454/LM12458/LM12H458:12位+符号数据采集系统的卓越性能

    探索LM12454/LM12458/LM12H458:12位+符号数据采集系统的卓越性能 在电子工程师的日常工作中,数据采集系统是不可或缺的一部分。今天,我们将深入探讨德州仪器(TI)推出
    的头像 发表于 04-19 13:40 71次阅读

    一文读懂电子元件符号:新手也能轻松识别,避坑不踩雷

    ​ 电子元件符号是电路设计、识图、维修的“通用语言”,无论是画电路图、看 datasheet,还是排查电路故障,精准识别元件符号都是基础。很多新手入门时容易混淆相似符号,甚至看错符号
    的头像 发表于 02-06 14:24 1072次阅读
    一文读懂电子元件<b class='flag-5'>符号</b>:新手也能轻松识别,避坑不踩雷

    传递一个符号的 long 型指针给函数

    C语言允许传递指针给函数,只需要简单地声明函数参数为指针类型即可。 下面的实例中,我们传递一个符号的 long 型指针给函数,并在函数内改变这个值: 实例 #include #include
    发表于 01-27 11:51

    工控人必备的30个字母符号

    在工业自动化控制领域,符号语言是工程师沟通设备与系统的通用密码。掌握核心符号体系不仅能提升图纸阅读效率,更是故障诊断和系统集成的关键技能。本文将系统梳理30个最具代表性的字母符号及其工程含义,通过
    的头像 发表于 01-17 07:38 1414次阅读
    工控人必备的30个字母<b class='flag-5'>符号</b>

    位操作的常见错误与应对策略

    的,可能会导致数据溢出或丢失。 (三)数据类型位表示的理解要点 在嵌入式系统中,不同的数据类型有着不同的位表示方式,这一点在进行位操作时尤为重要。符号数符号数的位表示就存
    发表于 11-24 07:50

    定点数表示实数的方法以及定点数在硬件上的运算验证

    ,Vivado就能将后续符号数运算综合成相应电路(与C语言不同,Verilog规定,符号数符号数
    发表于 10-28 08:13

    一个提升蜂鸟E203性能的方法:乘除法器优化

    ,同样对于符号乘法进行一位符号扩展后统一当作符号数进行运算,另外,由于加减交替法迭代所得的结果存在着1比特精度的问题,因此还需要额外3个
    发表于 10-27 07:16

    通过内联汇编调用乘法指令mulh\\mulhsu\\mulhu

    32位(32位符号数相乘与符号数相乘低32位相同) mulhrd,rs1, rs2 将两个32位
    发表于 10-24 06:52

    对于指令集中back2back情况的简单介绍

    (64 位中的低 32 位)就用 mul 指令。要得到高 32 位,如果操作数都是符号数,就用 mulh 指令;如果操作数都是符号数,就用 mulhu 指令;如果一个
    发表于 10-23 06:52

    蜂鸟乘法器设计分享

    符号数的运算。蜂鸟中为了保证运算的一致性,统一在操作数前面补1位符号位,从而将符号数转化为
    发表于 10-22 08:21

    Booth编码的原理及选择

    Booth提出该算法的初衷是基于当时计算机中的移位运算比加法运算要快这个硬件环境,其目的是通过移位运算代替部分加法运算来提高乘法运算速度。然而,Booth算法更大的优势在于,它对符号数
    发表于 10-22 07:53

    e203除法器算法改进(一)

    (即确定整数除法计算的次数)。 在进行前导零预处理前,需要对操作数进行符号数符号数的转换,转换后只需要在预处理时考虑前导零的情况,而不需要额外考虑前导一的情况,此方法可以大大降
    发表于 10-22 07:13

    RISC-V M扩展介绍

    寄存器中 mulh rd, rs1, rs2 # 将rs1和rs2的高32位乘积存储在rd寄存器中 mulhsu rd, rs1, rs2 # 将rs1的符号数和rs2的符号数
    发表于 10-21 06:50

    rt-thread studio怎么设置才能让char变量是真正的符号类型?

    最近被一个bug折磨了3天,一路debug进来,发现最终的原因是,定义了一个char变量,但实际上是符号的(代码期望该变量是符号的)。 然后我检查了以下编译器如下的设置,发现很奇怪
    发表于 09-16 08:23

    Copilot操作指南(一):使用图片生成原理图符号、PCB封装

    “  上周推出支持图片生成模型的华秋发行版之后,得到了很多小伙伴的肯定。但看到更多的回复是:为什么我的 Copilot 无法生成符号?只有普通的文本回复?今天就为大家详细讲解下图片生成符号、封装
    的头像 发表于 07-15 11:14 5232次阅读
    Copilot操作指南(一):使用图片生成原理图<b class='flag-5'>符号</b>、PCB封装