blueecho's collection

누군가에게 "당신은 무엇을 잘하십니까?"라는 질문을 들었을때 바로 대답할것을 만들어보자~!!
        
분류 전체보기 (267)
NeWs (21)
배움생활 (107)
취미생활 (118)
끄적끄적 (5)
인생설계 (12)
Wish list (4)
연구실생활 지름신 자전거 Fedora 연구실 생활 일본소설 사진 영화감상 솔카당 리눅스
«   2024/05   »
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 31
블로그 이동하였습니다.

 

2001에 해당하는 글 1개
2010.07.09   verilog 2001에서 배럴쉬프터 짜기.... 

  verilog 2001에서 배럴쉬프터 짜기.... | 2010. 7. 9. 18:36 | 배움생활/SoC   

verilog도 버젼이 몇가지가 있죠. 새로운 2001버젼에서 나온 배럴 쉬프터 짜는 부분이 있어서 옮겨봅니다.

기존에 저도 짜던 방식이 그냥 for문 돌리던지 아니면 case문으로 해당 쉬프트 비트수 만큼 옮기는 방법인지라... 이런 방법이 있다는 게 신기하기도 하는군요.

[CODE type=verilog]{y,tmp} = {a,a} << rotate_cnt[/CODE]

방식은 다음과 같습니다. 배럴 쉬프터라는게 원하는 수만큼 쉬프트를 해주는 로직인지라 저처럼 무식하게 하지 않는 이상 보통은 다음과 같이 만들죠

[CODE type=verilog]{y,tmp} = { a[(WIDTH-1)-rotate_cnt:0], a[(WIDTH-1):0], {rotate_cnt(1'b0)} }[/CODE]

이거 줄여놓은게 위에꺼 입니다. 참 쉽죠? (밥로스 선생님의 추억이... -_-)
뭐... 2001새로운 문법이랄꺼야 rotate_cnt(1'b0) 정도인데 이거 그냥 rotate_cnt의 수만큼 1비트짜리 0를 나열해 주는 겁니다.
뭐.. 신호 이름 화서 아시겠지만 y값이 결과값이고 a가 입력 WIDTH가 워드구성 비트수이고, rotate_cnt가 옮길 비트수입니다.
구현 자체는 RSR만 되어있는데 마찬가지로 RSL도 구현할 수 있겠죠. ^^

'배움생활 > SoC' 카테고리의 다른 글

C언어 매크로에서의 팁  (0) 2010.08.09
링커 스크립트  (0) 2010.07.26
infer_mux 지정자  (0) 2010.07.06
H.264의 대항마가 나오네요....  (0) 2010.05.24
모델심 기본 스크립트  (0) 2010.04.12


#1
 
     
- Home
- Guestbook
- Manage - Location
- Tag - Post