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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

7 |, Y0 n) w4 ?& X/ p, g5 Q, r6 q0 c
    在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。; Z! z8 n' a0 Q, H. `& ]! c
* t  O, L* \- K# ~5 p/ {( j
通过“*”运算符完成有符号数的乘法运算。
" \7 n. }; v$ nmodule ceshi (out, clk, a, b);
9 z6 A% Q1 w8 f- i6 Aoutput [15:0] out; * s) ~, h# H" ?! F
input clk;
, c  A! }  [4 C; r  d3 ^) f7 z) s2 S4 Q/ y) r  T. J
//通过 signed 关键字定义输入端口的数据类型为有符号数
+ c# ]0 V+ V; [' I  @input signed [7:0] a; 9 p2 |$ n2 X0 D6 x( w
input signed [7:0] b;
/ U6 u" R) }5 b7 Y9 ~1 Y. g; h. V  g$ v# a' o: m% }: u
//通过 signed 关键字定义寄存器的数据类型为有符号数 " a" v8 Z6 q0 M; G% x5 u
reg signed [7:0] a_reg; 3 k1 h1 n" H" Q& i7 q2 _
reg signed [7:0] b_reg;
" `. T! Y" @. d& `" c* Yreg signed [15:0] out; 9 k, V* [, ~9 D
) _4 M+ K1 n5 N7 G& _
wire signed [15:0] mult_out;2 |/ z9 X$ H' y% h2 U; C
//调用*运算符完成有符号数乘法 + p& Q* H! T$ S$ L) @3 ?6 g" d/ }( A
assign mult_out = a_reg * b_reg;
3 ~( X" ?# Q: @5 W) m
6 M/ t0 N5 U, R/ salways@(posedge clk)
* ]( K3 B# @1 J4 c3 E& p1 vbegin
7 Q; {/ d9 _1 c1 ba_reg <= a; ; m% T  @) O3 M* z! X9 G, k
b_reg <= b;
6 b/ f4 D/ R( D' \2 P* Aout <= mult_out;
: @" l' V! o- w1 s7 hend 4 H! R& m  `( O+ [# b7 I

7 b$ H0 Z4 W8 N9 h) Uendmodule
" [3 \" r: J: K5 j6 L( ~, w        上述程序在 ISE 中的综合结果如下图所示,从其 RTL 结构图可以看到乘法器标注为“signed” ,为有符号数乘法器。4 f6 U2 h( J1 e% j6 H. p" B
        
7 s& E% H. e! r8 G  T8 P! Y) s
        仿真结果图
3 t+ C! y( W( m- ~4 C- n         : I4 D, l" s; z. }- y
5 Q, V6 r7 T3 x% ]  x3 m# D
        二进制显示的结果
$ [4 {" ^2 K. s, ~         % r) S9 r; M! T) R/ ^# x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 14:17 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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