2008/10/15

Quartus_map 에서 out_of_memory

out_of_memory 에러 발생시 여길 참조 -->여기

번역해보면 내용은 이렇다.

여기서부터-------------------------------------------------------------------
Quartus II software support for High memory use designs

Large FPGA designs require increasing amounts of memory to process. The following are steps you can take when working with designs that require large amounts of memory, and ways you can increase the memory available for Quartus II software.
큰용량의 FPGA 디자인시에는 프로세스에 필요한 메모리 사용량이 늘어난다. 다음 단계는 큰 메모리 용량을 필요로하는 디자인 작업과 쿼터스에서 메모리 사용량을 증가시키는 방법에 관한 것이다.

Check Memory Requirements

Quartus II software has a readme.txt file that includes the memory requirements for supported devices. It is in in Windows, UNIX, and Linux installations. Altera strongly recommends your computer meet the minimum requirements for memory and swap space. If your computer does not have the recommended amount of memory and swap space available, try compiling the design on another computer that meets the requirements, or upgrade the memory in your computer to meet or exceed the recommendations.
쿼터스 설치 폴더에 있는 리드미 파일에 메모리 필요량에 대한 부분이 있다. 알테라는 메모리와 스왑 공간에 대한 최소 요구사항을 충족하기를 강력히 권고한다. 만일 최소사양이하라면 요구사항을 만족하는 다른 컴에서 컴파일 하거나 업그레이드 해라

Optimize Timing Assignments

It may be possible to optimize your timing assignments so they require less memory to process. Using timegroups(supported in version 4.0 through 5.0 of the Quartus II software) or assignments groups(supported beginning in version 5.1) to combine nodes with common assignments saves memory. You can use this approach instead of making separate timing assignments to many individual modes.

For example, if your design has many multicycle assignments with a value of 2, you can reduce memory use by assigning the source and destination nodes to two groups, then making a single multicycle assignment of 2 between the two groups. The memory savings depends on your particular design and assignments.
일단 로직을 옵티마이즈해서 메모리 사용량을 줄여봐

Expand Available Memory

32-Bit Windows : By default, 32-bit versions of Windows limits processes to 2 Gbytes of memory. If your design requires more than 2 Gbytes of memory, you can edit the boot.ini file to allow up to 3 Gbytes of memory per process. Refer to the following solution for information about how to edit the boot.ini file
32비트 윈도에서는 기본적으로 프로세스당 2기가 메모리 제한이 있으므로 그 이상 메모리를 필요로 한다면 아래처럼 고쳐서 메모리 제한을 3기가로 변경해라.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB

The Quartus II 32-bit Windows executable are large address space aware, and can use up to 3 Gbytes of memory without modification.

64-Bit Windows : Windows XP x64 supports up to 8 terabytes of memory per process. If you run out of memory, install more RAM, or use techniques described above to optimize assignments.
64비트 윈도는 8테라까지 메모리를 지원하니까 모질라면 추가하든가.

UNIX/Linux : Solaris 8 and RedHat enterprise Linux version 3.0 limit 32-bit processes to 4Gbytes of memory by default. RedHat Linux version 8.0 limits 32-bit processes to 3 Gbytes of memory by default. These limits cannot be changed.
어이쿠 리눅스는 버전별로 알아보슈.

Expand Available Memory Over 4Gbytes

If the 32-bit version of Quartus II software still cannot process your design in 3 Gbytes of memory, with optimized timing assignments, use the 64-bit version of the Quartus II software. Using a 64-bit version of the Quartus II software allows you access to more than 4 Gbytes of memory per process and therefore supports designs that require large amount of memory to compile.
However, compiling designs with a 64-bit version of Quartus II can require 50 to 100 percent more memory than the same design compiled with a 32-bit version. For example, if your design requires more than 3 Gbytes of memory with the 32-bit version, you should have at least 6 Gbytes of memory installed for a 64-bit compile.

Depending on whether you use the GUI or command-line executables, you can configure a 64-bit version of the Quartus II software in different ways.
In the GUI, in the Tools menu, choose Options. In the General category, choose Processing and select the appropriate option, as shown in Figure 1. The selections are disabled if you do not run the Quartus II software in a supported 64-bit environment.
For command-line use on Linux and Solaris, executables support the --64bit option to enable the 64-bit version. For command-line use on Windows, use the executables in the bin64 directory. Finally, you can set the QUARTUS_64BIT environment variable to specify 64-bit processing, or unset it to specify 32-bit processing. The environment variable affects both the GUI and command-line executables.
3기가로도 컴파일이 안되면 64비트로 바꿔라.

Submit a Service Request

In some cases, there may be design optimizations or software improvements that are required. Submit a service request through Altera's mySupport site and include your design files so the problem can be reproduced and corrected.
mySupport를 사용하면 우리가 도와줄수도 있다.
여기까지---------------------------------------------------------------------

번역은 발로 했다.
그래서 요약하자면
-->일단 프로세스당 3GB로 메모리 제한을 올리고 해본다음 정 안돼면 64비트 버전을 쓰세요. 아님 좀 최적화 시키든가.

2008/09/10

새로만든 DVI Receiver 보드



TPF401과 DS90C387을 연결해주면 만사 오케이~~

Single LVDS 와 Dual LVDS 모두 지원가능하다.


화질 테스트한다고 1366*768 Single LVDS 패널을 사용해봤다.


난 화질 테스트가 젤 좋아...

이거 돌리는데 필요한 EDID는 물론 copy&paste

Time: 09:29:14
Date: Mon Sep 08, 2008
______________________________________________________________________
______________________________________________________________________
VIEWSONIC CORPORATION
EDID Version # 1, Revision # 3
DDCTest For: PHL 23PF5321
______________________________________________________________________
______________________________________________________________________
128 BYTES OF EDID CODE:
0 1 2 3 4 5 6 7 8 9
________________________________________
0 | 00 FF FF FF FF FF FF 00 41 0C
10 | 50 46 23 05 54 35 00 10 01 03
20 | 80 33 1D 78 0A 28 C1 A4 57 46
30 | 9D 25 12 47 4B 23 08 00 31 D9
40 | 31 19 45 40 61 40 01 01 01 01
50 | 01 01 01 01 0E 1F 56 2A 51 00
60 | 1E 30 15 80 37 00 FC 1E 11 00
70 | 00 18 0E 1F 00 80 51 00 1E 30
80 | 40 80 37 00 FC 1E 11 00 00 30
90 | 00 00 00 FA 00 50 48 4C 20 32
100 | 33 22 57 58 47 41 54 0A 00 00
110 | 00 FC 00 32 33 50 46 35 33 32
120 | 31 0A 20 20 20 20 00 39
______________________________________________________________________
(08-09) ID Manufacturer Name ________________ = PHL
(11-10) Product ID Code _____________________ = 4650(PF)
(12-15) Last 5 Digits of Serial Number ______ = 894698787
(16) Week of Manufacture _________________ = 00
(17) Year of Manufacture _________________ = 2006
(10-17) Complete Serial Number ______________ = PF600894698787
(18) EDID Version Number _________________ = 1
(19) EDID Revision Number ________________ = 3
(20) VIDEO INPUT DEFINITION:
Digital Signal
Non - VESA DFP 1.x Compatible

