개소리 왈왈/독서2018. 1. 21. 17:53

머릿말에서 좋은말 한 식물이 잘 자랐다는 글로 시작을 해서 조금 실망스럽다가

전체를 다 읽어 보니 내용은 무난하면서도 괜찮은 듯.

구체적인 예를 들면서 이런 대화는 좋다, 이런 대화는 나쁘다고 해서 이해가 쏙쏙 된다.

물론 그걸 실천하는건 별개? ㅋㅋ


[링크 : https://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788997396740]

Posted by 구차니
embeded/FPGA - ALTERA2018. 1. 20. 23:41

risc-v 라는 오픈소스 프로세서 프로젝트가 있는데

그걸 altera와 xilinx용으로 포팅(?)한 HDL 및 툴체인


[링크 : https://www.alteraforum.com/forum/showthread.php?t=55227]

   [링크 : https://github.com/cliffordwolf/picorv32]

   [링크 : https://github.com/VectorBlox/orca]

Posted by 구차니
Programming/Verilog2018. 1. 20. 14:20

베릴로그 언어적 특성에 대해서 혼동을 하고 있었네..


Gate Level Modeling

- primitives 를 이용한 게이트 레벨 설계방법

- and, or, nand, nor, xor, xnor

- buf, not

- bufif1, bufif0, notif1, notif0 (tri-state)

일종의 변수 처럼 사용하여 인스턴스를 생성, 변수들을 서로 엮어 회로 구성

module and_from_nand(X, Y, F);

input X, Y;

output F;

wire W;

// Two instantiations of the module NAND

nand U1(W, X, Y);

nand U2(F, WW);

endmodule 


Dataflow Modeling 

- assign 키워드 사용

- net에 특정 논리값을 지정함으로서 데이터의 흐름을 통해(routing?) 회로 구성

- 각종 연산자들 사용가능

아래와 같이 wire로 net 끼리 연결하거나, wire로 선언 후 assign을 통해서 연결

wire out = in1 & in2 ;


wire out;

assign out = in1 & in2 ; 


Behavioral Modeling 

- always 키워드 이용

- always 내부의 내용은 시퀀셜 하게 작동. always들 끼리는 병렬로 작동

- alwyas 는 항상 작동하므로, 절차적 언어의 무한반복문과 유사한 개념

- 절차적(always) 에서는 블러킹과 넌블러킹이 존재

(즉, dataflow나 gate level에서는 해당 개념이 존재하지 않음. 이녀석이 혼동의 원인)

- 블러킹 '=' 라인 순서대로 수행

- 넌블러킹 '<=' 넌블러킹 끼리는 동시 수행

- C언어 같은 느낌으로 if, switch-case등을 지원

- for 문은 합성툴에 따라 반복횟수 제한되거나, 지원하지 않음


블러킹과 넌블러킹으로 인해서 경쟁상태 발생이 가능함.

race condition 발생시에는 어떤 값이 있을지 알 수 없으므로 오작동 유발

- always들 끼리 같은 값에 쓰지 않도록 하며

- 써야 한다면 넌 블러킹으로 할당하면 값이 변동되지 않음

// illustration 1 : blocking

always @(posegde clk)

a = b ;

always @(posedge clk)

b = a;


// illustration 2 : nonblocking

always @(posegde clk)

a <= b ;

always @(posedge clk)

b <= a; 

자료 괜찮은거 같은데.. 이거 상위 페이지에서 한번에 받기는 못 찾음..

[링크 : https://cms3.koreatech.ac.kr/sites/yjjang/down/dsys07/01VerilogHDL.pdf]

'Programming > Verilog' 카테고리의 다른 글

verilog module instantiate  (0) 2018.01.26
verliog module 선언  (0) 2018.01.25
verilog Concatenation, Replication operator  (0) 2018.01.19
verilog unary reduction operator와 bitwise operator  (0) 2018.01.19
베릴로그 순차적 구조적  (2) 2018.01.18
Posted by 구차니
embeded/FPGA - ALTERA2018. 1. 20. 08:31

FPGA 에서 <=와 =의 설명을 듣다 보니..

어? 이거 어떻게 튈지 모르는 애니까 랜덤으로 쓰면 좋겠네? 하고

검색해보니 2012년 정도에 나온 논문들이...

큭.... 아쉽다 ㅠㅠ


MD5와 결합해서 랜덤값을 한번더 꼬아주고 그걸 시드로 사용하면 어떨까 생각은 드네


[링크 : https://www.researchgate.net/...Software_Random_Number_Generation_Based_on_Race_Conditions]

'embeded > FPGA - ALTERA' 카테고리의 다른 글

ALTERA 비트스트림 암호화 관련 조사  (0) 2018.01.23
risc-v fpga  (0) 2018.01.20
여러개의 Nios 구동하기  (0) 2018.01.16
de0-nano-soc 와 de10-nano 비교  (0) 2018.01.16
아 몰라 fpga/bitcoin 포기  (0) 2018.01.12
Posted by 구차니

솔찍히 나도 인간이라 내가 편리한대로 법을 지키고 싶긴 한데

그래도 서로의 약속으로 지켜야 한다는 쪽이지만 먼가 갈수록 팍팍해지는 느낌을 지울수가 없다.


프로불편러라고 하면 까이겠지만

프로불편러는 세상을 좋게 바꾸는게 아니라

자기도 모르는 사이에 그거 하나하나가

서로의 뒷목에 칼을 점점 더 가까이 들이대는 행동으로 밖에 안보인다.

[링크 : http://v.media.daum.net/v/20180119122432293]



체고는 발에서 어깨(?) 까지 높이 머리는 아님

[링크 : https://blog.naver.com/eps1231/220089441855]

Posted by 구차니
Programming/Verilog2018. 1. 19. 08:46

베릴로그 프리젠테이션 파일 보다 신기한거 발견


concatenation operator는 말그대로 합체! 하는 연산자 인데

일반적인 프로그래밍 언어라면 불가능하지만

하드웨어 배선으로는 너무나 쉬운 데이터끼리 붙이는 연산자이다.

가장 쉬운 활용예로는 Adder에서 Carry bit


r_VAL_1을 MSB 쪽으로 r_VAL_2를 LSB 쪽으로 붙여서 01111100 으로 만드는 연산자이다.

단, 부족한(?) 선은 0으로 대체 하는 듯

근데.. 이거 몇개 까지 붙일 수 있을지 궁금하네?

reg [3:0]  r_VAL_1 = 4'b0111;

reg [3:0]  r_VAL_2 = 4'b1100;

wire [7:0] w_CAT;


assign w_CAT = {r_VAL_1, r_VAL_2}; 

[링크 : https://www.nandland.com/verilog/examples/example-concatenation-operator.html]


Relication operator는 복제하는 녀석인데

비트 연산으로 이걸 하려면 참 토나오는데,

하드웨어로는 배선을 분기쳐서 이어주면 되니 간편하게 쓸 수 있겠네

문법 자체는 정규표현식 같은 느낌

앞의 숫자 만큼 순서대로 붙인다 011101110111

reg [3:0]  r_VAL_1 = 4'b0111;

{3{r_VAL_1}};


# Replication of 0x7, 3 times is 0x777

[링크 : https://www.nandland.com/verilog/examples/example-replication-operator.html]

'Programming > Verilog' 카테고리의 다른 글

verliog module 선언  (0) 2018.01.25
verilog 모델링 유형  (0) 2018.01.20
verilog unary reduction operator와 bitwise operator  (0) 2018.01.19
베릴로그 순차적 구조적  (2) 2018.01.18
structural vs behavioral verilog  (0) 2018.01.12
Posted by 구차니
Programming/Verilog2018. 1. 19. 07:51

reduction operator는

벡터에 대해서 1개의 bit로 연산을 해준다.

가장 편리한(?) 예제로는 parity 계산

bitwise and를 비트별로 계산할걸 reduction을 쓰면 한번에 끝난다.

근데 bitwise 연산자랑 일항 축약 연산자랑 어떻게 구분하지?


unary reduction operator

reg r_C;

&4'b1101;

r_C = |4'b0010;

[링크 : https://www.nandland.com/verilog/examples/example-reduction-operators.html]


bitwise operator

reg r_A = 1'b1;

reg r_B = 1'b0;

assign w_AND_SCALAR = r_A & r_B;

[링크 : https://www.nandland.com/verilog/examples/example-bitwise-operators.html]



+

아.. 그래서 unary 연산자 였군..

어떻게 보면 포인터와 비슷한 방식으로 단항으로 사용이 되고

항이 두개면 무조건 bitwise로 연산이 되려나?

즉, reduction은 무조건 변환 후 대입 정도만 허용되고

bitwise는 두항을 계산하고 2다른 걸 연속적으로 하는 식이 가능 할 것으로 보인다.


+

https://www.utdallas.edu/~akshay.sridharan/index_files/Page5212.htm

'Programming > Verilog' 카테고리의 다른 글

verilog 모델링 유형  (0) 2018.01.20
verilog Concatenation, Replication operator  (0) 2018.01.19
베릴로그 순차적 구조적  (2) 2018.01.18
structural vs behavioral verilog  (0) 2018.01.12
verilog vector instance  (0) 2018.01.09
Posted by 구차니
Programming/Verilog2018. 1. 18. 20:46

blocking /non-blocking 

= 이냐 <= 이냐 차이인데

대입순서에 따라 최적화 하면 중간 결과가 사라지거나 클럭에 따라 쉬프트로 구현됨


[링크 : http://multilab.jbnu.ac.kr/2915]

[링크 : https://blog.naver.com/mikael2010/130094384689]

[링크 : http://www.sutherland-hdl.com/papers/1996-CUG-presentation_nonblocking_assigns.pdf]




+

여전히 프로그래밍 모델을 확실히 파악한게 아니라

behavioral 이라던가 procedural이라던가 

non-blocking이라던가 blocking이라던가

여러개가 혼재되서 무진장 혼동된다.

'Programming > Verilog' 카테고리의 다른 글

verilog Concatenation, Replication operator  (0) 2018.01.19
verilog unary reduction operator와 bitwise operator  (0) 2018.01.19
structural vs behavioral verilog  (0) 2018.01.12
verilog vector instance  (0) 2018.01.09
verilog always  (0) 2018.01.01
Posted by 구차니

기계가 학습이라는 기반(sub-system)을 인간이 만들어 주었지만

자신의 학습을 통해서 인간과 비교되는 혹은 레벨/차원이 다른 지능을 스스로 얻어내었다면

인간에 있어서 득도와 무엇이 다를까?


인간 역시 스스로 뇌나 눈 손,발 근육을 설계해서 만들어 낸것이 아니지만

스스로 지성체이고 자유의지를 가졌다고 생각을 하는데


물리적인 신체를 만들어 준 것은 인간이라 하더라도

새로운 종으로서 로봇/인공지능이 발현되는 건

인정이야 인정하지 못하냐의 문제를 넘어

종이 창조되고 새로운 종이 이전의 종을 도태시키는 문제로 나아가지 않을까?

(도태시키지 않는다면 동물원이 되겠지)



아무튼 원래 하고싶었던 이야기는

수 많은 데이터들 속에서 스스로 생명력을 가지고 자라나는 지성은 어떻게 봐야 할까?

그걸 과연 인간이 만들었다고 하여 "인공"지능이라고 이름을 붙여야 하는게 옳을까?


인공人工

1 .사람이 하는 일.

2 .사람의 힘으로 자연에 대하여 가공하거나 작용을 하는 일. 

[링크 : http://krdic.naver.com/detail.nhn?docid=30823400]


인공의  

1. artificial

2. man-made 

[링크 : http://endic.naver.com/krenIdiom.nhn?sLn=kr&idiomId=3ef83b2f38b84426b3f22b7c93034af5]

Posted by 구차니

이제 미세먼지 국내발생 어쩌구 소리안나오겠지?

근데 어느순간인가 부터 산성비 이야기가 없네

기본값이 산성비인가?

[링크 : http://v.media.daum.net/v/20180117182801479]


대학생들 등록금도 날려먹고 난리라는데

[링크 : http://v.media.daum.net/v/20180117154242055]


날도 풀리고 한강물 따스해져서 많이들 가즈아!! 안하길..

반토막이 아니라 몇 배 이상 뻥튀기니 이제 거품이 사그라드는게 옳은표현 아닐까?

[링크 : http://v.media.daum.net/v/20180117100358712]

Posted by 구차니