risc-v中文社区

 找回密码
 立即注册
查看: 1166|回复: 0

[原创] verilog中数据交换(1)

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-9-18 14:00:19 | 显示全部楼层 |阅读模式
//直接将两个输入交叉输出
module change_2in_2out (
        input clk,enable,reset,
        input in1,in2,
        output out1,out2 //一个时钟周期之后 out1=in2,out2=in1
};
        reg tmp1;
        reg tmp2;
        always @(posedge clk) begin
                if(reset) begin
                        tmp1 <= 1'b0;
                        tmp2 <= 1'b0;
                end
                else if(enable == 1'b1) begin //enable必须是一个周期的脉冲信号
                        tmp1 <= in1;
                        tmp2 <= in2;
                end
        end
        assign out1 = tmp2;
        assign out2 = tmp1;
endmodule
回复

使用道具 举报

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

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-29 17:49 , Processed in 0.013664 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表