FPGA四选一的多路选择器(用三元运算符?:解决)

一. 三元运算符? :用法

?:符号通常用于条件运算符,表示条件判断。它类似于C语言中的三元运算符,用于根据条件选择不同的操作或值。

例如,在Verilog中,条件运算符?:可以用于if-else语句的简写形式。它的一般语法格式如下:

复制代码
表达式 ? 结果1 : 结果2

如果表达式为真,则结果为结果1;否则结果为结果2。

在FPGA设计中,这种条件运算符通常用于逻辑电路的组合和时序逻辑设计。通过使用条件运算符,可以根据不同的条件选择不同的信号路径或值,从而实现更灵活和高效的逻辑功能。

需要注意的是,在FPGA设计中,条件运算符?:的具体实现方式可能因不同的硬件平台和编译器而有所不同。因此,在实际应用中,需要根据具体的硬件资源和设计要求选择合适的条件运算符或替代方案,并进行相应的优化和调整。

二.题目描述

制作一个四选一的多路选择器,要求输出定义上为线网类型

状态转换:

d0 11

d1 10

d2 01

d3 00

三.信号示意图

四.波形示意图

五.代码

cs 复制代码
`timescale 1ns/1ns
module mux4_1(
input wire [1:0]d1,d2,d3,d0,
input wire [1:0]sel,
output wire[1:0]mux_out
);
assign mux_out = sel == 0 ? d3 : sel == 1 ? d2 : sel == 2 ? d1 : d0 ;
endmodule

六.前仿真代码

cs 复制代码
`timescale 1ns/1ns

module testbench();
	reg clk=0;
	always #5 clk = ~clk;  // Create clock with period=10
	//initial `probe_start;   // Start the timing diagram
        
	// A testbench
	reg [1:0]d1=0;
	reg [1:0]d2=0;
	reg [1:0]d3=0;
    reg [1:0]d0=0;
	reg [1:0]sel=0;	
	wire [1:0]mux_out;
	
	initial begin
		d1 <= 0;
		d2 <= 1;
		d3 <= 2;
		d0 <= 3;
		#10 
		sel <= 0;
		#10 
		sel <= 1;
		#10 
		sel <= 2;
		#10 
		sel <= 3;	
       
        
        #50 $finish;      //stoprunning 
	end
//Sub-modules	
	mux4_1 m1(
	.d0(d0),
	.d1(d1),
	.d2(d2),
	.d3(d3),
	.sel(sel),
	.mux_out(mux_out)
	);

	
  initial begin
    $dumpfile("out.vcd");
    // This will dump all signal, which may not be useful
    //$dumpvars;
    // dumping only this module
    //$dumpvars(1, testbench);
    // dumping only these variable
    // the first number (level) is actually useless
    $dumpvars(0, testbench);
end  
    
endmodule
相关推荐
数字芯片实验室1 小时前
怎么定义芯片上的异步时钟?
单片机·嵌入式硬件·fpga开发
unicrom_深圳市由你创科技2 小时前
基于ARM+DSP+FPGA异构计算架构的高速ADC采集卡定制方案
arm开发·fpga开发
北京青翼科技4 小时前
高速采集卡丨AD 采集丨 多通道数据采集卡丨高速数据采集系统丨青翼科技FMC 子卡
图像处理·人工智能·fpga开发·信号处理·智能硬件
北京青翼科技15 小时前
PCIe接口-高速模拟采集—高性能计算卡-青翼科技高品质军工级数据采集板-打造专业工业核心板
图像处理·人工智能·fpga开发·信号处理·智能硬件
dadaobusi1 天前
verilog重音符号
fpga开发
s09071361 天前
Xilinx FPGA ISERDES 使用详细介绍
fpga开发·xilinx·ddr·iserdes
虹科智能自动化1 天前
虹科分享 | SocTek IP Cores:FPGA高端网络与时间同步解决方案
fpga开发·ip核·tsn时间敏感网络
秋风战士1 天前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
FPGA小迷弟1 天前
基于FPGA实现HDMI接口,选型/核心技术
学习·fpga开发·verilog·fpga·modelsim
szxinmai主板定制专家2 天前
基于 PC 的控制技术+ethercat+linux实时系统,助力追踪标签规模化生产,支持国产化
arm开发·人工智能·嵌入式硬件·yolo·fpga开发