时序逻辑电路设计入门——Verilog HDL语言

时序逻辑电路设计入门——Verilog HDL语言

计数器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值