[RISCV] Tang nano 9K
알리에서 우연찮게 찾은 키트다. FPGA, 사실 이전에는 들어 보지도 못한 Gowin이라는 대륙 벤더에서 나온 FPGA를 사용한 제품인데, 기본적으로 가성비가 좋음. 이 글쓰면서 알아보니, 래티스반도체 에서 나온분이 2014년에 만든 FPGA벤더이고, 출하량도 생각보다 굉장히 많음. FPGA업계 점유율 1위는 자일링스이고, 2위가 알테라(인텔) ,, 그리고 래티스 , ICE라고 외국애들 보면 취미로 하는 얘들이 래티스의 ICE를 많이 사용하고,, 고윈은 순위권밖이긴하지만, 10위안에 드는 회사로 인듯, 이 고윈 반도체 칩을 사용해서 SiPEED라는 회사가 만들었음, 이 당나노는 업체에서 만든것 외에는 거의 자료가 없음. 그리고 검색하다보니, 이 tang nano의 당은 당나라의 당을 따서 만든듯 하다....
더보기
Rust, 튜플
튜플은 데이터가 쌍으로 있는 구조이다. 이것의 구분은 괄호를 사용하며, ("hello", 4) 이런 형태로 가능하다. 튜플의 경우는 array와는 달라서, 각각의 item이 다른 타입을 가져갈 수 있고, 튜플의 index로는 t.0, t.1과 같이 "." 을 이용해야 하고 python과 같이 t[0], t[1]은 허용되지 않는다. 그리고 인수로 constant만 올수 있다. t.i과 같이 변수는 저자리에 올수 없다. fn main() { let human = ("Knight",true, 2500u32); println!("{:?}", human); println!("{} {} {}", human.0, human.1, human.2); let (name, _, hp) = human; println!("{}..
더보기
Rust, 자료형 Numeric(정수)
Rust는 C와 같은 정적언어이다. 하지만, type inference(이하 타입추론)으로 인해서, 문법자체는 C만큼 strict하지는 않고, compiler가 type을 추측해서, 자동으로 컴파일을 하게 된다. python이나 javascript같은 경우는 완전한 동적언어라, 컴파일 단계에서는 type이 맞는지 틀리는지 검사를 하지 않는다. duck type이라고 해서, 막상 실행될때 이게 맞는지 틀리는지 확인이 가능하기때문에, 이것이 개발 속도는 빠르지만, 이 부분에서 잠재적인 오류가 있을 수도 있고, 이를 막기 위해서는 모든 부분을 검사하는 테스트셋을 가져야지 된다는 의미이다. 동적언어의 장점이자 단점이기도 한데, Rust는 정적언어이기때문에, 이 타입 관련 오류들은 컴파일 시간에 잡아낸다. 그게 ..
더보기