完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 disoncxj 于 2013-5-13 17:39 编辑 我用verilog编了一个减法代码,但是在FPGA下的时序仿真却出现了时钟延时,请问我的代码有什么问题吗?(代码的内容:输入x和y,e=y-x,eo表示正负,ec是后一个e与前一个e的误差,co表示正负) 代码如下: module jianfa (x, y, clk, e, ec, eo, co); input[7:0] x; input[7:0] y; input clk; output[7:0] e; reg[7:0] e; output[7:0] ec; reg[7:0] ec; output eo; reg eo; output co; reg co; reg[7:0] a; reg[7:0] b; reg m; reg n; always @( posedge clk) begin if (y >= x) begin a <= y - x ; m <= 1'b1 ; end else if (y < x) begin a <= x - y ; m <= 1'b0 ; end n <= m ; eo <= m ; b <= a; end always @(posedge clk) begin if (m == 1'b0 & n == 1'b0) begin if (a >= b) begin ec <= a - b ; co <= 1'b0 ; end else if (a < b) begin ec <= b - a ; co <= 1'b1 ; end end else if (m == 1'b0 & n == 1'b1) begin ec <= a + b ; co <= 1'b0 ; end else if (m == 1'b1 & n == 1'b0) begin ec <= a + b ; co <= 1'b1 ; end else if (m == 1'b1 & n == 1'b1) begin if (a >= b) begin ec <= a - b ; co <= 1'b1 ; end else if (a < b) begin ec <= b - a ; co <= 1'b0 ; end end e <= a ; end endmodule 仿真结果如下: |
|
相关推荐
1个回答
|
|
代码没有问题,同步逻辑电路就是靠时钟工作的,第一个上升沿取数据,第二个时钟的上升沿才会输出数据。所以仿真是没有问题的。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1421 浏览 1 评论
1215 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1426 浏览 0 评论
913 浏览 0 评论
2229 浏览 0 评论
1432 浏览 35 评论
5616 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 17:43 , Processed in 0.534430 second(s), Total 71, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号