-"[VHDL ModelSim] ModelSim과 FSM

O

OvErFlO

Guest
상태입니다 만약 내가 ModelSim FSM의 상태와 함께 볼 수 :

아키텍처

유형 state_t (st0, st1, ST2 st3)입니다;

신호 상태 : state_f;

?

내 신호의 유형은 어떻게, 내 포트 엔티티를 쓸 수 있나요???

감사합니다

 
"상태"그냥 신호입니다.그래서 ModelSim에서 신호를 목록에서 추가할 수 있으며 시뮬레이션을하는 동안의 행동을 볼 수있습니다.(내가 거기에 귀하의 게시물에 synthax 오류 - 신호 상태 : state_t; 것 같구나 "- 안 state_f)

 
난 그것을 찾을 수없습니다 ..합성을 변경하기 때문에 변수 안 같은 중요한 가치를 포함 ...또 다른 방법은 뭐죠?

감사합니다

 
ModelSim 시뮬레이션 도구로, 합성입니다.사용자 정의 사용 - 기능적인 시뮬레이션.또한 게시물의 기회를 맞는 시뮬레이션 존재 (기반. vho 파일, 예를 들면).하지만 합성 후, "상태"신호를 사용할 수없습니다.

경우에만 기능을 시뮬레이션을 사용하여 다음 state_t 컴파일 후 신호가 목록에 존재해야합니다.모든 신호 시뮬레이션 변수의 conyrast ()에서 사용할 수있습니다.

추신 : 가능한 경우, 여기를 귀하의 코드를 첨부해 주시기 바랍니다.

 
만약 내가 시뮬레이션 기능을 사용하여, 내가 CONV_INTEGER 카운터 std_logic_vector 내 정수로 변환하는 데 사용하는 문제가 생겼다 ...어떻게하면)이 문제 (정수 변수를 떠나 해결할 수 있습니까?어떤 라이브러리를 수입해야합니까?

내 프로젝트 전체 CONV_INTEGER 중 하나입니다 ...

ModelSim 날이 오류를 줄 :
# ** 경고 :이 'U'가 |의 'X'| '승'| 'Z부터 '|'-' 피연산자의 연산의 결과가'X '를 (말이지)가 될것이다.
# 일시 : 622,200 ps의 반복 : 1 인스턴스 : / chx_cu_tb / UUT

 
std_logic_vector 전환 정수에 문제가 있습니까?
이 코드를 사용해보십시오 :

코드 :FUNCTION to_vector (입력, num_bits : 정수) 귀환 std_logic_vector IS

VARIABLE 결과 : std_logic_vector (num_bits - 1 DOWNTO 0);

VARIABLE 무게 : 정수;

VARIABLE 온도 : 정수;

에 BEGIN

중량 : = 2 ** (num_bits - 1);

온도 : = 입력;

에 대한 나도 result'HIGH DOWNTO result'LOW 루프

땜빵 "= 체중이 아니라면

결과는 (i) : = '1 ';

온도 : = 온도 - 무게;

싫다

결과는 (i) : = '0 ';

면 끝;

중량 : = 무게 / 2;

최종 루프;

귀환의 결과;

최종 to_vector;

 
이 코드의 샘플입니다 ....내가 기능성 시뮬레이션 할 문제 :

왜???코드 :라이브러리는 IEEE;

사용 IEEE.STD_LOGIC_1164.ALL;

사용 IEEE.STD_LOGIC_ARITH.ALL;

사용 IEEE.STD_LOGIC_UNSIGNED.ALL;엔티티 buffer_fifo_32bit입니다

포트 (

CLK : std_logic에;

세 계 최 초의 : std_logic에;put_data : std_logic에;

get_data : std_logic에;

빈 : inout std_logic;

전체 : inout std_logic;data_in : std_logic_vector (0 31)에서;

data_out : 아웃 std_logic_vector (0 31));최종 buffer_fifo_32bit;buffer_fifo_32bit의 아키텍처 arch_32bit입니다구성 요소 ram_dualport입니다

포트 (CLK : std_logic에;우리 : std_logic에;

data_in : std_logic_vector (0 31)에서;

W_add : std_logic_vector (7 downto 0);R_add : std_logic_vector (7 downto 0);

data_out : 아웃 std_logic_vector (0 31));

마지막 구성 요소;신호 addr_out : std_logic_vector (7 downto 0) : = "00000000";

신호 addr_in : std_logic_vector (7 downto 0) : = "00000000";

신호 nelementi : std_logic_vector (7 downto 0) : = "00000000";

우리는 신호 : std_logic;시작함께 nelementi 선택

비어 "= '1 '할 때"00000000 ",

'0 때 '다른 사람;함께 nelementi 선택

전체 "= '1 '할 때"11111111 ",

'0 때 '다른 사람;buffer_u1 : 프로세스 (CLK, 세 계 최 초의, addr_in, addr_out, nelementi, get_data, put_data)

변수 v_addr_in, v_addr_out, v_nelementi : std_logic_vector (7 downto 0);

시작

만약 (세 계 최 초의 = '1 ') 다음

v_addr_in : = (기타 = "'0 ');

v_addr_out : = (기타 = "'0 ');

v_nelementi : = (기타 = "'0 ');

addr_in "= (기타 ="'0 ');

addr_out "= (기타 ="'0 ');

nelementi "= (기타 ="'0 ');elsif (rising_edge (CLK)) 다음

만약 (put_data = '1 '전체 = '0') 다음

v_addr_in : = v_addr_in "00000001";

v_nelementi : = v_nelementi "00000001";

그 밖의

v_addr_in : = v_addr_in;

최종면;만약 (get_data = '1 '그리고 비어 = '0') 다음

v_addr_out : = v_addr_out "00000001";

v_nelementi : = v_nelementi - "00000001";

그 밖의

v_addr_out : = v_addr_out;

최종면;addr_in "= v_addr_in;

addr_out "= v_addr_out;

nelementi "= v_nelementi;

최종면;최종 처리;우리가 "= put_data;

ramdualport : ram_dualport 포트 매핑 (CLK = "CLK, data_in ="data_in, 우리가 = "우리는 W_add ="addr_in, R_add = "addr_out, data_out ="data_out);최종 arch_32bit;------------------- 여기 잘라 ----------------------------- ----------------라이브러리는 IEEE;

사용 IEEE.STD_LOGIC_1164.ALL;

사용 IEEE.STD_LOGIC_ARITH.ALL;

사용 IEEE.STD_LOGIC_UNSIGNED.ALL;엔티티 ram_dualport입니다

포트 (

CLK : std_logic에서, 우리는 std_logic :에;

data_in : std_logic_vector에서 (31 downto 0);

W_add : std_logic_vector (7 downto 0);R_add : std_logic_vector (7 downto 0);

data_out : std_logic_vector (31 downto 0 아웃));

최종 ram_dualport;ram_dualport의 아키텍처 architecture_256x32입니다숫양의 배열 타입 (정수 범위를 "")의 STD_LOGIC_VECTOR (31 downto 0);

신호 ram_256 : 이상의 RAM (0 (2 ** 8));시작ram_dualport : 프로세스 (CLK, R_add)

시작

만약 (rising_edge (CLK)) 다음

만약 (우리 = '1 ') 다음

ram_256 (conv_integer (W_add)) "= data_in;

최종면;

data_out "= ram_256 (conv_integer (R_add));

최종면;최종 처리;최종 architecture_256x32;

 

Welcome to EDABoard.com

Sponsor

Back
Top