(21) Maximum Horizontal Image Size ________________ = 510 mm
(22) Maximum Vertical Image Size __________________ = 290 mm
(23) Display Gamma ________________________________ = 2.20
(24) Power Management and Supported Feature(s):
Preferred Timing Mode
Display Type = R/G/B Color
(25-34) CHROMA INFO:
Red X - 0.000 Green X - 0.275 Blue X - 0.145 White X - 0.277
Red Y - 0.342 Green Y - 0.000 Blue Y - 0.070 White Y - 0.293
(35) ESTABLISHED TIMING I:
640 X 480 @ 60Hz (IBM,VGA)
800 X 600 @ 56Hz (VESA)
800 X 600 @ 60Hz (VESA)
(36) ESTABLISHED TIMING II:
1024 X 768 @ 60Hz (VESA)
(37) Manufacturer's Reserved Timing:
None Specified
(38-53) Standard Timing Identification:
640 X 400 @60Hz
640 X 400 @85Hz
800 X 600 @60Hz
1024 X 768 @60Hz
Not Used
Not Used
Not Used
Not Used
______________________________________________________________________
(54-71) Detailed Timing / Descriptor Block 1:
1366x768 Pixel Clock: 79.50 MHz
______________________________________________________________________
Horizontal Image Size: 256 mm Vertical Image Size: 286 mm
Refreshed Mode: Non-Interlaced Normal Display - No Stereo

Horizontal:
Active Time: 1366 pixels Blanking Time: 298 pixels
Sync Offset: 21 pixels Sync Pulse Width: 128 pixels
Border: 0 pixels Frequency: 47.78 KHz

Vertical:
Active Time: 768 lines Blanking Time: 30 lines
Sync Offset: 3 lines Sync Pulse Width: 7 lines
Border: 0 lines Frequency: 59.87 Hz

Digital Separate, Horizontal Polarity (-) Vertical Polarity (-)


______________________________________________________________________
(72-89) Detailed Timing / Descriptor Block 2:
1280x768 Pixel Clock: 79.50 MHz
______________________________________________________________________
Horizontal Image Size: 256 mm Vertical Image Size: 286 mm
Refreshed Mode: Non-Interlaced Stereo

Horizontal:
Active Time: 1280 pixels Blanking Time: 384 pixels
Sync Offset: 64 pixels Sync Pulse Width: 128 pixels
Border: 0 pixels Frequency: 47.78 KHz

Vertical:
Active Time: 768 lines Blanking Time: 30 lines
Sync Offset: 3 lines Sync Pulse Width: 7 lines
Border: 0 lines Frequency: 59.87 Hz

Digital Composite Composite Polarity (-)


______________________________________________________________________
(90-107) Detailed Timing / Descriptor Block 3:

Standard Timing Identifiers:
888 X 666 @68Hz
856 X 535 @92Hz
648 X 405 @111Hz
520 X 390 @83Hz
952 X 714 @67Hz
768 X 576 @80Hz

______________________________________________________________________
(108-125) Detailed Timing / Descriptor Block 4:

Monitor Name:
23PF5321


(126) No Extension EDID Block(s)
(127) CheckSum OK

필립스 모니터에 들어가는거 같은데...
아무렴 어때.

2008/07/31

I2C Slave VHDL

I2C_Slave_VHDL

며칠전에 만든 I2C Slave VHDL.

잡다구리한 일로 바빠서 멀티 커넥션은 아직 테스트를 못했다.

조만간 멀티로 회로를 연결해볼 생각인데 시간이 날려나 몰러...


이거 만들면서 한가지 알게된건
INOUT 포트를 사용할 때는 output enable 시그널로 IN과 OUT을 명확히 분리해줘야 한다는거...
이거 몰라서 엄하게 풀업 저항만 열나게 바꾸는 삽질을 이틀동안 했었다.
여기에 INOUT 포트 구현 예제가 있다.
어찌나 친절한지...

또 한가지 알게된 꼼수로
SCL 클럭을 SCL_pos와 SCL_neg 두개의 시그널로 전달해서 상승/하강 엣지에 대한 프로세스를 구현했다. 아직 개초보라서 이런 꼼수가 아니면 ACK 출력을 만들수가 없었다.

SPI보다 속도도 훨씬 느린 주제에 구현하기는 드럽게 어렵다.
아 열받어...

2008/07/21

XC3S200-4VQ100C Module PCB


이번에 새로 뜬 XC3S200 Module PCB

이건 뒷면



수납 완료...



전원을 넣어봤다.


안터지드라...ㅋㅋㅋ
다운로드도 문제 없고...
한방에 종료.

모듈PCB 아래 TP가 잔뜩 박힌건 동작 확인용 테스트 보드다.
전원 입력과 IO 출력(클럭을 받아서 각 IO핀의 출력을 반전 시킨다) 파형을 확인할려고 만들었다.

추가로 5개 더 수납 중인데
이젠 날 프로그래머로 봐주는 사람은 아무도 없을껄...


이걸로 FPGA만 3종류를 다뤄본 셈이군.
다음은 머가 될지 기대 만빵~~

2008/07/17

EDID

아 모르는게 너무 많구만...

Extended Display Identification Data는 호스트와 디바이스간의 정보 전달에 사용되는 128/256byte 데이터 덩어리다. EDID 1.3버전이 주로 쓰이는거 같고, 2.0버전은 256바이트라는구만.
자세한 내용은 여기

"raw EDID"로 검색하면 다양한 소스를 구할 수 있다.




그럼 LTM190M2-L31(1440*900) 구동을 위한 EDID를 만들어 보자꾸나.
일단 EDID 데이터를 모아야지.

내가 쓰는 모니터

왼쪽은 싱크마스터 1280*1024, 오른쪽은 PCBANK 1920*1200

이놈들 EDID 값은
싱크마스터
0x 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------------------------------------------------
00 | 00 FF FF FF FF FF FF 00 4C 2D DD 01 36 31 36 4E
10 | 09 10 01 03 80 22 1B 78 2A AA A5 A6 54 54 99 26
20 | 14 50 54 BF EF 80 81 80 81 40 71 4F 01 01 01 01
30 | 01 01 01 01 01 01 30 2A 00 98 51 00 2A 40 30 70
40 | 13 00 52 0E 11 00 00 1E 00 00 00 FD 00 38 4B 1E
50 | 51 0E 00 0A 20 20 20 20 20 20 00 00 00 FC 00 53
60 | 79 6E 63 4D 61 73 74 65 72 0A 20 20 00 00 00 FF
70 | 00 48 56 47 4C 33 30 32 32 33 37 0A 20 20 00 CA

