2018.02.07 08:31

DE0_CV_QSYS.qsys

 

MultiCore를 테스트 하다보니 .text 데이터가 변경되는 현상이 발생하였습니다. 학습의 깊이가 짧아 그런지 이론상으로 이해도 되지 않았는데 의심되는 쪽인 양쪽 코어가 공유하고 있는 부분 uart_jtag(양쪽에서 printf를 사용하여 데이터를 확인하려는 의도였습니다.)을 한 쪽에서는 사용하지 못하도록 제거하였더니 그러한 현상이 발생하지 않았습니다.

현재 6일째 Aging를 하고 있지만 발생하지 않는 걸로 봐서 크게 이상은 없을 거라 생각되지만 현재는 엔지니어 관점에서의 처리만 하고 있어 실제 필드 테스트를 해봐야 할 것 같습니다.

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.02.01 14:45

Nios II에서 프로그램이 있는 고정 데이터 영역과 변수, Heap, Stack등을 나눔.

(Const 데이터인 rodata를 같이 독립 시키는 부분이 맞는 지는 잘 모르겠습니다.)

 

 

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.02.01 10:53

Source Code를 변경하지 않고 Makefile를 통하여 Define 값을 넣는 방법

 

Makefile부분

# Common arguments for ALT_CFLAGSs
APP_CFLAGS_DEFINED_SYMBOLS :=
APP_CFLAGS_UNDEFINED_SYMBOLS :=
APP_CFLAGS_OPTIMIZATION := -O0
APP_CFLAGS_DEBUG_LEVEL := -g
APP_CFLAGS_WARNINGS := -Wall
APP_CFLAGS_USER_FLAGS := -D__ALTERA_SYSTEMS__ -D__PRODUCT_NAME=200

 

 

Source Code부분

#if defined(__ALTERA_SYSTEMS__)
 printf("%x, %s, Version %x.%x.%02x \r\n", __PRODUCT_NAME,  PRODUCT_PNAME, VERSION_UPPER, VERSION_MIDDLE, VERSION_DOWN);
#endif

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.01.19 23:48
2018.01.16 17:29
Bin2SREC 바이너리 파일을 모토로라 헥사포맷으로 변경하기

 

http://www.s-record.com/

에서 bin2srec를 다운 받은 후

 

윈도우 cmd에서

bin2srec -b 4 -i input.bin -o outfile.srec

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.01.09 15:36

DE0_CV__Nios_MultiCore.z01

DE0_CV__Nios_MultiCore.z02

DE0_CV__Nios_MultiCore.z03

DE0_CV__Nios_MultiCore.z04

DE0_CV__Nios_MultiCore.z05

DE0_CV__Nios_MultiCore.zip

Nios II Multi Core 만들기

 

동영상 -

https://www.youtube.com/watch?v=O54sJjSjq60

 

- 별도의 RAM에 프로그램을 올리고 Shared Ram을 공유하는 경우

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.01.04 15:20

Nios ii 프로세서 추가후

reset slave is not specified. please select the reset slave 에러가 발생하면

추가한 프로세서의 Reset Vector과 Exception Vector 메모리를 변경해주면 됩니다.

 

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.12.11 14:54

edh_ed51004.pdf

설정관련 문서

 

Nios 2에서 elf 파일을 bin 파일로 변환하기

 

1) Nios II Command Shell을 실행합니다.

 

 

 

 

2) elf 파일이 있는 위치로 경로 이동을 합니다.

cd <Path>

 

3) 변환할 파일의 이름을 적고 변환되었을 때 이름을 적습니다.

nios2-elf-objcopy -O binary DE0_CV_SDRAM_Nios_Test2.elf DE0_CV_SDRAM_Nios_Test2.bin

 

 

 

4) 경로에 bin 파일이 생성되었습니다.

 

 

 

 

기타)

Srec 포맷으로 변경시

nios2-elf-objcopy -O srec DE0_CV_SDRAM_Nios_Test2.elf DE0_CV_SDRAM_Nios_Test2.srec

 

Motorola Hex Format(Srec) 포맷의 구조

http://blog.naver.com/PostView.nhn?blogId=daetery&logNo=150037004193

 

 

Hex 값이 아닌 String 값을 확인.

Nios에서는 S2 포맷을 사용

예제)

S2 포맷

데이터 길이 14(20byte)

Address 0x040000

Data 데이터의 형상은 가변

마지막 1바이트는 (14 ~ 00까지 더한 후 Not)

S2 14 040000 140084003A48011004F8BF1016FDBF00 1F..

S2 14 040010 34014000140840083A68000800000000 54..

 

예제)

~(0x14 + 0x04 + 0xF2 + 0x68 + 0x 11) = ~(0x83) = 0x7c

S2 14 04F268 11000000000000000000000000000000 7c..

 

포맷 변경 예제 파일)

MultiCoreGenori.srec

=> 맨뒤에 S2 14 04F268 11000000000000000000000000000000 7c.. 추가

MultiCoreGen.srec

 

 

S2140655A000000000000000000000000000000000f0..

S2140655B000000000000000000000000000000000e0..

S2140655c000000000000000000000000000000000d0..

S2140655d000000000000000000000000000000000c0..

S2140655e000000000000000000000000000000000b0..

S2140655f000000000000000000000000000000000a0..

S214065600000000000000000000000000000000008f..

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.11.13 20:10

