找回密码
 注册
关于网站域名变更的通知
查看: 394|回复: 1
打印 上一主题 下一主题

转——fpga 有符号数、无符号数 

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-19 08:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
转——FPGA 有符号数、无符号数

9 w5 g& G2 F3 h; D8 o& D* W
* v! R+ Q/ j1 m- ]8 ^5 H    在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。
7 f# i( Y- a! y: b2 w# a5 ]  A; g* `! x8 ^9 H( S) y( V* r& F
通过“*”运算符完成有符号数的乘法运算。( v5 Z  F' P( {- E; j  _# w
module ceshi (out, clk, a, b); 8 {4 m, y9 _( d4 J5 \6 W4 H
output [15:0] out; " J) v$ E; {; ^# x
input clk; & K2 d; k$ V- M( u1 k6 ]  P

5 q1 b% W, t& D5 f: I! \* e//通过 signed 关键字定义输入端口的数据类型为有符号数
5 e/ V* W3 u9 V. K* c" n5 yinput signed [7:0] a;
) g  }6 ]+ J* R* X! l. ?) i' dinput signed [7:0] b;
2 C# h9 D( K- x2 e. @
5 M3 X* g4 V& |( [//通过 signed 关键字定义寄存器的数据类型为有符号数 " b: [: _& D5 B7 C$ g) O
reg signed [7:0] a_reg;
6 }$ D& s0 a7 z( p( g1 D' wreg signed [7:0] b_reg; ' W# Y- X- W- Y# D' B* k
reg signed [15:0] out;
( D- ]' w9 U: z, e$ ^3 o  T! f% a
wire signed [15:0] mult_out;
# s5 u: Q8 b- N//调用*运算符完成有符号数乘法
5 M1 s% x" H/ S# passign mult_out = a_reg * b_reg; % t* H/ n; U0 l! {( S
! w$ l) B! Z; E7 e. N
always@(posedge clk)
6 Z3 L6 B  n1 c7 e% z* X* wbegin # S  |+ M+ [. R6 s* F' v
a_reg <= a; 2 Y: @9 z& }" A& V
b_reg <= b;
& A% m( c8 o7 ?out <= mult_out;
% n! F0 ?9 Z. ]end
1 t$ V" b* t# o& z* ^
  m+ _* P; X+ S% Aendmodule
: o& H# v& L- @1 M( Z1 m        上述程序在 ISE 中的综合结果如下图所示,从其 RTL 结构图可以看到乘法器标注为“signed” ,为有符号数乘法器。6 C5 h7 m; F9 l, E. j# l) P( I
         ; D+ r% _1 R0 ?+ ~" N& v9 e
. X/ o# ]; L3 Y' J) C" v1 A
        仿真结果图
  D# Q2 K6 v- M& u         ' h! f' J5 `, d1 n+ W4 v

+ N' ]& Q* _2 c" T0 @2 w! c! T        二进制显示的结果
9 E: V' u: e; i( @, k3 q) B# k        
7 d  c  e8 |) s
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 10:25 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表