数据选择器在数字电路的设计在尤其重要,包括FPGA内部的逻辑实现,都是通过数据选择器来实现的,现在我们来一起设计一个最基础的二选一数据选择器。
二选一数据选择器有4个端口组成,分别是data_a,data_b,data_sel,和data_out;data_a与data_b分别是数据的输入端,而data_sel则是数据的选择端口,data_out是数据的输出端,详细的结构图如下:
代码如下:
仿真代码如下:
仿真结果如下:
由仿真图可知,当data_sel为低电平的时候,data_out=data_b,当data_sel为高电平的时候,data_out=data_a,data_out的输出由data_sel的电平来决定,满足了二选一数据选择器的要求;
下面我们来改造一下二选一数据选择器的结构,让二选一数据选择器的输出端带寄存器的形式做输出:
代码如下:
仿真代码如下:
仿真结果如下:
由仿真图可知,当data_sel为低电平的时候,data_out的输出结果等于时钟上升沿之前的data_b,当data_sel为高电平的时候,data_out的输出结果等于时钟上升沿之前的data_a,data_out的输出由data_sel的电平与时钟信号一起决定,与第一个设计的二选一数据选择器不同的地方就是data_out的输出结果会慢一个时钟周期。