samples.zip

 

 

icarus verilog를 사용하여 Aes CTR Test

 

Aes 소스

https://github.com/secworks/aes

Mode 참조

http://www.jidum.com/jidums/view.do?jidumId=614

Test Vector

https://www.monkeybreadsoftware.net/example-encryption-aes-aestestvectors.shtml

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.10.20 18:52

prj_niosii__.z01

prj_niosii__.z02

prj_niosii__.zip

 

 

PLL 설정 부분의 altpll_0_areset_conduit_export를 설정해주어야 동작.

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.10.05 09:38

사용법을 다룬 블로그 http://donny.co.kr/wp/?p=181

 

linux - http://singerhwang.tistory.com/category/Verilog

 

windows - http://bleyer.org/icarus/

 

iverilog-10.1.1-x64_setup.exe

 

환경 변수 -> 시스템 변수 편집에서 PATH 에 아래 경로 추가

C:\iverilog\bin

C:\iverilog\gtkwave\bin

 

 

ledblink.v

 

화면에서 확인

> iverilog ledblink.v

> vvp a.out

 

여러개 할 경우

> iverilog -o test tb_aes.v aes.v aes_core.v aes_decipher_block.v aes_encipher_block.v aes_inv_sbox.v aes_sbox.v aes_key_mem.v

> vvp test

 

timing 확인

>gtkwave

 

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

Verilog AES 테스트  (0) 2017.11.13
PLL 설정 부분  (0) 2017.10.20
Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.09.25 21:23

에러 발생의 원인을 계속 못 찾았습니다.

그러다 아래 사이트에서 이 부분을 확인하였습니다.

Clock이 맞지 않는 경우 --- PLL 설정된 부분을 지우고 입력 Clock로 바로 설정하였더니 이상없이 동작하였습니다.

PLL 부분은 조금 더 공부하여야 할 것 같습니다.

 

https://alteraforum.com/forum/showthread.php?t=35610

 

 

 

 

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

PLL 설정 부분  (0) 2017.10.20
Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
wire와 reg  (0) 2017.05.07
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.09.25 19:38

알테라에서 IP추가후 에러가 발생하는 문제

(Error (12006): Node instance "추가한 아이피 이름" instantiates undefined entity "new_component". Ensure that required library paths are specified correctly, define the specified entity, or change the instantiation. If this entity represents Intel FPGA or third-party IP, generate the synthesis files for the IP.
)

 

Component Editor -> Synthesis Files에서 추가한 *.vhd의 Analyze Synthesis Files를 눌러서 생성해주어야 함.

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
wire와 reg  (0) 2017.05.07
ALTERA 프로젝트 만들기  (0) 2017.05.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.05.11 16:25

A

l

 

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
wire와 reg  (0) 2017.05.07
ALTERA 프로젝트 만들기  (0) 2017.05.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.05.07 07:29

출처 : http://egloos.zum.com/pinge/v/2259784

 

 

처음 Verilog HDL 언어를 접하면서 가장 힘들었던 부분은 역시 wire 와 reg의 구분을 하는것..

wire = "선"

reg = "레지스터" 라고 우선 생각을 한다.

wire 는 실제 wire처럼 단지 어떤 모듈과 모듈을 이어주는 선에 불과하고 reg은 실제 레지스터처럼 어떤 신호에 영향을 받아 바뀌는 값이라고 생각함. 따라서 always문 안에서만 reg 값의 변경이 가능하고 wire값은 그 자체로 변경이 불가능하다. 단지 선을 연결하거나 and나 or등의 모듈로 나온 선을 잇는것만 가능할뿐..

ex ) reg와 wire를 이용한 2x4 Decoder.

2x4 Decoder 의 진리표

 

 

Input

Output

00

0001

01

0010

10

0100

11

1000

 

1) Reg 를 이용한 2x4 Decoder

in 신호를 Register값 변경 신호로 잡아 Reg값에 Decode된 값 입력

module Decoder2x4_byReg(in , out);

   input[1:0] in;

   output[3:0] out;

 

   wire[1:0] in;

   reg[3:0] out;

 

   always @(in)

   begin

           if (in == 2'b00) out <= 4'b0001;

           else if (in == 2'b01) out <= 4'b0010;

           else if (in == 2'b10) out <= 4'b0100;

           else if (in == 2'b11) out <= 4'b1000;

   end

endmodule

 

2) wire를 이용한 2x4 Decoder

Not gate와 And gate를 이용한 단순 연결

module Decoder2x4_byWire(in, out);

   input[1:0] in;

   output[3:0] out;

 

   wire[1:0] in;

   wire[3:0] out;

 

   assign out[0] = ~in[0] & ~in[1];

   assign out[1] =   in[0] & ~in[1];

   assign out[2] = ~in[0] &   in[1];

   assign out[3] =   in[0] &   in[1];

endmodule

--------------------------------------------------

이렇게 구분하는 것이 정확하게 맞다고는 생각하지 않지만 처음 개념 잡을때는 필요한 부분이 있다.

wire 는 선이고, reg 는 값을 저장할 수 있다는 것 말이다.

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
wire와 reg  (0) 2017.05.07
ALTERA 프로젝트 만들기  (0) 2017.05.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.05.06 09:45

 

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
wire와 reg  (0) 2017.05.07
ALTERA 프로젝트 만들기  (0) 2017.05.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요