建站行业最新消息,sticklr wp wordpress,江西省水文监测中心,上海中学分数线专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点#xff0c;刷题网站用的是牛客网 根据时序图#xff0c;数据是在第二个数据到来之后输出#xff0c;当仅有一个数据到来时#xff0c;不产生输出#xff0c;所以内部需要一个指示信号valid_cnt#xf… 专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点刷题网站用的是牛客网 根据时序图数据是在第二个数据到来之后输出当仅有一个数据到来时不产生输出所以内部需要一个指示信号valid_cnt用来指示数据缓存状态。当data_lock内已缓存第一个数据时valid_cnt拉高当第二个数据到来后valid_cnt拉低 timescale 1ns/1nsmodule width_8to16(input clk , input rst_n ,input valid_in ,input [7:0] data_in ,output reg valid_out,output reg [15:0] data_out
);reg [7:0] data_lock ; reg valid_cnt ; always (posedge clk or negedge rst_n) begin if (~rst_n) valid_cnt d0 ; else if (valid_in) valid_cnt ~valid_cnt ; endalways (posedge clk or negedge rst_n) begin if (~rst_n) data_lock d0 ; else if (valid_in !valid_cnt) data_lock data_in ; endalways (posedge clk or negedge rst_n) begin if (~rst_n) valid_out d0 ; else if (valid_in valid_cnt 1d1) valid_out 1d1 ; else valid_out d0 ; endalways (posedge clk or negedge rst_n) begin if (~rst_n) data_out d0 ; else if (valid_in valid_cnt 1d1) data_out {data_lock, data_in} ; endendmodule