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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2482|回复: 0

新手请教:关于总线发送数据的写法

[复制链接]
发表于 2004-12-28 15:49:45 | 显示全部楼层 |阅读模式

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

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

x
/*
这种情况应该怎么写:
一个总线发送数据的block,共40 bits,
S T cmd addr crc STOP
S:起始位,1bit,固定为0
T:标志位,1bit,固定为1
CRC:crc值,为前面数据的crc值,7位,
stop:停止位,固定为 1
我的写法如下,但是这样效率似乎不高?会产生一个64选一的mux,一个
最高到40的incr +1的器件。
不知道有没有别的好的方法实现?
先谢谢各位了。:P   
*/
module test_reg (clk,wr,cmd,addr,crc,dout,done);
input clk;
input wr;            //使能信号
input [5:0] cmd;     //命令字
input [23:0] addr;   //32bits 参数
input [6:0] crc;     //7bits crc值   
output dout;//输出数据
output done;//传输结束标志      
reg dout;
reg done;

wire [39:0] cmdreg;
reg [3:0] i;
assign cmdreg = {1'b0,1'b1,cmd,addr,crc,1'b1};
always @(posedge clk )
    if (!done && wr)
        begin
            if (i< 39)
                begin
                    dout <= cmdreg;
                    i <= i + 1'b1 ;
                end
            else begin
                    i <= 1'bx;  
                    done <= 1'b1;
                 end
                                    
        end
     else if (!wr)
           begin
                done <= 1'bx;        
                i <= 1'b0;
           end

endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-21 19:20 , Processed in 0.021577 second(s), 9 queries , Gzip On, Redis On.

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