PCBANK
0x 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------------------------------------------------
00 | 00 FF FF FF FF FF FF 00 05 E4 01 00 01 00 00 00
10 | 01 0F 01 03 80 50 2D 78 2A EE 91 A3 54 4C 99 26
20 | 0F 50 54 A7 0B 00 A9 40 61 40 81 C0 81 81 45 41
30 | 31 41 71 41 D1 C1 58 1B 00 BA 50 00 1C 30 30 20
40 | 36 00 81 91 21 00 00 18 28 3C 80 B4 70 B0 16 40
50 | 30 20 36 00 81 91 21 00 00 1A 08 39 80 00 71 38
60 | 26 40 30 20 36 00 81 91 21 00 00 18 00 00 00 FF
70 | 00 0A 20 20 20 20 20 20 20 20 20 20 20 20 00 D4

머 이렇다.

해상도가 다르니까 이걸 그대로 쓸 순 없다.
아 어떡하지...

물론 총알같은 스피드로 검색
검색어는 "raw EDID 1440 900"

첫번째 검색결과에 1440*900 EDID 데이터가 나온다.
이런 훌륭한...
---------------------------------------------------------------------------

Monitor
Windows description......... CMO Monitor
Manufacturer description.... CMC 19AW
Manufacturer................ CMO
————————————————————————————
Plug and Play ID............ CMO2198
Serial number............... 0
EDID data source............ I2C bus (real-time)
————————————————————————————
Manufacture date............ 2007, ISO week 25
EDID revision............... 1.3
Display type and signal..... Analog 0.700,0.000 (0.7V p-p)
Sync input support.......... Separate
Screen size................. 410 x 260 mm (~20")
Power management............ Active off/sleep

Color characteristics
Display gamma............... 2.20
Red chromaticity............ Rx 0.642 - Ry 0.348
Green chromaticity.......... Gx 0.288 - Gy 0.601
Blue chromaticity........... Bx 0.143 - By 0.072
White point (default)....... Wx 0.313 - Wy 0.329

Timing characteristics
VESA GTF support............ Not supported
Horizontal scan range....... 30-82kHz
Vertical scan range......... 56-76Hz
Video bandwidth............. 140MHz
Extension blocks............ n/a
Timing recommendation #1.... 1440x900 at 60Hz
Modeline................ "1440x900" 106.500 1440 1520 1672 1904 900 903 909 934 -hsync +vsync

Standard timings supported
640 x 480 at 60Hz - IBM VGA
640 x 480 at 67Hz - Mac II
640 x 480 at 72Hz - VESA
640 x 480 at 75Hz - VESA
720 x 400 at 70Hz - IBM VGA
800 x 600 at 56Hz - VESA
800 x 600 at 60Hz - VESA
800 x 600 at 72Hz - VESA
800 x 600 at 75Hz - VESA
832 x 624 at 75Hz - Mac II
1024 x 768 at 60Hz - VESA
1024 x 768 at 70Hz - VESA
1024 x 768 at 75Hz - VESA
1152 x 864 at 75Hz - VESA
1280 x 960 at 60Hz - VESA
1280 x 1024 at 60Hz - VESA
1280 x 1024 at 75Hz - VESA
1440 x 900 at 60Hz - CMO
1440 x 1440 at 60Hz - VESA

Raw EDID base
00: 00 FF FF FF FF FF FF 00 0D AF 98 21 01 01 01 01
10: 19 11 01 03 68 29 1A 78 2E 4F A5 A4 59 49 99 24
20: 12 50 54 BF EF 00 81 80 81 40 71 4F 95 00 01 01
30: 01 01 01 01 01 01 9A 29 A0 D0 51 84 22 30 50 98
40: 36 00 98 FF 10 00 00 1C 00 00 00 FD 00 38 4C 1E
50: 52 0E 00 0A 20 20 20 20 20 20 00 00 00 FF 00 30
60: 0A 20 20 20 20 20 20 20 20 20 20 20 00 00 00 FC
70: 00 43 4D 43 20 31 39 41 57 0A 20 20 20 20 00 7C

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

CMO 1440*900 패널을 사용한 모니터에 들어가는거 같은데

이걸 써보자.

.

..

...

썅 안돼......


Peonix EDID Designer로 EDID 데이터를 확인해보니

Video Input Definition이 아날로그로 잡혀있다.

일단 Digital로 바꿔보자.


.

..

...

썅 또 안돼......


걍 VESA 홈페이지 가서 EDIDguideV1이란 문서를 읽어봤다.

다 좋은데 젤 끝에 Checksum은 머냐.....

This byte is programmed such that a one-byte checksum of the entire 128-byte EDID equals 00h. If the recorded checksum does not equal the calculated checksum then the checksum is invalid.

127바이트를 다 더한 다음 2의 보수면 된다는건가???

아 놔...바꿔본다.


.

..

...

된다......


해상도 외에 패널 스펙에 차이가 있을텐데...화질이 나쁘진 않어...



이건 EDID 데이터가 들어가는 I2C EEPROM.

ATmega128에서 I2C 인터페이스로 EDID 데이터를 writing 해준다.


흠 120Hz 구동 패널의 EDID도 함 디끼봐야것는걸...

물론 나중에

2008/07/16

PLL???



위에서 부터 순서대로 50MHz, 100MHz, 10MHz, 180MHz
50MHz 입력으로 100,10,180 MHz를 만들어 낸다.

워메 이런게 있었네...이제 오실레이터 구하러 안돌아댕겨도 되것네.

왜 이좋은걸 이제 알았을꼬.


사이클론3에 내장된 PLL을 구동하기위해 megafunction의 altpll을 사용했다.
megafunction 첨 사용해봤는데, IC 사면 딸려오는 C library 같다고나 할까...어째뜬 첨 써보는데
잘 돌아가니까 기분은 조아.

altpll_reconfig도 있는데
재컴파일 없이 외부 데이터 입력으로 PLL을 재구성 하도록 만들어 놓은거 같다.

문서를 읽어보면 자세히 알겠지만.....
난 소중하니까 필요하면 읽어보기로 한다.
그럼 이만.

2008/07/03

Test VHDL for Memory blocks In Cyclone III 세번째

영상 데이터를 64 line buffer에 저장한 후 출력하면 제일 마지막 64라인이 패널의 꼭대기에 올라가버린다. 이걸 똑바로 맞출려면 HSYNC와 VSYNC 신호를 조정하면 될꺼라고 생각했는데 HSYNC와 VSYNC는 패널 구동에 아무런 영향을 주지 않는다. ㅠㅠ 젝힐
몇일동안 ODCK, HSYNC, VSYNC, DE 신호를 측정하고 이리저리 주물러봤는데

결론은
DE 신호를 어찌 좀 주물러봐야 패널에 출력되는 영상을 64라인씩 밀어 올릴수 있다고 생각된다.

그러니까

이렇게 DE 신호를 입력 받아서 뒤로 밀어버리면 된다 이거지...

끝없는 삽질 끝에 드디어 완성했다.

test_VHDL


출력물도

2008/06/21

Test VHDL for Memory blocks In Cyclone III 두번째

고작 2% 쓰는 걸로는 성이 차지 않아서 100%에 도전해봤다.

3,981,312 bit를 모조리 다 먹어 치워버리가써.

...
...
...
...

3,981,312 bit / 8 = 497,664 byte
이므로 이 사이즈로 이중 배열을 선언해서 컴파일을 하면...

에러가 난다.
Analysis & Synthesis는 OK. 메모리 사용량이 100%라고 나온다.

근데 Fitter에서 error.
Error: Selected device has 432 RAM location(s) of type M9K. However, the current design needs more than 432 to successfully fit

시발... 백프로 사용량인데 먼 초과...

일단 원인을 생각해보면
1. 계산 미스
2. 배열 첨자
3. 내가 바보거나
4. 윈도의 심각한 오류?
5. 날 엿먹이려는 빅브라더의 음모?


1번과 2번은 아님
계산은 정확했고 배열 첨자도 확인했다.
그럼 문제가 멈니...

Cyclone III handbook의 메모리 블럭 챕터에는
EP3C120의 경우 432개의 M9K 블럭이 있고, 각 블럭은 8,192 메모리 비트를 가진다(패리티 포함하면 9,216 bit)
라고 나온다.

다시 계산해보면
432 * 8192 bit / 8 = 442,368 byte

수정해서 컴파일하면 89%라고 나온다.


답은 3번이고 100% 다 먹어치울순 없었다.

442,368 byte로 1280*1024 해상도의 영상을 64라인씩 메모리 블럭에 저장 후 출력 시키는 test VHDL을 작성해서 돌려봤다.
testVHDL

이건 결과물


64라인씩 영상이 아래로 밀렸다.



그래 이제 함 맞춰보자.

2008/06/17

Test VHDL for Memory blocks In Cyclone III

EP3C120F484에는 3,981,312 bit의 메모리 블럭이 있다는데
앞으로 쓸일 많을거 같으니 함 테스트 해봄.

test VHDL
걍 올리면 들여쓰기가 개판이라서...

test VHDL은
1280*1024 해상도의 DVI 신호를 TFP401A를 통해 RGB 24bit로 받은 후 메모리에 저장하고, 저장된 데이터를 읽어서 DS90C387로 보내주는 역할을 한다.

설명하고 보니 간단한데 금,토,일,월,화 끄윽...5일동안 삽질한 결과로구나...



Flow Summary에서 사용된 메모리 비트를 확인할 수 있다.


이건 결과물


운이 좋으면 스케일러 기능을 메모리 블럭 만으로 만들수도 있...
안돼면 마는거고...

2008/06/13

2008/06/11

EP3C120F484 Test PCB

테스트 중....





여전히 BGA 수납...




떨리는 마음으로 ...

크핫 인식 된다아아아아



이건 전원부.
전원부만 해도 수정할 부분이 2군데나 된다.

전원 스위치 한번 멋들어 지는구나하~~



1차 테스트는 목표 달성.
- Programming Serial Configuration Device In-System Using the JTAG 회로 테스트.
- 전원부 회로 테스트(12V 입력, 5V/3.3V/2.5V/1.2V 출력)

2008/06/09

Configuration Data Decompression

싸이클론 III 에서는 컨피규레이션 데이터를 압축해서 공간/시간상 이점을 얻을 수 있다. 다 되는건 아니고 AS와 PS에서만 가능하다고 한다.
압축을 활성화 하는 두가지 방법이 있는데
1. 컴파일러 세팅에서 설정
2. 컴파일된 파일을 변환(sof -> pof)
하는 두가지 방법이라고 한다.

FPGA가 케스케이드 연결된 경우 선택적으로 압축과 비압축을 설정할 수 있다고 한다.
근데 왜???
굳이 머할라고???
그런지는 아직 모르겠네효.

2008/06/04

EP3C120F484 Configuration Scheme


Programming Serial Configuration Devices In-System using the JTAG Interface

요약하면
FPGA에 JTAG와 Active Serial Memory Interface를 연결해주는 로직(Serial Flash Loader Design)을 다운로드해서 JTAG로 AS configuration을 동작시킨다.
라고 해석이 되는데...

회로도로 그려봤다.

2008/06/01

XC3S250E Configuration Schematic

PWM Generator에 사용된 Configuration Scheme 과 Schematic.




Master Serial 로 인식에 문제 없음.
Good job baby^^

2008/05/12

PWM Generator

VHDL로 SPI를 구현했다.



이건 뒷면


아 SPI Slave라고 해야지.

다음은 멀 해볼까...

2008/04/03

FPAA가 아날로그의 미래에 활력을 불어넣을 것

조지아텍의 연구자들은 아날로그 회로의 설계와 시뮬레이션을 더욱 쉽게 함으로써 엔지니어들이 자신들의 제품에 더 낮은 전력의 회로를 채용할 수 있게 하면서도 아날로그의 이상을 더 발전시켜 나갈 수 있기를 희망한다. 조지아텍의 연구자들은 자신들의 라지스케일 필드 프로그래머블 아날로그 어레이(FPAA)가 FPGA가 DSP의 발전을 불러온 것과 동일한 방식으로 아날로그 발전의 밑바탕이 될 가능성을 가지고 있다고 믿고 있다.
이 칩들의 현재 버전은 생물학적 유기체에 의해 이루어지는 신경 신호 프로세싱을 시뮬레이팅하는 것과 같은 가장 까다로운 전문가 어플리케이션 이외에는 어디에도 들어갈 것 같지 않다. 그럼에도 불구하고 이것들은 새로운 칩을 제작하지 않고도 시스템을 빠르고 쉽게 설계하고, 프로토타입을 만들며, 테스트 할 수 있게 해준다.
게다가 FPAA 기술은 넓은 범위의 스킬이 적은 사용자들이 아날로그 신호 프로세싱 커뮤니티에서 개발한 복잡한 저전력 기법들을 시도할 수 있게 해준다고 조지아텍의 교수인 Paul Hasler씨는 말했다. "세계에는 대략 3,000명의 아날로그 엔지니어가 있다고 한다"고 FPAA 기술 어플리케이션에 집중해온 Hasler씨는 말했다. "이를 DSP 분야에서 일하는 이들 같은 시스템 설계자의 수와 비교해보라. 시스템 설계자의 수는 아무리 보수적으로 잡아도 백만명은 넘는다."

FPAA가 엔지니어들의 작은 일부에게 아날로그 기술을 이용하기 시작하도록 독려하더라도 이것은 큰 차이를 만들 것이다. "목표는 이러한 접근 방식들을 주류 엔지니어링에 편입시키는 것"이라면서 Hasler씨는 "강력한 교육 인프라를 제공함으로써 그러한 과정은 시작되고 있다. 이것은 이미 풀뿌리 레벨에서 일어나고 있다"고 말했다.
예일대의 조교수 Eugenio Culurciello씨는 이 FPAA가 FPGA 및 디지털 회로와 비슷한 방식으로 프로그래머블 아날로그 블록들의 집적을 발전시킬 것이라고 생각한다. "이것들은 작은 아날로그 회로 어셈블리들의 프로토타입 제작 시간을 단축 시킬 많은 잠재력을 가지고 있으며, 라지 스케일 어레이들을 해결할 능력도 갖추어야 한다." 그는 "FPAA가 대부분의 아날로그 어플리케이션들과 통합 장비 기능을 위해 적당한 성능을 제공할 수 있다"고 말했다.

아날로그 회로들이 전통적인 부호 연산에는 이상적이지 않지만 센서에서 들어오는 신호를 처리하는 데에는 많은 장점들이 있다. 우선 A/D 변환 스텝에 필요한 요건이 없다. 이것은 어떤 정보를 보요하고 무엇을 버릴지 임의적으로 정해야 할 필요를 없애준다. 이것은 데이터 분해능과 타이밍 모두에 적용된다. 아날로그 연산에서는 분해능과 연산 시간 사이의 스케일링이 훨씬 좋은 경우가 많다. 이는 각각의 추가적인 비트가 자체 조작을 필요로 하지 않기 때문이다.
이미징 어레이와 같이 센서와 프로세서가 합쳐진 칩에서는 병렬성과 기하학적 무결성을 간직하는 이점도 있다. 무선 신경망과 같은 디바이스에서는 어레이 내의 모든 근접한 상호작용들이 동시에 일어난다. 이는 수집된 전체 이미지가 상대적으로 적은 스템으로 처리될 수 있다는 것을 의미한다. 예를 들어, 아날로그 영역에서 라플라스 변환은 디지털 영역보다 최대 천배는 빠르게 수행될 수 있다는 것을 실험들은 보여주고 있다.
마지막으로, 20년 전 California Institute of Technology에 있었던 Carver Mead씨는 회로들이 디지털 모드에서 동작하도록 강제되지 않는다면 훨씬 낮은 전력에서 신호들을 처리할 수 있다는 것을 보여주었다. 이러한 통찰은 Mead씨가 동작이 디지털이라기 보다는 훨씬 아날로그에 가까운 생물학적 신경 회로의 효율에 주목하면서 왔다. 생물학적 모델에 기반을 둔 고효율 회로가 발전된 신경 형태의 엔지니어링은 이 아이디어를 기반으로 한다.
초당 수백만 번의 승가산 연산에 필요한 전력이 18개월마다 대략 두 배씩 늘어나는 것으로 보는 Gene의 법칙은 유효하다.

2008/02/15

Peanut Butter Manifesto

야후의 메모: 땅콩 버터 성명서

2006년 11월 18일

Yahoo Memo: The 'Peanut Butter Manifesto'
November 18, 2006

출처: Wall Street Journal
번역: Hitchhiker

야후 수석 부사장인 브래드 갈링 하우스은 내부 문서를 통해 야후가 그 자원을 식빵 위의 땅콩 버터처럼 너무 옅게 분산시킨다고 비판하고 있다. 전문은 다음과 같다.

An internal document by Brad Garlinghouse, a Yahoo senior vice president, says Yahoo is spreading its resources too thinly, like peanut butter on a slice of bread. Full text of the document is below.



3년반전에 저는 기쁨 마음으로 야후에 합류했습니다! 기회의 크기는 자산의 크기에 비례했고, 끝내주는 팀이 야후의 재건을 책임지게 되었지요.

Three and half years ago, I enthusiastically joined Yahoo! The magnitude of the opportunity was only matched by the magnitude of the assets. And an amazing team has been responsible for rebuilding Yahoo!


그것은 유익한 경험이었습니다. 저는 회사의 극적인 변화의 일부분이 되는 행운을 잡은 것입니다. 우리의 성공이 그것을 대변해줍니다. 사상 최대의 가입자들, 어느 때보다 충성심 있고, 수익성 있는!

It has been a profound experience. I am fortunate to have been a part of dramatic change for the Company. And our successes speak for themselves. More users than ever, more engaging than ever and more profitable than ever!


저는 뼈속 깊이 야후인입니다! (I proudly bleed purple and yellow everyday! 피가 야후의 상징인 자주빛과 노란색이라는 의미.) 그리고 이곳의 많은 사람들처럼 이 회사를 사랑합니다.
I proudly bleed purple and yellow everyday! And like so many people here, I love this company.

그 러나 모든 게 좋은 것은 아닙니다. 지난 목요일의 뉴욕 타임즈 기사는 전화위복(a blessing in the disguise)이라고 할 수 있습니다. 세부적인 것은 맞지 않지만, 그 결론은 진실을 말하고 있습니다. 그것은 우리가 깨어나서 행동해야 한다는 것입니다. 이 점에 대해서 저와 많은야후의 직원들은 모두 동의합니다. 중요한 사실을 상기시켜준 그 기사에 감사할 따름입니다. 한 사람의 가치를 판단하는 기준은 그가 몇 번이나 넘어졌냐가 아니라, 포기 않지 않고 다시 일어서는 정신과 의지라는 것을 말이죠. 회사도 마찬가지입니다.

But all is not well. Last Thursday's NY Times article was a blessing in the disguise of a painful public flogging. While it lacked accurate details, its conclusions rang true, and thus was a much needed wake up call. But also a call to action. A clear statement with which I, and far too many Yahoo's, agreed. And thankfully a reminder. A reminder that the measure of any person is not in how many times he or she falls down - but rather the spirit and resolve used to get back up. The same is now true of our Company.


이제는 우리가 떨쳐 일어날 때입니다.

It's time for us to get back up.


저 는 믿습니다. 우리 자신의 문제들과 도전들을 받아들여야 한다고. 그리고 결단을 내려야 한다고. 우리에게는 기회가(사실은 초대장이) 있습니다. 우리의 주주들과 월 스트리트에게, 우리의 광고주들과 우리의 협력사들에게, (현재와 미래 모두의) 우리 직원들, 그리고 우리 가입자들에게 강력하고 분명한 의사를 전달할 기회가. 그들은 모두 우리가 스스로의 문제들을 인식하고 이해했다는 신호들을, 그리고 근본적인 변화를 계획하고 있다는 신호들을 간절히 바라고 있습니다. 간단히 말해서 우리의 현재 진로와 속도로는 그런 것들을 이루어낼 수 없습니다. 근시안적인 미봉책으로는 불가능합니다.

I believe we must embrace our problems and challenges and that we must take decisive action. We have the opportunity - in fact the invitation - to send a strong, clear and powerful message to our shareholders and Wall Street, to our advertisers and our partners, to our employees (both current and future), and to our users. They are all begging for a signal that we recognize and understand our problems, and that we are charting a course for fundamental change. Our current course and speed simply will not get us there. Short-term band-aids will not get us there.


이제는 우리가 떨쳐 일어나, 기회를 붙잡아야 합니다.

It's time for us to get back up and seize this invitation.


저 는 회사의 많은 중역들 사이에 우리가 직면한 도전들에 대해 많은 이야기들이 오갔을 거라고 생각합니다. 지금 이 글이 그것을 반복하는 것일지도 모르지만, 우리의 현재 상황에 대한 제가 이해하는 바를 공유하고, 문제보다는 해결책의 일부가 될 어떤 길을 제시하고자 합니다.

I imagine there's much discussion amongst the Company's senior most leadership around the challenges we face. At the risk of being redundant, I wanted to share my take on our current situation and offer a recommended path forward, an attempt to be part of the solution rather than part of the problem.



문제의 인식

Recognizing Our Problems


우리에게는 집중되고, 응집력 있는 비젼이 결여되어 있습니다. 우리는 모든 것을 하고, 모든 것이 되길 원합니다. 모든 사람들을 대상으로 말이죠. 이런 사실을 수년전부터 알고 있었고, 수도 없이 이야기해왔지만, 이것을 근본적으로 해결하기 위한 그 어떤 조치들도 취하지 않았습니다. (수많은 유행에) 뒤 쳐지는 것이 두려웠던 것입니다. 새로운 시도를 통해 적극적으로 상황을 주도하기 보다, 수동적으로 상황에 반응했지요. 우리는 곳간에 흩어진 무수한 곡물들처럼 서로 흩어져서 거의 이야기를 나누지 않았습니다. 그리고 우리가 이야기를 나눌 때면, 초점이 분명한 전략하에서 서로 협력하기 보다는, 주도권과 수많은 전략들과 전술들을 놓고 입씨름하고 다투었을 뿐이죠.

We lack a focused, cohesive vision for our company. We want to do everything and be everything -- to everyone. We've known this for years, talk about it incessantly, but do nothing to fundamentally address it. We are scared to be left out. We are reactive instead of charting an unwavering course. We are separated into silos that far too frequently don't talk to each other. And when we do talk, it isn't to collaborate on a clearly focused strategy, but rather to argue and fight about ownership, strategies and tactics.


계속해서 외부 인사를 영입하는 버릇은 우리의 목표가 무엇이냐에 대한 근본적으로 서로 다른 비젼들을 만들어냈습니다. 하나의 치밀한 전략하에 결집한 경영진들을 만들어내기 보다는 말이죠.

Our inclination and proclivity to repeatedly hire leaders from outside the company results in disparate visions of what winning looks like -- rather than a leadership team rallying around a single cohesive strategy.


저는 우리의 전략이 "온라인 세계에서 계속해서 진화하는 무수한 기회들에 대응하여 땅콩 버터처럼 퍼지는 것"이라고 들었습니다. 그 결과, 우리는 모든 영역에 피상적인 투자를 했고, 그래서 어느 누구도 넘볼 수 없는 전문 분야를 갖지 못했습니다.

I've heard our strategy described as spreading peanut butter across the myriad opportunities that continue to evolve in the online world. The result: a thin layer of investment spread across everything we do and thus we focus on nothing in particular.


저는 땅콩 버터를 싫어합니다. 우리 모두 그래야 합니다.

I hate peanut butter. We all should.

우리는 주인 정신과 책임감을 상실했습니다. 이 글에서 가장 고통스러운 부분은 바로 조직의 여러 기능들이 전반적으로 엄청나게 중첩되어 있다는 사실입니다. 우리는 선의에 의해 탄생했지만, 결과적으로 지나치게 관료화된 조직을 갖고 있습니다. 유사하고 중복된 권한을 가진 직원들이 너무나 많습니다. 이 점이 우리의 속도를 떨어뜨리고, 회사에 불필요한 비용을 발생시킵니다.
We lack clarity of ownership and accountability. The most painful manifestation of this is the massive redundancy that exists throughout the organization. We now operate in an organizational structure -- admittedly created with the best of intentions -- that has become overly bureaucratic. For far too many employees, there is another person with dramatically similar and overlapping responsibilities. This slows us down and burdens the company with unnecessary costs.


같은 문제로, 어느 지점에서 누가 정말로 자신의 제품이나 서비스 혹은 기능의 성공을 책임지고 있습니까? 제품, 마케팅, 엔지니어링, 기업 전략, 재무... 너무 책임자들이 많아서(혹은 자신들이 책임자라고 믿고 있어서), 누가 정말 책임자인지 불분명합니다. 이러한 점이 결정을 억합하고, 지연시킵니다. 위원회나 담합에 의한 결정을 강제하고, 혁신적인 직원들이 틀을 깨는 것을... 고정관념에서 벗어나 생각하는 것을 방해하는 겁니다.

Equally problematic, at what point in the organization does someone really OWN the success of their product or service or feature? Product, marketing, engineering, corporate strategy, financial operations... there are so many people in charge (or believe that they are in charge) that it's not clear if anyone is in charge. This forces decisions to be pushed up - rather than down. It forces decisions by committee or consensus and discourages the innovators from breaking the mold... thinking outside the box.


중견수와 좌익수가 분명한 자기 영역을 갖고 있는 데에는 이유가 있습니다. 공을 동시에 쫓다보면 서로 충돌하거나, 공을 떨어뜨리기 때문입니다. 다른 사람이 공을 잡으려는 것을 알고, 충돌을 피하려고 하다 보면, 공을 쫓는데 소극적이 됩니다. 그리고 그러다가 둘 다 공을 놓치고 말죠.

There's a reason why a centerfielder and a left fielder have clear areas of ownership. Pursuing the same ball repeatedly results in either collisions or dropped balls. Knowing that someone else is pursuing the ball and hoping to avoid that collision - we have become timid in our pursuit. Again, the ball drops.


우리는 결단력이 부족합니다. 앞서 말한 초점과 주인 정신을 상실한 결과, 우리는 결정을 내리지 못하거나, 너무 늦게 결정을 내리게 되었습니다. 분명한 초점을 가진 비젼과 책임감이 없기 때문에, 우리는 결정을 뒷받침해줄 거시적인 안목과 누가 그런 결정을 내려야 하는 가라는 감각도 함께 잃어버렸습니다. 그래서 종종 어렵고 곤란한 결정들 앞에서 우리는 좌절하곤 합니다. 그리고 분석의 노예가 되어 버렸죠.

We lack decisiveness. Combine a lack of focus with unclear ownership, and the result is that decisions are either not made or are made when it is already too late. Without a clear and focused vision, and without complete clarity of ownership, we lack a macro perspective to guide our decisions and visibility into who should make those decisions. We are repeatedly stymied by challenging and hairy decisions. We are held hostage by our analysis paralysis.


우리는 회사의 서로 다른 부서들 사이에 존재하는 경쟁 (혹은 중복) 사업 및 상승 작용과 결별해야 합니다.

We end up with competing (or redundant) initiatives and synergistic opportunities living in the different silos of our company.


  • YME vs. Musicmatch
  • Flickr vs. Photos
  • YMG video vs. Search video
  • Deli.cio.us vs. myweb
  • Messenger와 plug-ins vs. Sidebar 와 widgets
  • Social media vs. 360와 Groups
  • Front page vs. YMG
  • 각 사업부에서 나온 세계 전략 vs. 해외사업부의 세계 전략



우 리는 승리를 위한 열정을 잃어버렸습니다. 너무나 많은 직원들이 해결책의 일부가 될 열정과 헌신을 잃어버렸다고 호소하고 있습니다. 모든 계층의 직원들이 빈둥거리는 게 가능해지는 동안에도, 우리는 아무것도 하지 않고 앉아 있었습니다. 책임감은 어디갔습니까? 더욱이 우리의 보상 체계는 조직의 승리와 부합하지 않습니다. 수년동안 무능력한 자들이 보상받은 방면, 성과가 높은 직원들은 그들의 노고에 합당한 대가를 받지 못했습니다.

We have lost our passion to win. Far too many employees are "phoning" it in, lacking the passion and commitment to be a part of the solution. We sit idly by while -- at all levels -- employees are enabled to "hang around". Where is the accountability? Moreover, our compensation systems don't align to our overall success. Weak performers that have been around for years are rewarded. And many of our top performers aren't adequately recognized for their efforts.


그 결과, 남아야 할 직원들(리더들, 위험을 감수하는 사람들, 혁신가들과 열정을 가진 사람들)은 낙담하고 떠나가 버렸습니다. 불행히도 남기로 한 다수는 우리가 필요한 극적인 변화를 통해 우리를 이끌 수 있는 자들이 아닙니다.

As a result, the employees that we really need to stay (leaders, risk-takers, innovators, passionate) become discouraged and leave. Unfortunately many who opt to stay are not the ones who will lead us through the dramatic change that is needed.



문제 해결

Solving our Problems


우리는 엄청난 자산을 갖고 있습니다. 거의 모든 매체와 통신 회사들이 우리의 위치를 무척이나 시샘하고 있습니다. 우리는 가장 많은 독자들을 갖고 있고, 그들은 우리에게 홀딱 빠져 있으며, 우리의 이름은 인터넷과 동의어입니다.

We have awesome assets. Nearly every media and communications company is painfully jealous of our position. We have the largest audience, they are highly engaged and our brand is synonymous with the Internet.


만약 우리가 떨쳐 일어난다면, 극적인 변화를 받아들인다면, 우리는 승리할 것입니다.

If we get back up, embrace dramatic change, we will win.


저 는 우리에게 오직 한 하나의 길만이 존재한다고 말하려는 것은 아닙니다. 그러나 최소한 저는 그 해결책의 일부가 되고자 하며, 해결책이라고 생각하는 것을 기술할 따름입니다. 저는 우리가 아주 빨리 움직이지 않으면, 저 밑으로 추락할 각오를 해야할 거라고 굳게 믿습니다. 이 계획은 완벽하지 않지만, 아무것도 하지 않는 것보다 훨씬 낳습니다.

I don't pretend there is only one path forward available to us. However, at a minimum, I want to be part of the solution and thus have outlined a plan here that I believe can work. It is my strong belief that we need to act very quickly or risk going further down a slippery slope, The plan here is not perfect; it is, however, FAR better than no action at all.


여기 문제 해결을 위한 세 가지 방안이 있습니다

  1. 비젼에 집중하라
  2. 주인 정신과 책임감을 복원시켜라.
  3. 조직을 근본적으로 개편하라.

There are three pillars to my plan:

1. Focus the vision.

2. Restore accountability and clarity of ownership.

3. Execute a radical reorganization.


1. 비젼에 집중하라

a) 우리는 우리가 무엇이고, 무엇이 아닌가를 분명하고 확실하게 천명할 필요가 있습니다.

