完善资料让更多小伙伴认识你,还能领取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的区别) 学习了
|
|
|
|
|
|
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
1241 浏览 0 评论
399 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
1395 浏览 1 评论
456 浏览 0 评论
1345 浏览 1 评论
4248 浏览 94 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-15 02:32 , Processed in 0.534151 second(s), Total 67, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号