完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
仿真工具:Vivado 2015.1 目标器件:xc7a100tfgg484-2
仿真代码: module test_sim( ); reg sys_clk; reg rst_n; reg [7:0] a; reg [7:0] b; reg [8:0] c; reg [9:0] d; reg [17:0] e; reg [7:0] temp1; reg [17:0] temp2; wire[17:0] mult_out; initial begin sys_clk = 0; rst_n = 0; #30 rst_n = 1; a = 'd54; b = 'd1; d = 'h1e0; end always #5 sys_clk = ~sys_clk; mult_test mult_test ( .CLK(sys_clk), .A((~c[7:0]) + 8'b0000_0001), .B(d), .P(mult_out) ); always @(posedge sys_clk) begin a <= a+'d1; b <= b+ 'd2; c <= {1'b0,a} - {1'b0,b}; temp1 <= ((~c[7:0]) + 8'b0000_0001); temp2 <= ((~c[7:0]) + 8'b0000_0001) * d; e <= c[8]? (((~c[7:0]) + 8'b0000_0001) * d) : (c[7:0] * d); end endmodule 仿真波形截图: 可见:当a为3c,b为0d时,c <= {1'b0,a} - {1'b0,b};得到2f;延一拍,temp1的值为d1(取反加1的结果) d1 * 1e0 = 187e0,IP输出的结果mult_out正确,temp2得到值3a7e0,错误。所以,涉及到负数乘法处理时,用IP较好。
|
|
相关推荐
|
|
FPGA实现乘法运算(直接用符号*和用IP的区别) 学习了
|
|
|
|
|
|
1446 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1061 浏览 0 评论
2525 浏览 1 评论
2217 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2486 浏览 0 评论
1956 浏览 54 评论
6032 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 22:22 , Processed in 0.395733 second(s), Total 39, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号