草庐IT

【牛客】7 计数器&存储器&综合

VL50 简易秒表`timescale1ns/1nsmodulecount_module(inputclk,inputrst_n,outputreg[5:0]second,outputreg[5:0]minute);always@(posedgeclkornegedgerst_n)beginif(~rst_n)second'd0;elseif(minute==60)secondsecond;elsesecond60)?second+1:1;endalways@(posedgeclkornegedgerst_n)beginif(~rst_n)minute'd0;elseif(second==60

【牛客】2 组合逻辑

VL11 4位数值比较器电路根据题目真值表把情况全部列出来,纯体力活。`timescale1ns/1nsmodulecomparator_4(input[3:0]A,input[3:0]B,outputwireY2,//A>BoutputwireY1,//A=BoutputwireY0//A);assignY2=(A[3]&~B[3])||((~A[3]^B[3])&&(A[2]&~B[2]))||((~A[3]^B[3])&&(~A[2]^B[2])&&(A[1]&~B[1]))||((~A[3]^B[3])&&(~A[2]^B[2])&&(~A[1]^B[1])&&A[0]&~B[0]);

【牛客】2 组合逻辑

VL11 4位数值比较器电路根据题目真值表把情况全部列出来,纯体力活。`timescale1ns/1nsmodulecomparator_4(input[3:0]A,input[3:0]B,outputwireY2,//A>BoutputwireY1,//A=BoutputwireY0//A);assignY2=(A[3]&~B[3])||((~A[3]^B[3])&&(A[2]&~B[2]))||((~A[3]^B[3])&&(~A[2]^B[2])&&(A[1]&~B[1]))||((~A[3]^B[3])&&(~A[2]^B[2])&&(~A[1]^B[1])&&A[0]&~B[0]);

【牛客】5 时序逻辑

VL33 非整数倍数据位宽转换8to12和上一题一样的,注意valid_out输出时加一个valid_in(其实32题也要加,不过不加仿真也能过)。`timescale1ns/1nsmodulewidth_8to12(inputclk,inputrst_n,inputvalid_in,input[7:0]data_in,outputregvalid_out,outputreg[11:0]data_out);reg[2:0]count;always@(posedgeclkornegedgerst_n)beginif(~rst_n)count0;elseif(valid_in)count2)?co

【牛客】5 时序逻辑

VL33 非整数倍数据位宽转换8to12和上一题一样的,注意valid_out输出时加一个valid_in(其实32题也要加,不过不加仿真也能过)。`timescale1ns/1nsmodulewidth_8to12(inputclk,inputrst_n,inputvalid_in,input[7:0]data_in,outputregvalid_out,outputreg[11:0]data_out);reg[2:0]count;always@(posedgeclkornegedgerst_n)beginif(~rst_n)count0;elseif(valid_in)count2)?co

【牛客】8 企业真题

VL59 根据RTL图编写Verilog程序这题比较简单,照着写就好了。`timescale1ns/1nsmoduleRTL(inputclk,inputrst_n,inputdata_in,outputregdata_out);regdata_in_reg;always@(posedgeclk)beginif(~rst_n)begindata_in_reg1'b0;data_out1'b0;endelsebegindata_in_regdata_in;data_outdata_in_reg;endendendmoduleVL60 使用握手信号实现跨时钟域数据传输题目只给了一个模块的接口,实际

【牛客】8 企业真题

VL59 根据RTL图编写Verilog程序这题比较简单,照着写就好了。`timescale1ns/1nsmoduleRTL(inputclk,inputrst_n,inputdata_in,outputregdata_out);regdata_in_reg;always@(posedgeclk)beginif(~rst_n)begindata_in_reg1'b0;data_out1'b0;endelsebegindata_in_regdata_in;data_outdata_in_reg;endendendmoduleVL60 使用握手信号实现跨时钟域数据传输题目只给了一个模块的接口,实际