일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 패턴인식
- Google App Engine
- 파이썬
- 갤럭시탭S8울트라
- hopfield network
- 고려대학교
- SSM
- 인공지능
- BAM
- 물걸레로봇청소기추천
- 신경회로망
- 멤버십
- 동아리
- Neural Network
- 삼성소프트웨어멤버십
- 삼성
- 빅데이터
- 하이퍼바이저
- 신경망
- 증강현실
- Bidirectional Associative Memory
- 패턴 인식
- 나르왈프레오
- Python
- 가상화
- NarwalFreo
- Friendship
- 구글 앱 엔진
- 삼성전자 소프트웨어멤버십 SSM
- 물걸레자동세척로봇청소기
- Today
- Total
정보공간_1
[3기 전주 전환규] RAM을 이용한 Function-Simulation 본문
[3기 전주 전환규] RAM을 이용한 Function-Simulation
알 수 없는 사용자 2013. 2. 4. 00:11안녕하세요. 전주멤버십 22-1기 전환규입니다.
지난 시간에는 Verilog를 이용한 5단 파이프라인 설계에 관해서 살펴보았는데요.
디지털 반도체 설계 과정 중 Simulation 과정은 Function, Pre, Post Simulation 단계로 나누어 지는데,
오늘은 UNIX 환경에서 제공되는 시뮬레이션 모델의 RAM을 생성하여 Modelsim을 이용하여
Function-Simulation을 살펴 보도록 하겠습니다.
1. 메모리 생성
1) cshrc File 생성
시뮬레이션 모델의 RAM 라이브러리를 생성하기 위해서는 우선 경로를 설정해야 합니다.
[그림 1] Unix 환경(Solaris)의 Terminal 창
# vi mem.cshrc |
mem은 제가 임의로 정한 파일 명입니다. 경로 및 툴 사진은 보안 관계상 첨부하지 않도록 하겠습니다.
2) 경로 작성
vi 에디터가 열리면 사용자는 다음과 같이 경로를 작성합니다.
setenv memware /tool/sw/db/memware/library_name setenv ARCH '$library_name/getach' set path = ($library_name/$ARCH/bin $path) |
3) 실행
다음과 같이 실행 하시면 됩니다.
# source mentor.cshrc [Simulation Model Tool] # source mem.cshrc # librarygen & |
명령어 중에 source mentor.cshrc는 ModelSim의 경로 및 설정을 자동으로 한 Shell 파일 입니다. librarygen 뒤에 붙은 & 옵션은 터미널 창과 툴을 동시에 사용 할 수 있게 합니다.
4) Memory 생성
저는 32 bit Mux를 4개 사용하는 256 사이즈 메모리를 생성하였습니다. 각 옵션들은 다음과 같이 설정합니다.
- Word Depth : 256 - Bit per Word : 32 - Column Mux : 4 - Operating Condition : [Worst : Library_name] - Simulator : ModelSim [사용할 툴을 선택합니다.] |
위와 같이 설정한 뒤에 저장할 경로를 설정하고 생성하시면 됩니다.
2. Function Simulation
1) ModelSim 실행
위의 과정으로 메모리를 생성하고, 이제 시뮬레이션을 위해 ModelSim을 실행합니다.
# source mentor.cshrc # vsim & |
[그림 2] ModelSim Se 6.2a 실행 화면
그림 2는 UNIX 환경에서 ModelSim을 실행한 화면입니다. 사용 방법은 Windows에서 ModelSim을 사용하는 것과 동일 합니다.
2) Compile
[그림 3] ModelSim을 이용한 Compile
ModelSim에서 다음과 같이 입력하여 컴파일 합니다.
ModelSim> vlib work ModelSim> vmap work ./veri_work ModelSim> vlog -nodebug +define+functional_mode macro_define.v ModelSim> vlog LAB.v ModelSim> tb_LAB.v |
vmap은 work 폴더에 veri_work [RAM Library] 폴더를 맵핑하는 과정입니다. 3번째 줄의 vlog는 functional mode로 macro_define.v [Memry 생성시 시뮬레이션을 위해 생성되는 파일]을 컴파일 하는 과정입니다.
vlog LAB.v는 컴파일할 Verilog 파일입니다.
3) Simulation
이제 시뮬레이션을 하도록 하겠습니다. 다음과 같이 실행 하면 됩니다.
- Workspace - work - tb_LAB [Click Right Button] - Simulate with Converge [Click] - Sim - Workspace - work - tb_LAB [Click Right Button] - Add - Add All Signals to Wave [Click] - Run - All [Click] |
자 그럼 결과를 보도록 하겠습니다.
[그림 4] Simaultion
전체적으로 메모리를 생성하여 Function-Simulation하는 과정을 살펴보았습니다. Verilog 파일을 컴파일 하기 이전에 자신이 생성한 메모리 라이브러리를 Verilog에 적으시고 컴파일 후에 사용 하시면 됩니다. 공정에서 제공되는 RAM을 사용하는 것과 하지 않는 것의 차이는 Chip의 전체 게이트 및 사이즈에 엄청난 차이를 줍니다. 저는 공정에서 제공되는 메모리(RAM 또는 ROM)을 사용하시는 걸 추천합니다.
다음 시간에는 Design-Compiler를 이용하여 Synthesis하는 과정을 살펴보도록 하겠습니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[3기 신촌 윤기백] Hadoop의 이해 2편 - MapReduce의 소개및 이해 (0) | 2013.02.05 |
---|---|
[3기 신촌 윤기백] Hadoop의 이해 1편 - BigData와 HDFS (1) | 2013.02.05 |
[3기 신촌 최기환] JAVA FX 소개 (0) | 2013.01.28 |
[3기 강북 김승현] Linux 2.6 Device Driver 개발환경 구축 (0) | 2013.01.28 |
[3기 강남 백정의] Jquery를 활용한 ajax 활용 및 crossdomain (0) | 2013.01.28 |