移位寄存器 verilog代码

求一个移位寄存器verilog代码要求输入输出端口如下inputin,clk,en,clr,set;outputout;异步清零同步置位带使能写出来的编译通过+100分!... 求一个移位寄存器 verilog代码要求输入输出端口如下
input in,clk,en,clr,set;
output out;
异步清零同步置位带使能
写出来的编译通过+100分!
展开
 我来答
霜皛06d
2009-03-22 · TA获得超过1204个赞
知道小有建树答主
回答量:707
采纳率:33%
帮助的人:502万
展开全部
module shift(
in,
clk,
en,
clr,
set,
out
);
input [7:0]in; //input data
input clk; //input clock
input en; //input enable high enable
input clr; //input clear low enable
input [2:0]set; //input set :set num of shift bit
output [7:0]out;

always@(posedge clk or negedge clr) begin: shift_reg
if(!clr) //asychro reset_n low enable
out <= 8'b0;
else if(en) begin //enable signal
case(set[2:0])
3'b0: out <= in[7:0]; //no shift
3'b1: out <= {in[0],in[7:1]};//shift 1bit
3'd2: out <= {in[1:0],in[7:2];//shift 2bit
... ...
//中间这段自己写,要是不会我就撞墙了
default: out <= in[7:0];
endcase
end
end
七霁根02
推荐于2018-02-27 · TA获得超过180个赞
知道答主
回答量:55
采纳率:100%
帮助的人:0
展开全部
//这个程序串行输入,并行8位输出

module yiwei(in,clk,en,clr,set,out);
input en,set,clk,clr;
input in;
output [7:0] out;
reg [7:0] out;

always@(posedge clk or negedge clr)
begin
if(!clr)//异步清零
begin
out<=0;
end

else
begin
if(en & set) out<=8'b11111111;//置位

else if(en)//使能
begin
out<=out<<1;
out[0]<=in;
end

else
out<=out;
end
end

endmodule
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
T_TNT_TNT_T
2009-03-20 · TA获得超过1274个赞
知道小有建树答主
回答量:378
采纳率:100%
帮助的人:440万
展开全部
对啊,给出具体要求。位数,串并转换关系,有什么特殊要求。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佘影
2009-03-20 · TA获得超过448个赞
知道小有建树答主
回答量:69
采纳率:0%
帮助的人:109万
展开全部
你要串入并出,还是并入串出
你的输入in是几位的,out是几位的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式