b) 우리는 비핵심 사업들을 퇴출시키고(팔아치우고?), 중복된 프로젝트들과 사업들을 제거할 필요가 있습니다.

1. Focus the vision

a) We need to boldly and definitively declare what we are and what we are not.

b) We need to exit (sell?) non core businesses and eliminate duplicative projects and businesses.


부드럽게 퍼진 땅콩 버터가 신중히 다듬어진, 즉 초점을 가진 전략으로 변할 필요가 있다고, 저는 믿습니다.

My belief is that the smoothly spread peanut butter needs to turn into a deliberately sculpted strategy -- that is narrowly focused.


간단히 각 사업부들에게 그들이 무엇을 그만둘 것인가를 결정하라고 요구해서는 안됩니다. 그것은 기존의 중심을 없는 전략을 반복하는 것입니다. 상층부가 단호하게 나아갈 방향을 제시할 필요가 있습니다. 한 번 결정을 내리면, 뒤도 돌아보지 말아야 합니다. 만약 우리가 매체(Media)가 우리의 투자 수익(ROI)을 극대화시킬 거라고 믿는다면, 과감히 다른 영역의 투자를 축소합시다. 우리는 힘든 결정들을 내리고, 그것들에 통일성을 부여하고, 고집스럽게 지켜야 합니다. 단, 일부 사람들(가입자들 / 협력사들 / 직원들)은 그것을 좋아하지 않을 거라는 걸 주의하십시요. 변화는 언제나 힘듭니다.

