在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 365|回复: 5

[求助] 刷HDLbits遇到一个问题

[复制链接]
发表于 2025-2-11 02:07:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
题目是 Module shift8
以下为我的代码


module top_module (
    input clk,
    input [7:0] d,
    input [1:0] sel,
    output [7:0] q
);
    wire [7:0]w1,w2,w3;
    my_dff8 d1(clk,d,w1);
    my_dff8 d2(clk,w1,w2);
    my_dff8 d3(clk,w2,w3);
    four_to_one_mux p1(d,w1,w2,w3,sel[1],sel[0],q);

endmodule

module four_to_one_mux(
    input [7:0]I0,      
    input [7:0]I1,      
    input [7:0]I2,      
    input [7:0]I3,      
    input S0,      
    input S1,      
    output [7:0]Y        
);

    assign Y = (~S1 & ~S0 & I0) | (~S1 & S0 & I1) | (S1 & ~S0 & I2) | (S1 & S0 & I3);

endmodule   


输出波形如下

                               
登录/注册后可看大图

为什么sel变化的时候输出会有错误,有时候占一个周期有时候占两个周期
 楼主| 发表于 2025-2-11 11:26:27 | 显示全部楼层
感谢各位大佬解答,我把sel对应之后,再把s0,s1扩展为8位就解决问题了。感谢各位
 楼主| 发表于 2025-2-11 02:09:14 | 显示全部楼层
题目图如下


                               
登录/注册后可看大图

发表于 2025-2-11 10:01:38 | 显示全部楼层
four_to_one_mux中语法不规范导致平台的仿真系统出错,双目运算符& | 需要保持两个输入量位宽一致,建议改掉这个语法问题再试试
发表于 2025-2-11 10:20:00 | 显示全部楼层
你的sel[1]对应的是S0, sel[0]对应的是S1.
然后位宽也不一致, 好奇怎么得到q那个结果的.看起来不像按符号位或者0拓展位宽.
发表于 2025-2-11 10:31:22 | 显示全部楼层
1. four_to_one_mux实例化的时候sel没S1和S0对应;
2. four_to_one_mux本身写的也有问题,1位的数据和8位的数据进行&运算,结果是1位的数据和8位中的每一位进行运算,得到的结果肯定不对.
建议把four_to_one_mux重写一遍,然后修改一下实例化,结果应该就没问题了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-4-2 17:24 , Processed in 0.040096 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表