• 전문가 요청 쿠폰 이벤트
*상*
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 21
검색어 입력폼
  • 서울시립대학교 전자전기컴퓨터설계실험2 제03주 Lab02 Post
    Post-lab Report전자전기컴퓨터설계실험Ⅱ3주차. 『HBE-ComboⅡ-SE』board,Lab#02 『Xilinx Spartan3』FPGA chip,『ISE』digital design tool실험 날짜2016. 9. 19학번이름Professor조교Expected ResultsAND Gate ProgrammingTest Bench CodePin Assignment CodeSimulation ResultBehavioral Simulation Result를 확인하면, 100ns마다 Input의 상태가 바뀌며, 두 Input의 상태가 모두 High일 경우, X(Output, Sum of And Gate) X가 High가 되는 것을 알 수 있다. 따라서 Pin 63에 해당하는 Button Switch 1을 두 개 동시에 누를 경우에만 LED 1에 불이 들어올 것이다.Results[실험 1] AND Gate ProgrammingInput A = 0, Input B = 0아무 Button Switch도 누르지 않을 경우, LED 1에 불이 들어오지 않음을 확인할 수 있다.Input A = 1, Input B = 0Input A에 해당하는 Button Switch 1만 누를 경우, LED 1에 불이 들어오지 않는 것을 확인할 수 있다..Input A = 0, Input B = 1Input B에 해당하는 Button Switch 2만 누를 경우, Led 1에 불이 들어오지 않는 것을 확인할 수 있다.Input A = 1, Input B = 1Input A, B에 해당하는 Button Switch 1, 2를 동시에 누를 경우, LED 1에 불이 들어오는 것을 확인할 수 있다. 이로써 AND Gate Programming이 제대로 동작함을 알 수 있다.[실험 2] 1 bit Full-Adder ProgrammingCreate Half-Adder SchematicHalf-Adder SchematicSchematic File을 생성한다.1-bit Full Adder를 설계하기 위한 Half-Adder Symbol을 만들기 위해, Half-Adder Schematic을 그려준다.Half-Adder Symbol위의 Half-Adder Symbol을 사용하여 1-bit Full Adder를 Schematic으로 설계한다.1-bit Full Adder Schematic위의 Half-Adder Symbol을 사용하여 1-bit Full Adder를 Schematic으로 설계한다.Create .ucf File원하는 작동 방식은 다음과 같다. Bus Switch를 내릴 경우 Input은 0, Bus Switch를 올릴 경우 Input을 1로 한다. 총 Input은 3개이므로 Bus Switch 3개를 사용한다. Datasheet에 따르면 Bus Switch 1은 34번 핀, Bus Switch2는 35번 핀, Bus Switch3은 37번 핀을 사용한다.Output이 1일 경우 LED를 On하며, Output이 0일 경우 LED를 Off한다. Datasheet에 따르면 LED 1은 191번 핀, LED 2는 196번 핀을 사용한다.Bus Switch PinLED Pin핀 설정에 따라 다음과 같이 .ucf File을 생성해준 뒤, 최종적으로 다음과 같은 코드를 작성한다.Pin Assignment CodeCompileCompile컴파일을 마치면, 위와 같이 Synthesize, Implement Design, Generate Programming File 옆에 Check 표시가 됨을 확인할 수 있다. 이후, 프로그램을 CPU에 Load시킨 뒤, Main board에서 결과를 확인한다.Result of ProgrammingInput A = 0, Input B = 0, C_in = 0Input A, Input B, C_in에 각각 해당하는 Bus Switch 1, Bus Switch 2, Bus Switch 3를 모두 올리지 않은 경우, Sum과 C_out에 해당하는 LED 1, LED 2 모두 불이 들어오지 않음을 확인할 수 있다.Input A = 0, Input B = 0, C_in = 1C_in에 해당하는 Bus Switch 3만 올린 경우, Sum에 해당하는 LED 1에 불이 들어옴을 확인할 수 있다.Input A = 0, Input B = 1, C_in = 0Input B에 해당하는 Bus Switch 2만 올린 경우, Sum에 해당하는 LED 1에 불이 들어옴을 확인할 수 있다.Input A = 1, Input B = 0, C_in = 0Input A에 해당하는 Bus Switch 1만 올린 경우, Sum에 해당하는 LED 1에 불이 들어옴을 확인할 수 있다.Input A = 0, Input B = 1, C_in = 1Input B, C_in에 해당하는 Bus Switch 2, Bus Switch 3를 올린 경우, C_out에 해당하는 LED 2에 불이 들어옴을 확인할 수 있다.Input A = 1, Input B = 1, C_in = 0Input A, Input B에 해당하는 Bus Switch 1, Bus Switch 2를 올린 경우, C_out에 해당하는 LED 2에 불이 들어옴을 확인할 수 있다.Input A = 1, Input B = 0, C_in = 1Input A, C_in에 해당하는 Bus Switch 1, Bus Switch 3를 올린 경우, C_out에 해당하는 LED 2에 불이 들어옴을 확인할 수 있다.Input A = 1, Input B = 0, C_in = 1Input A, Input B, C_in에 해당하는 Bus Switch 1, Bus Switch 2, Bus Switch 3를 모두 올린 경우, Sum과 C_out에 해당하는 LED 1. LED 2에 불이 들어옴을 확인할 수 있다. 이를 Truth Table과 비교하면 다음과 같다.Truth Table of 1-bit Full AdderInputOutputABC_inC_outSum0***************************************Experiment Result of 1-bit Full AdderInputOutputABC_inC_outSum0***************************************1-bit Full Adder의 Truth Table과 Experiment Result과 동일함에 따라, 1-bit Full Adder의 동작이 정상적임을 확인할 수 있다.Discussion[실험 1] AND Gate ProgrammingPre-Lab과의 비교 결과, AND Gate가 정상 작동함을 확인할 수 있었다.[실험 2] 1-bit Full-Adder ProgrammingTruth Table과의 비교 결과, 1-bit Full-Adder가 정상 작동함을 확인할 수 있었다.ConclusionISE Design Tool을 이용하여 AND Gate 및 1 bit Full-Adder를 설계하여, Combo-Ⅱ SE Board에서 동작을 확인 하였다. 이를 통해 Schematic 설계를 숙달할 수 있었으며, 실험을 통해 Development Tool의 작동 원리와 Programming 흐름에 대해 이해할 수 있었다. 또한 AND Gate와 1-bit Full Adder의 동작을 직접 확인해 볼 수 있었다.처음 Project를 생성할 때, Top-level Source Type을 Schematic으로 설정하였다. 그 후, 새로운 파일을 추가하면 Top-level source의 하위 항목으로 들어가며, 프로젝트가 실행되는 Runtime에는 추가한 하위 Source File들이 실행된다. 위의 Sequence를 이해하면 다음과 같다.위의 첫 번째 줄을 통해 xc3s200 - 4pq208 을 사용함을 알 수 있다. 또한 두 번째 줄을 통해 Polar7이라는 Top-level Source Type이 Schematic인 Project가 생성되어 있고, 그 아래에 Polar04라는 Schematic File을 두 번 사용하나, Instance가 XLXI_13, XLXI_14로 다른 것으로 보아, Polar04 Schematic File이 두 번 사용됨을 알 수 있다. 또한, Polar06라는 Pin Assignment Source Code가 있음을 알 수 있다.Polar7은 Project이기 때문에, 이를 Double-click하면 Project의 흐름을 파악할 수 있는 전체적인 Schematic을 볼 수 있다.하지만 Polar04는 Project의 하위 항목이기 때문에, 이를 Double-click하면 Polar04의Schematic 구조를 확인할 수 있다.위와 같이 Project -> 하위 File로 이어지는 Sequence가 올바르지 않을 경우, Error가 검출될 수 있으며, Project와 관련된 Error가 발생하면 Debugging 과정에서 위의 Sequence가 잘 지켜졌는지 확인한다면 시간을 더 단축할 수 있을 것이다.Reference교안 - Lab#02 『HBE-ComboⅡ-SE』board,Lab#02 『Xilinx Spartan3』FPGA chip,『ISE』digital design tool, 서울시립대학교.Datasheet - HBE-Combo II-SE VHDL과 Verilog HDL을 이용한 디지털 논리 회로 설계-XILINX-090508, 한백전자 기술연구소.
    공학/기술| 2017.09.04| 9페이지| 1,500원| 조회(150)
    미리보기
  • 서울시립대학교 전자전기컴퓨터설계실험2 제11주 Lab10 Pre
    Pre-lab Report전자전기컴퓨터설계실험Ⅱ11주차. Project, Digital Watch Counter.실험 날짜2016. 11.21학번이름Professor조교IntroduceObjectText LCD를 이용해 Digital Watch를 구현하고 Counter의 정상 작동을 확인한다.시/분/초를 표현하고, 시간 조절 기능의 정상 작동을 확인한다.ToolsLaptop - ISE Digital Design Tool (Version - 14.7)HBE-ComboⅡ-SE Board (included - Xilinx Spartan3 FPGA Chip)Pre-Lab실험 방법Digital Watch Up CounterAdd SourceSource Code는 크게 네 부분으로 구성되어 있다.Source Code – Part 11kHz의 internal clock을 분주하여 100Hz의 clock을 만드는 부분이다.만들어진 100Hz clock은 LCD를 setting하거나, count를 up 하는 등 대부분의 always 구문에서 사용된다.Source Code – Part 2Digital watch를 count up 하고, 시간을 setting하는 always 구문이다.본 source code는 크게 calib_flag가 1인지 0인지, 두 가지 경우로 나누어져 있다.calib_flag가 1인 경우, bus switch 1이 on 되었음을 의미하고, 이는 시간을 수정하겠다는 뜻이다. 이 경우 digital watch의 count는 중지되며, 시간을 수정할 수 있다.bus switch 1이 올라간 상태에서 button switch 1을 누를 경우, 시(hour)를 수정할 수 있다. 24시까지 올라가면 자동적으로 00시 00분 00초로 변경된다.bus switch 1이 올라간 상태에서 button switch 2를 누를 경우, 분(minute)을 수정할 수 있다. 60분까지 올라가면 자동적으로 00분으로 변경되며, 1hour가 추가된다.bus switch 1이 올라간 상태에서 button switch 3을 누를 경우, 초(second)를 수정할 수 있다. 60초까지 올라가면 자동적으로 00초로 변경되며, 1minute이 추가된다.bus switch를 내릴 경우, digital watch를 count up하기 위한 initialization을 진행한다.calib_flag가 0인 경우, digital watch가 count up되며, 60초가 되면 1분을 올리고 00초로 초기화되며, 60분이 될 경우 1시간을 올리고 00분으로 초기화한다. 24시가 될 경우 00시 00분 00초로 초기화된다.Source Code – Part 3LCD의 가동을 위한 state를 변경해주는 always 구문이다.LCD를 setting하기 위해 필요한 Delay time이 다르므로, 각각의 cnt 값 또한 다르다.Source Code – Part 4LCD state에 맞는 data를 입력시키는 always 구문이다.현재 한국 시간을 따른다고 가정했기 때문에, Line 1은 ‘SOUTH KOREA’ 문자열을 출력한다.Line 2에는 시간, 분, 초를 24시 기준으로 출력한다.Pin AssignmentPin Assignmentrs와 rw는 코드 간소화를 위해 묶어 사용한다.clk는 1kHz clock을 사용한다.CLCD_E 는 100Hz를 사용한다.CLCD_D0 ~ CLCD_D7은 data[0] ~ data[7]에 대응한다.calib_sec_button은 초를 수정하기 위한 것으로, button switch 3을 할당했다.calib_min_button은 분을 수정하기 위한 것으로, button switch 2를 할당했다.calib_hour_button은 시를 수정하기 위한 것으로, button switch 1을 할당했다.calib_flag는 시간을 수정하기 전 setting mode로 진입하기 위한 것으로, bus switch 1을 할당했다.Behavioral Simulation기본적인 Test Bench Source Code가 생성되었음을 알 수 있다. Simulation 조건에 맞게 Source Code를 수정해준다.Modified Test Bench CodeSimulation of Digital Watch CalibrationSimulation 결과를 확인하면, calib_sec_button이 1이 되면 초에 해당하는 clk_sec_s에 1이 더해지는 것을 확인할 수 있다. 이는 LCD 상에서 1초가 더해짐과 동일하다.Simulation 결과를 확인하면, calib_min_button이 1이 되면 분에 해당하는 clk_minute_s에 1이 더해지는 것을 확인할 수 있다. 이는 LCD 상에서 1분이 더해짐과 동일하다.Simulation 결과를 확인하면, calib_hour_button이 1이 되면 시에 해당하는 clk_hour_s에 1이 더해지는 것을 확인할 수 있다. 이는 LCD 상에서 1시간이 더해짐과 동일하다.따라서 시간을 setting하는 코드는 제대로 작동함을 확인할 수 있다.Simulation of Digital WatchSimulation을 확인하면 초에 해당하는 clk_sec_s가 약 60번 변화하면 clk_minute_s가 1이 증가함을 알 수 있다. 이는 60초가 지나면 1분이 올라감을 뜻한다.Simulation 시간을 길게하여 60분이 지나면 1시간이 올라가는지도 확인하였다. 이는 위의 사진과 거의 동일한 형태를 띄므로, 생략한다.따라서 digital watch가 잘 작동함을 확인할 수 있다.ReferenceDatasheet - HBE-Combo II-SE VHDL과 Verilog HDL을 이용한 디지털 논리 회로 설계-XILINX-090508, 한백전자 기술연구소.
    공학/기술| 2017.09.04| 9페이지| 1,500원| 조회(151)
    미리보기
  • 서울시립대학교 전자전기컴퓨터설계실험2 제12주 Project
    Project Report전자전기컴퓨터설계실험ⅡDigital Watch실험 날짜2016. 12.12학번이름Professor조교BackgroundBits Information of LCDLCD Print를 위한 bits information을 보면, 숫자의 경우 Upper bits는 0011로 동일하며 Lower bits는 0000부터 1bit씩 증가하는 것을 알 수 있다. 이를 이용하면 Digital Watch의 count up을 더 쉽게 programming 할 수 있다.Project Results본 프로젝트에서 구성한 Source code는 크게 네 부분으로 나눌 수 있다.Count upinternal clock을 사용해 시간을 count up한다.Calibration현재 시간을 수정한다.World Clock세계 시간을 보여준다.Alarm설정해놓은 시간이 되면 Piezo buzzer를 통해 알람을 울린다.LCD Print적절한 character를 LCD에 출력한다.Count UpSource CodeSource code of Digital Watch위 소스코드는 count up part와 calibration part가 모두 포함되어 있다.Digital Watch를 count up하는 always문의 clock을 100Hz로 사용했지만, 1kHz clock으로 수정하였다. 임의로 분주한 clock을 다른 always구문 혹은 모듈에서 사용하면 Delay가 생기는 것을 확인하였다. 이는 hardware 특성을 고려한 Delay가 생기기 때문이다. 따라서 software로 분주하지 않은 1kHz internal clock을 사용하였다.1kHz의 internal clock을 사용하므로, count up이 1000과 같을 경우 1초를 올려주는 알고리즘을 실행한다. count up이 999가 아닌 1000인 이유는 count up을 해주는 코드가 if 조건문 바로 앞에 있기 때문이다. 두 줄의 코드를 최대한 가깝게 붙여 digital watch의 정확도를 높였다.1k.Button switch 4을 길게 누를 경우, 두 번째 LED가 켜지고 calib_flag가 1이 되어 시간을 수정하는 mode로 진입한다. 이 경우 digital watch의 count up은 중지되며, 시간을 수정할 수 있다.Calibration mode에 진입한 뒤, button switch 1을 누르면 시(hour)를 수정할 수 있다. 편리함을 더하기 위해 One shot enable로 구현하였다. 24시까지 올라가면 자동적으로 00시 00분 00초로 변경된다.button switch 2를 누를 경우, 분(minute)을 수정할 수 있다. 60분까지 올라가면 자동적으로 00분으로 변경되며, 1hour가 추가된다.button switch 3을 누를 경우, 초(second)를 수정할 수 있다. 60초까지 올라가면 자동적으로 00초로 변경되며, 1minute이 추가된다.다시 Button switch 4를 길게 누를 경우, calib_flag가 0이 되어 Calibration mode에서 탈출하고, 2번째 LED가 꺼진다. 또한 digital watch를 count up하기 위한 initialization을 진행하여, 수정된 시간을 기점으로 count up이 재개된다.Results시작 시간1초 뒤로 수정1분 뒤로 수정1시간 뒤로 수정시간 수정에 대한 알고리즘이 정상적으로 동작하는 것을 확인할 수 있다.World Time & LCD PrintSource code of World ClockCalibration mode가 아닐 때 button switch 1을 1초 이상 누르면 다른 나라의 시간을 알 수 있다. 세계 시간에 대한 알고리즘 구성 방식은 동일하므로 London과 New York의 시간만 추가했다.London은 GTM0으로, 서울과 9시간의 시차가 난다.New York은 GTM-5로, 한국과 14시간의 시차가 난다.위의 코드는 button switch 1을 1초 이상 길게 누를 경우 state를 넘겨주는 코드이다.Source code of LCD Pr기준으로 00시/ 01~14시/ 15~19시/ 20~23시로 나누면, 00시의 경우 일의 자리 시간만 +9의 차이가 난다. 01~14시의 경우 십의 자리 숫자는 +1, 일의 자리 숫자는 -1의 차이가 난다. 15~19시의 경우 십의 자리 숫자는 그대로지만, 일의 자리 숫자만 -5의 차이가 난다. 20~23시의 경우 십의 자리 숫자는 -2, 일의 자리 숫자는 +5의 차이가 난다.New York의 경우 다음과 같은 시간적 특징을 발견할 수 있다.New YorkSouth Korea00시14시01시15시02시16시03시17시04시18시05시19시06시20시07시21시08시22시09시23시10시00시11시01시12시02시13시03시14시04시15시05시16시06시17시07시18시08시19시09시20시10시21시11시22시12시23시13시New York을 기준으로 00시~05시/ 06시~09시/ 10시~23시로 나눌 수 있다. 00시~05시의 경우 십의 자리 숫자는 +1, 일의 자리 숫자는 +4의 차이가 난다. 06시~09시의 경우 십의 자리 숫자는 +2, 일의 자리 숫자는 -6의 차이가 난다. 10시~23시의 경우 십의 자리 숫자는 -1, 일의 자리 숫자는 동일함을 알 수 있다.Time of LondonTime of New YorkLondon은 GTM0로, 한국과 9시간의 시차가 있다. 따라서 한국이 01시 01분 22초일 때, London은 16시 01분 22초다. 따라서 London의 시간이 정상적으로 동작함을 알 수 있다.New York은 GTM-5로, 한국과 14시간의 시차가 있다. 따라서 한국이 01시 01분 28초일 때, New York은 11시 01분 28초이다. 따라서 New York의 시간이 정상적으로 동작함을 알 수 있다.AlarmSource code of AlarmButton Switch 3을 1초 이상 길게 누르면 Alarm을 설정할 수 있다. Alarm은 한국 시간이 LCD에 띄워져 있으며, 현재 시간을 수정하고 있지 않을 때에만 설정할 수 있다시간, 분만 설정할 수 있으며, 기준 시간 및 분은 현재시각을 기준으로 몇 시간 몇 분 뒤에 Alarm을 울릴 것인지다.Alarm Setting - 1분 뒤(If I press button switch 2)Alarm Setting - 1시간 뒤(If I press button switch 1)Alarm을 Setting할 때 ‘분’과 ‘시’를 설정하는 것은 시간을 수정할 때와 동일하다. Button Switch 2를 누를 경우 ‘분’을 추가할 수 있으며, Button Switch 1을 누를 경우 ‘시’를 추가할 수 있다. 한 번 누를 때 마다, 1씩 추가된다.Alarm Setting Mode를 나간 뒤(If I press button switch 3 for 1 second)Alarm 시간을 설정한 경우, 재차 Button Switch 3을 1초 이상 길게 누를 경우, Alarm Set Mode를 벗어날 수 있다. Alarm Setting Mode에서 성공적으로 벗어난 경우, LCD의 ‘SOUTH KOREA’ 문자 옆에 ‘A’ 문자가 사라진 것을 확인할 수 있다.Alarm이 울릴 경우Alarm을 설정한 시간이 되면, Piezo Buzzer에서 낮은 ‘도’ 음이 난다. 또한, LED 4가 켜진다. Alarm을 확인하고 Piezo Buzzer의 동작을 중지시키고 싶을 경우, Button Switch 2와 3을 동시에 누르면 된다.DiscussionDigital Watch분주한 clock을 다른 module 혹은 always 구문에서 사용할 경우 delay가 발생함을 확인하였다. 이를 확실히 입증하기 위해선 combo에서 사용하는 oscillator의 output(hardware상으로 분주된 clock)과 software상으로 분주된 clock의 output을 두 개의 probe로 측정하여 oscillator에서 delay가 발생한다면 기존의 internal clock(system clock을 분주시킨 clock) 또한 delay가 존재한다는 뜻이며, software상맞지 않아 미세한 Delay가 생기는 경우가 있다. 하지만 LCD Print를 위한 Clock과 Count up에 사용하는 Clock이 달라 LCD 상으로 Delay가 발생하더라도 시간의 정확도에 영향을 미치지는 않는다.Calibration of Digital Watchbutton switch를 길게 누르면 시간을 조절하는 mode로 진입하도록 수정하였다. 수정 전과 수정 후 모두 정상적으로 동작함을 확인하였다. Alarm과 World Clock의 정상 동작을 확인하였다.AlarmAlarm을 stopwatch와 비슷한 원리를 사용하는 알고리즘으로 구현하였다.Alarm의 정상 동작을 확인하였다.World ClockWorld Clock의 원리는 흡사하므로 London과 New York만 구성하였다. World Clock의 정상 동작을 확인하였다.For the better project기존에 계획했던 project는 날짜 및 스톱워치도 고려되었으며 Alarm sound로 frequency와 time을 이용한 노래도 추가할 생각이었지만, 예상치 못하게 IOB를 더 이상 추가할 수 없는 에러가 발생하였다.Hardware상으로 감당할 수 있는 source code 용량이 제한되어 있는 것으로 생각된다. 이에 따라 추가적인 기능들을 더 구현하지 못한 것이 아쉽게 느껴진다.Source code의 ‘re-use’와 ‘readable’을 고려하여 각 part를 모두 module instance로 만들 생각이었지만, 본 project는 공동 작업이 아닌 나만 알아볼 수 있는 source code를 짜면 되는 것이며, 각각의 part가 거미줄처럼 얽혀 있어 오히려 module instance를 활용한 ‘re-use’가 번거롭게 느껴졌다. 이에 따라 하나의 module instance를 사용하였다.ConclusionVerilog HDL을 이용하여 Digital Watch가 정상 동작함을 확인하였고, 모든 기능이 정상 동작함을 확인하였다.기본적으로 C language에는 익숙한 상태였연구소.
    공학/기술| 2017.09.04| 16페이지| 3,000원| 조회(223)
    미리보기
  • 서울시립대학교 전자전기컴퓨터설계실험2 제11주 Lab10 Post
    Post-lab Report전자전기컴퓨터설계실험Ⅱ11주차. Project, Digital Watch Counter.실험 날짜2016. 11.21학번이름Professor조교Expected ResultsDigital WatchSimulation of Digital WatchSimulation을 확인하면 초에 해당하는 clk_sec_s가 약 60번 변화하면 clk_minute_s가 1이 증가함을 알 수 있다. 이는 60초가 지나면 1분이 올라감을 뜻한다.Simulation 시간을 길게하여 60분이 지나면 1시간이 올라가는지도 확인하였다. 이는 위의 사진과 거의 동일한 형태를 띄므로, 생략한다.따라서 digital watch가 잘 작동함을 확인할 수 있다.Calibration of Digital WatchSimulation of Digital Watch CalibrationSimulation 결과를 확인하면, calib_sec_button이 1이 되면 초에 해당하는 clk_sec_s에 1이 더해지는 것을 확인할 수 있다. 이는 LCD 상에서 1초가 더해짐과 동일하다.Simulation 결과를 확인하면, calib_min_button이 1이 되면 분에 해당하는 clk_minute_s에 1이 더해지는 것을 확인할 수 있다. 이는 LCD 상에서 1분이 더해짐과 동일하다.Simulation 결과를 확인하면, calib_hour_button이 1이 되면 시에 해당하는 clk_hour_s에 1이 더해지는 것을 확인할 수 있다. 이는 LCD 상에서 1시간이 더해짐과 동일하다.따라서 시간을 setting하는 코드는 제대로 작동함을 확인할 수 있다.ResultsDigital WatchSource Codemodified source code전체적인 source code에서 위의 부분을 제외한 다른 부분은 Pre_lab report와 달라진 점은 없으므로 수정된 부분만 추가한다.Digital Watch를 count up하는 always문의 clock을 100Hz로 사용했지만, 1kHz clock으로 수정하였다. 임의로 분주한 clock을 다른 always구문 혹은 모듈에서 사용하면 Delay가 생기는 것을 확인하였다. Delay 시간이 일정한지 일정하지 않은지는 확인하지 못했지만, 매 clock마다 hardware 특성을 고려한 Delay가 생기기 때문이라고 생각된다.1kHz의 internal clock을 사용하므로, count up이 1000과 같을 경우 1초를 올려주는 알고리즘을 실행한다. 이는 count up을 해주는 코드가 조건문보다 앞에 있기 때문이다. 두 줄의 코드를 최대한 가깝게 붙여 delay를 최소화하였으며, digital watch의 정확도를 높였다.ResultsSimulation of Digital Watch1초마다 Digital Watch의 시간이 올라가는 것을 확인할 수 있다. 60초가 되었을 때 1분이 올라가며, 60분이 되었을 때 1시간이 올라간다.Calibration of Digital WatchSource Codemodified source code기존의 bus switch를 올리면 calib_flag에 1이 입력되어 digital watch의 시간을 수정할 수 있는 코드에서, 위와 같은 switch에 해당하는 button switch를 1초동안 길게 누르면 시간을 수정하는 mode로 진입할 수 있도록 수정하였다.시간 수정이 끝난 다음 button switch를 다시 길게 누르면 일반 count up digital watch mode로 돌아간다.위의 source code를 제외한 source code와 pin assignment를 위한 코드는 Pre_lab report와 동일하므로, 생략하도록 한다.Results시작 시간1초 뒤로 수정1분 뒤로 수정1시간 뒤로 수정시간 수정에 대한 알고리즘이 정상적으로 동작하는 것을 확인할 수 있다.DiscussionDigital WatchPre-Lab의 source code로 실험한 결과, 분주한 clock을 다른 module 혹은 always 구문에서 사용할 경우 delay가 발생함을 확인하였다. 따라서 시간을 count up 하는 알고리즘을 internal clock인 1kHz로 수정하고 실험한 결과, 정상적으로 동작함을 확인하였다.Calibration of Digital Watch기존의 bus switch를 사용하여 시간을 조절하는 mode로 진입하는 알고리즘을 button switch를 길게 누르면 시간을 조절하는 mode로 진입하도록 수정하였다. 수정 전과 수정 후 모두 정상적으로 동작함을 확인하였다.ConclusionVerilog HDL을 이용하여 Digital Watch가 정상 동작함을 확인하였고, Count up과, Calibration Clock 또한 정상 동작함을 확인하였다.ReferenceDatasheet - HBE-Combo II-SE VHDL과 Verilog HDL을 이용한 디지털 논리 회로 설계-XILINX-090508, 한백전자 기술연구소.
    공학/기술| 2017.09.04| 6페이지| 1,500원| 조회(134)
    미리보기
  • 서울시립대학교 전자전기컴퓨터설계실험2 제10주 Lab09 Post
    Post-lab Report전자전기컴퓨터설계실험Ⅱ10주차. Application Design Ⅱ - Text-LCD Control.실험 날짜2016. 11.14학번이름Professor조교Expected Results[응용] Text LCD에 학번 및 이름 표시SimulationData의 값을 datasheet와 비교해보면 학번 및 이름 character와 일치하는 것을 확인할 수 있다.[응용] Text LCD display shiftSimulationLCD Line1, Line2에 문자열 data가 들어간 이후, 주기적으로 display를 shift해주는 register bit가 할당되는 것을 확인할 수 있다.[참고] Display shift register bitsregister bitsLCD display를 shift할 경우, Cursor/Display Shift에서 S/C를 1로, R/L은 left shift의 경우 0, right shift의 경우 1로 두면 된다. 본 실험은 right shift로 진행하였다.Results[응용] Text LCD에 학번 및 이름 표시Source CodeSource CodePin Assignment CodeFunction Set ~ Entry Mode를 설정하는 부분은 Pre-lab Report와 동일하다. 다만, 문자열을 LINE 1 : 2014270139, LINE 2 : Sangmin Lee로 출력되게끔 Data만 변화시켜 주었다.분주하기 위한 clock은 1kHz, reset은 reset switch로 사용한다.rs는 Character LCD의 CLCD_RS를 사용하며, rw는 Character LCD의 CLCD_RW를 사용한다. e는 Character LCD의 CLCD_E를 사용한다.data 0부터 7까지는 CLCD_D0~CLCD_D7을 사용한다.ResultsResultLine 1에는 학번이, Line 2에는 이름이 제대로 출력되는 것을 확인할 수 있다.Timing Simulation Results여러 문자열을 시간 순서대로 표시하는 것이 아니므로, LCD clear에 관한 state는 지우고 실험하였다.Timing Simulation에서는 하드웨어적인 delay가 고려되나, 본 실험에서는 LCD 사용을 위한 최소 시간보다 충분히 큰 시간을 state에 주었으므로, 하드웨어적인 delay 요소는 고려하지 않아도 무방하다. 따라서 Behavioral Simulation과 큰 차이는 없다.따라서 Timing Simulation도 실험의 성공을 뒷받침한다고 볼 수 있다.[응용] Text LCD display shiftSource Code수정된 counter 관련 2개의 always문수정된 data 입력 always문LCD display를 shift하므로, LCD clear는 하지 않는다. 따라서 LCD clear에 관한 state는 제거하고, display shift를 위한 state를 추가하였다. 그에 따라 clock을 100Hz로 분주하는 always문을 제외하고, 총 세 개의 always문이 수정되었다.첫 번째 always문은 100Hz의 clock에 따라 count를 세다가, count가 100이 되면 state를 display shift로 재귀하도록 수정되었다.두 번째 always문은 display shift state에서 count가 100이 넘어갈 경우, count를 초기화하도록 수정되었다.세 번째 always문은 count가 100이 될 경우 display를 오른쪽으로 한 칸 shift하며, count가 100이 아닐 경우, default된 data값이 입력되도록 수정하였다.결론적으로 display shift와 관련된 본 코드의 process는, LCD에 문자열 입력 -> 100Hz, count 100 -> count initialization -> display shift -> 100Hz, count 100 -> count initialization -> display shift 를 반복한다. 100Hz의 주파수로 count 100의 주기로 display가 shift되므로, 1초에 한 번 display가 오른쪽으로 shift된다.위의 source code를 제외한 LCD 출력을 위한 설정을 하는 source code와 pin assignment를 위한 코드는 동일하므로, 생략하도록 한다.Resultst = 2t = 3t = 4t = 5t = 61초에 1칸씩 오른쪽으로 display가 shift 되는 것을 확인할 수 있다.만일 R/L비트를 0으로 바꿀 경우, 왼쪽으로 shift 될 것이다.Timing Simulation ResultsTiming SimulationTiming Simulation에서는 하드웨어적인 delay가 고려되나, 본 실험에서는 LCD 사용을 위한 최소 시간보다 충분히 큰 시간을 state에 주었으므로, 하드웨어적인 delay 요소는 고려하지 않아도 무방하다. 따라서 Behavioral Simulation과 큰 차이는 없다.따라서 Timing Simulation도 실험의 성공을 뒷받침한다고 볼 수 있다.Discussion[응용] Text LCD에 학번 및 이름 표시Pre-Lab과의 비교 결과, 학번과 이름이 정상적으로 나타남을 확인하였다.[응용] Text LCD display shiftPre-Lab과의 비교 결과, 학번과 이름을 띄운 display가 정상적으로 shift됨을 확인하였다.For the better experiment각 문자열에 해당하는 data를 array로 define 해 둔다면, 필요할 때마다 호출하여 readability가 뛰어나고 reusable한 source code를 작성할 수 있을 것이다.LCD를 Display하기 위한 Set 과정은 처음 Initialization 과정에서만 필요하다. 따라서 이 부분을 모듈로 만들어, 한 번만 호출하고 LCD 문자열에 data만 한 개의 always 문으로 넣어준다면 readability를 높이고, reusable한 source code가 될 것이다.ConclusionVerilog HDL을 이용하여 LCD가 정상 작동함을 확인하였고, LCD와 관련된 Register bits를 수정하여 display가 shift 되도록 제어하였다.Reference교안 – Verilog HDL 실습 Lab#09 Application Design Ⅱ Text-LCD Control, 서울시립대학교.Datasheet - HBE-Combo II-SE VHDL과 Verilog HDL을 이용한 디지털 논리 회로 설계-XILINX-090508, 한백전자 기술연구소.
    공학/기술| 2017.09.04| 9페이지| 1,500원| 조회(186)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    0
  • B괜찮아요
    1
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 13일 월요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
2:42 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감