We can't simply ask each BU to figure out what they should stop doing. The result will continue to be a non-cohesive strategy. The direction needs to come decisively from the top. We need to place our bets and not second guess. If we believe Media will maximize our ROI -- then let's not be bashful about reducing our investment in other areas. We need to make the tough decisions, articulate them and stick with them -- acknowledging that some people (users / partners / employees) will not like it. Change is hard.


2. 주인 정신과 책임감을 복원시켜라.

a) 기존 사업의 담당자들은 현재 우리가 존재하는 시장에서 책임을 져야만 합니다.

b) 우리는 특정 계열의 사업을 총괄 책임지는 직책(야후!의 새로운 초점에 어울리는 제너럴 매니저의 변형)을 신중하게 만들어 내야 합니다.

c) 우리는 우리의 성과와 성과급 체계를 재설계해야 합니다.

2. Restore accountability and clarity of ownership

a) Existing business owners must be held accountable for where we find ourselves tod그ㅡay -- heads must roll,

b) We must thoughtfully create senior roles that have holistic accountability for a particular line of business (a variant of a GM structure that will work with Yahoo!'s new focus)

c) We must redesign our performance and incentive systems.


저 는 용납할 수 없는 결과와 더 용납할 수 없는 리더쉽의 책임을 회피하고 있는 사업부의 경영진들이 너무 많다고 믿습니다. 그들(바로 우리!)은 여기서 언급된 문제들을 너무 자주 일으킵니다. 직원들과 우리의 주주들 둘 다에게 이들 경영진(우리들)에게 책임이 있고, 우리가 변화할 것이라고 알려야 합니다.

