module count_test(en,clk,clr,cout,outy); input en,clk,clr; output [3:0]outy; output cout; reg [3:0]outy; always @ (posedge clk or posedge clr) // 请在下面添加代码以完成16 制计数器功能 /* Begin */ if(clr) outy<=0; else if(en) if(outy < 16) outy <= outy 1; assign cout = (outy == 15)?1'b1:1'b0; /* End */ endmodule
module shift_test(din,s,srsi,slsi,clk,clr,dout); input[7:0] din; input[1:0] s; input srsi,slsi,clk,clr; output [7:0] dout; reg[7:0] r_reg,r_next; always@(posedge clk or negedge clr) // 请在下面添加代码完成 8 双向移位寄存器功能 /* Begin */ if(!clr) r_reg <=0; else r_reg<=r_next; always @* case(s) 2'b00:r_next = r_reg; 2'b01:r_next = {
din[7],r_reg[7:1]}; 2'b10:r_next = {
r_reg[6:0],din[1]};//这里我认为是din[0],但是经过实践发现din[1]才与平台上的结果相匹配
default:r_next = din;
endcase
assign dout = r_reg;
/* End */
endmodule