반응형

ISE Design Suite 환경에서 Multiplexer 개발하기 위해 다음과 같은 설정을 한다.

 

Multiplexer 의 Verilog source code는 다음과 같다.

 

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    21:22:52 11/01/2022 
// Design Name: 
// Module Name:    multiplexer 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module multiplexer(
	input s0,
	input s1,
	input d0,
	input d1,
	input d2,
	input d3,
	output y
    );
	 
	 assign y = ( ((~s0)&(~s1)&d0) | ((s0)&(~s1)&d1) | ((~s0)&(s1)&d2) |((s0)&(s1)&d3) );


endmodule

 

위의 Source Code를 타이핑 후에 다음과 같은 Setup들을 순차적으로 클릭한다.

 

Simulate Behavitoral Model를 클릭하면, 다음과 같은 화면이 나타난다.

 

다음 그림에서 Objects 항목의 Object Name에서 Input Signal에 팝업 메뉴를 활성화하면 아래와 같은 화면이 나타나는데, 우리는 Force Constant Force Clock의 설정에서 원하는 설정값을 입력하여 원하는 출력을 확인할 수가 있다.

 

 

* AMD XILINK Documentatation Portal에서 각각의 설정에 대해 내용을 확인할 수가 있다.

https://docs.xilinx.com/r/2021.1-English/ug900-vivado-logic-simulation/Force-Clock

 

Force Clock - 2021.1 English

The Force Clock command lets you assign a signal a value that toggles at a specified rate between two states, in the manner of a clock signal, for a specified length of time. When you select the Force Clock option in the Objects window menu, the Force Cloc

docs.xilinx.com

원하는 입력 타이밍을 설정한 후에 우측 상단의 Tool Bar에서 원하는 command 를 클릭하여 출력 상태를 확인할 수가 있다.

 

아래 그림은 s0, s1를 default clock timing에서 s1의 경우,  반주기로 설정하여 (1/2) s0의 1clock period 동안에 2clock가 동작되도록 한 다음에 d0/d1/d2/d3 순으로 Low State에서 s0의 clock 동안에 High State로 toggling 되도록 한후에, s0과 s1의 입력 상태에 따라 d0/d1/d2/d3 의 signal의 상태가 그대로 y의 출력되는 출력 상태를 관찰하였다.

 

즉, [s0s1]=00b=d0, [s0s1]=01b=d1, [s0s1]=10b=d2, [s0s1]=11b=d3 의 logic이 동작되는 것을 확인할 수가 있다. 참고로 dx의 상태가 Low / High state의 값에 관계없이 s0 / s1의 입력 상태에 따라 dx 데이터가 그대로 출력되는 것을 확인할 수가 있다. 

 

반응형

+ Recent posts