I believe there are too many BU leaders who have gotten away with unacceptable results and worse -- unacceptable leadership. Too often they (we!) are the worst offenders of the problems outlined here. We must signal to both the employees and to our shareholders that we will hold these leaders (ourselves) accountable and implement change.


강 력하고 명확한 제너럴 매니져 체계를 구축함으로써, 우리는 그 경영진들에게 권한을 부여할뿐만 아니라, 우두 머리가 여러개인 매트릭스 조직 전체에서 막대한 경상비를 절감할 수 있을 것입니다. 조직의 모든 구성원들에게 누가 결정권을 갖고 있는지, 책임 영역이 어디까지인지 분명해야 합니다. 이러한 위임을 통해서, 책임감은 자연스럽게 증가합니다. 즉, 리더들은 결정을 하고, 회사의 다른 직원들은 그 결정들을 지원하며, 리더들은 그 결정의 결과에 따라 살고 죽습니다.

By building around a strong and unequivocal GM structure, we will not only empower those leaders, we will eliminate significant overhead throughout our multi-headed matrix. It must be very clear to everyone in the organization who is empowered to make a decision and ownership must be transparent. With that empowerment comes increased accountability -- leaders make decisions, the rest of the company supports those decisions, and the leaders ultimately live/die by the results of those decisions.


너무 잦은 보상은 땅콩 버터를 바르는 거나 다름 바 없습니다. 우리는 실적에 기반한 보상에 훨씬 더 공격적일 필요가 있습니다. 이것은 무능력한 자들을 뿌리뽑고, 굶주리고 적극적이며 생산적인 직원들을 보상하는 우리의 능력을 향상시킬 것입니다.

My view is that far too often our compensation and rewards are just spreading more peanut butter. We need to be much more aggressive about performance based compensation. This will only help accelerate our ability to weed out our lowest performers and better reward our hungry, motivated and productive employees.


3. 조직을 근본적으로 개편하라.

a) 현재 사업부 구조는 사라져야 합니다.

b) 우리는 가능한한 권한을 분산시키고, 매트릭스를 제거해야 합니다.

c) 우리는 회사를 약 15~20% 정도 감원해야 합니다.

3. Execute a radical reorganization

a) The current business unit structure must go away.

b) We must dramatically decentralize and eliminate as much of the matrix as possible.

c) We must reduce our headcount by 15-20%.


저 는 우리가 만들어낸 중복된 부서들을 간단히 제거해버려야 하며, 그 첫 단추는 조직 개편이라 굳게 믿습니다. 우리는 더 적은 수의 사람들로도 더 효율적이 될 수 있습니다. 즉, 더 많은 일들을 더욱 신속하게 처리할 수 있습니다. 우리는 새로운 사업부들과 그 경영진들에게 더많은 결정권을 돌려줄 필요가 있습니다. 그러나 작은 변화로는 실현이 불가능합니다. 우리가 승리하기 위해서 어떤 조직이 필요한가 재고해야 할 필요가 있습니다.

I emphatically believe we simply must eliminate the redundancies we have created and the first step in doing this is by restructuring our organization. We can be more efficient with fewer people and we can get more done, more quickly. We need to return more decision making to a new set of business units and their leadership. But we can't achieve this with baby step changes, We need to fundamentally rethink how we organize to win.


어떤 조직이 되어야 하는가에 대한 두 가지 핵심 원칙은 다음과 같습니다;

Independent of specific proposals of what this reorganization should look like, two key principles must be represented:


매트릭스를 날려버려라. 새로운 세대의 제너럴 매니저가 진정한 제너럴 매니저가 될 수 있도록 권한을 부여한다. 제품, 마케팅, 사용자 경험 & 기획, 엔지니어링, 영업과 운영은 모두 소수의 제너럴 매니져에게 보고한다. 누구에게 책임이 있냐에 대한 의심의 여지를 남기지 말라.

Blow up the matrix. Empower a new generation and model of General Managers to be true general managers. Product, marketing, user experience & design, engineering, business development & operations all report into a small number of focused General Managers. Leave no doubt as to where accountability lies.


중복을 제거하라. 서로 경쟁하지 않게 사업부들을 새로 정립하라. 검색은 검색에 집중한다. 사회적 매체는 커뮤니티 및 통신과 하나로 묶는다. 비디오나 사진 등과 경쟁하지 않는다. 그리고 초기 화면(Front Page)은 중립국(Switzerland)이 된다. 이것은 미묘한 작업이 될 것이다. (권한의 분산은 비효율적일 수 있지만, 우리가 적절한 균형을 찾을 수 있을 거라고 믿습니다.)

Kill the redundancies. Align a set of new BU's so that they are not competing against each other. Search focuses on search. Social media aligns with community and communications. No competing owners for Video, Photos, etc. And Front Page becomes Switzerland. This will be a delicate exercise -- decentralization can create inefficiencies, but I believe we can find the right balance.


저는 야후를 사랑합니다. 제가 뼛속까지 야후인이라는 것을 자랑스럽게 생각합니다. 제 뒤통수에 (야후의 앞글자인) Y를 새겼다는 것을 자랑으로 여깁니다.

I love Yahoo! I'm proud to admit that I bleed purple and yellow. I'm proud to admit that I shaved a Y in the back of my head.


제 가 이 글을 쓴 동기는, 앞서 말한 바와 같이, 우리가 엄청난 기회를 앞두고 있다는 있다는 굳은 신념 때문입니다. 저만이 유일한 해답을 갖고 있다는 것은 아니지만, 우리는 이 토론을 계속할 필요가 있습니다; 변화가 필요하며, 지금 당장 필요하다는 것입니다. 우리는 더 강력하고 더 빠른 회사, 즉 더 분명한 비젼과 더 확고한 주인 정신과 더 투명한 책임감을 가진 회사가 될 수 있습니다.

My motivation for this memo is the adamant belief that, as before, we have a tremendous opportunity ahead. I don't pretend that I have the only available answers, but we need to get the discussion going; change is needed and it is needed soon. We can be a stronger and faster company - a company with a clearer vision and clearer ownership and clearer accountability.


우리는 넘어질지도 모르지만, 이것은 마라톤이지 100m 달리기가 아닙니다. 저는 변화가 쉬울 거라는 거짓말을 하지 않겠습니다. 그것은 용기, 신념, 통찰과 막대한 헌신을 필요로 합니다. 저는 그 도전을 정말로 고대하고 있습니다.

We may have fallen down, but the race is a marathon and not a sprint. I don't pretend that this will be easy. It will take courage, conviction, insight and tremendous commitment. I very much look forward to the challenge.


자, 이제 떨쳐 일어납시다.

So let's get back up.


공을 잡으세요.

Catch the balls.


그리고 땅콩 버터는 이제 그만.

And stop eating peanut butter