はてなキーワード: VHDLとは
n=1の話をするが組み込みにもちゃんと若い人いるよ。新卒一括採用だからWebみたいに派手じゃないけど。
あと組み込みにも色々あるよ
① CPUにC言語で書く。状態制御とかDI/DOする。割り込みつかってある期間内で処理を終わらせるようにする
② CPUにアセンブラで処理書く。古い製品のCPUはそれでしか書けないとかある。
③ FPGAにVerilog/VHDLで処理書く。①で間に合わない速度が必要なとき。あとA/D変換とか
④ PLCにラダー言語で処理書く。リレーwwwなんだが、何十年も出してる装置とかPLCが中心になっていて今更変えられないので今も需要がある。発注元も昔のやつ参考にするのでPLCで制御することみたいな要求事項がそのまま残ってる。
⑤ 組み込みLinuxに対してC++で処理書く。リアルタイムじゃない。CPU1はこれで、CPU2が①とかある。1と2のデータの受け渡しにFPGA使ったりする
⑥ タッチディスプレイのUIとか。タッチディスプレイの機械売ってるメーカが出してるクソ使いにくいソフトで作る。これで作ると牛丼屋の券売機見たいのができる。
私は3年立たずに逃げたのでもっと他にもあると思う
全体的に、線で結ばれているものが親子関係なのか包含関係なのかただ近い領域のものなのか曖昧なので意味のあるグラフというよりはキーワードを適当に散りばめて近い領域にあるものを線で結んだお気持ちマップに見える
CPUをVHDL,Verilog,System-Verilogで書いたりした時もあった。
USB,HDMI,電池の充電制御,WiFi,自動車など色々やったが、コンピュータが遠くなっていく感じがある。
FPGAでCPUを書いてOSを起動させたとして、自分の普段の仕事環境が良くなるわけではない。
ソフトウェアでは次々と開発環境が良くなっていくし、自分で使いやすいようにカスタマイズもできる。
でもハードはそうではない。MS Officeは動くがメモリが4GBでカクカク。
作ったハードも自分達が使うわけじゃない。例えば100Gイーサ開発してもその恩恵は得られず1Gbpsが関の山だったりする。
Python,Go,R,C++,Rubyくらいになると書けるがどう動いてるかわからなくなってブラックボックス化する。
社会的には正しいのだが、自分が関わったハードと自分が書いたC/C++のコードを上位から呼び出すのはわかるが、
ハードが変わったらブラックボックスになる。ロジアナやオシロで見てわかるレベルであればいいが。
PandasのTime seriesが時間を扱えるのかと思っていると、ピコ秒が扱えない。
これは1例に過ぎないが、Amazonや本屋で新刊が出ると買って勉強し、ライブラリの公式ドキュメントも読んでいくが、仕事に直結しない。
クラウド使ってディープラーニングのやり方は沢山情報はあるが、CPU内蔵GPUでメモリ4GB+FPGAでやる情報なんてない。
毎日仕事ができなくて凹んでます。元増田の2年目が羨ましいです。
研究室では解析アプリケーションを作るのにC,C++,Fortranをいじってました
また趣味でサーバの立ち上げやWeb系のJavascriptやPHP,Pythonなどもいじっていました。
まったく違う。組み込みとWebとアプリケーションで文化が違ったわけです。
ここからはあくまで私の体験ですが…
まず、組み込み系はハード(接続図)を読めないと話になりませんでした。
CPU、FLASH、SRAM、FPGA、CPLD、アナログ回路、バッファ、それらをつなぐバス、電源、接点、コネクタ、スロット、A/D、D/Aなどなど、
これらがどうつながってるか意識しなくてはいけません。SoCとか行っても接続図読めないと意味ありません。
次に、FPGA・CPLDの設計があります。言語はVerilogかVHDLです。Xilinx、Altera、Actel等のデバイスに書き込みます。
PLDって言うのは言語で書けるハードです。似ているようでCPUと違うので設計にはスキルが必要です。
この段階でシミュレーション(modelsim等)をしてもらいます。
次にCPUです。言語はC,アセンブラ、C++です。でもほとんどがCです。デバイスはルネサスのSHとかです。自分はここで見習いをしてます。
CPUに直接入ってくる信号(接点・バス等)もありますが、前述のFPGA・CPLDから入ってくる信号のほうが多いです。
で、アプリケーション・Web系と何が違うかといえば、ものすごい短期間にいろんなことが起こります。
リアルタイム処理っていうのでしょうか。割り込みとか聞いたことありませんか。
要はOSがないので自分でなんでも考えなきゃいけないわけです。
CPUの検証はMISRA-Cや専用のカバレッジテストツールで行います。
接点の調整とかLCDパネルとかメンテナンスのツールだとかがないと装置に指令を出せません。
これらにもCPUが入っているわけなので別にコードを書く必要があります。組み込み系の仕事です。
これは言語でかけるリレー回路です。リレーってのはスイッチです。
スイッチを操作することで接続されている機械を操作(電源の入り切りとか)します。
これもCPU,PLD等とは全く違う方式(ラダー)で書きます。十分組み込みの仕事です。
ユニット試験では通っても、組み合わせ試験で動かないというのは100%あると思います。
試験の仕事じゃないと思われるでしょうが、自分はここも立派な組み込み系の仕事だと思ってます。
などなど一言で組み込み系の仕事といってもいろいろあるわけです。
上の中の2つ3つを仕事に使えるレベルまで持って行くには10年、20年はかかると言われました。
ここで表題の件なのですが、元増田の人は経験8年なので、例えばFPGAを8年やってきてCを書けと言われても大変だと思います。
特にその後にWeb系の仕事(これも一言で表すにはいろいろジャンルがあると思いますが)をされてきたとのことなので
いろいろとあったのだと思います。逆にずーとやっていた分野のことを任せるといいかもしれません。
まずどんなことをやってきたのか聞いてみたほうがいいと思います。
支えてくれる家族または友人がいない場合、社会的な制度が整っていない以上、今の環境を逃げようが結果的には死にたいであるから、さっさと今の辛い環境を受けいれろ
が理解できないからその帰結の理由を教えてほしいといっただけなのですが...論点がずれているようですね?
プログラマーとしてはどうなんだろう。
ぜひ上を
プログラマーとしては彼の著書を二冊ANSI Common Lisp、On Lisp、後半は2回読み直すと考え方が変わると思います
またLispでWebサービスを作る意義は当時はあったのだと思いますが、今ではメタ言語でプログラムを生成することが一般的になって
きておりマクロの有用性、Slimeの素晴しさ、最適化ヒントのための機構が言語に内包されている点以上に特別な認識はしておりません
ただリーダマクロを利用すると構文自体を拡張することが出来るためLispを書く人はすべからく言語設計者としての腕が試されるのだと思います
(といっても私は本物のLispプログラマーではなく初〜中級者の域程度のものと認識しているため上級者以上の方はまた違う見解なのだと思います)
正直なところ、一時期自分もLuaに感動して、Luaで(mod_lua?)Webアプリを書こうとしたときもあったけど、RailsやCake、Nodeのexpressみたいなのでさえ、多くのユーザーが書いている方法の方が同じ悩みにぶつかり、googleすれば誰かがstackoverflowで解決しているので、コピペで取り敢えず乗り切る可能性が高くなる。
が、mod_luaに関してはガチレスしますと、Apache のpre post filter, mod_rewriteの煩雑さ軽減、Access,Auth,UserCheckのpre post、CustomLog置き換えくらいに試作品として個人だったら利用すると思います(プロダクションレベルならば実際利用する前に検証すると思います) mod_luaでもいいですが文章は何が目的かをはっきりさせて書いてください
後半のRails、Cake、Nodeでも同じで、「形にすることが目的」であれば、コピペ出来るものを御自分でえらべばいいのじゃないのでしょうか?なにが主張したいのかよくわかりません
# ゲームなどのアプリケーション内で使う言語はシンプルが一番だ。それはBASICやTclのように、美的には醜いものでも正解になることが多々ある。
# lispを選ぶのは正解だと思う。
TclをVHDLのシミュレーションツールとして数年利用しましたが、美的に醜いものではありません そしてなによりもゲームと一括りにしておりますが近年のゲームプロダクションを「舐めないでください」???Lispを触りもしないのに正解だと思うなども???
そんなことを最近のApple製品やGoogle製品の苛立ちとともに感じ、自分の人生の終焉や世界の終わりに思いを馳せながら今日もコードを書くか、身辺整理をするか、絶望感を眠ることでかわす毎日を送るだろう。
現実ではなく煽り文章だと理解しているつもりなのですが、中身がよくわからず何を伝えたい文章で帰結はなんなのかが大変よくわかりませんでした
酷い会社に就職するとブール演算さえまともに理解していない人たちが、銀行や年金のコードを書いている日本の恐ろしさに驚かされる。
金に困って、私もときどきバイトを探すのだが、バイトで地方銀行のプログラミングとか書いてあるのが普通の日本はちょっとおかしい。
多分、証券会社とかの方がまともなコードを書いているのだと思うが、精神的にはキツい気がして門を叩いたことはない。
もう、年齢的にも限界なんでね。
テクノロジーや数字に対して無知な文章と思えるようなことを主張しているようにしか理解できないことがひっかかります。他人は他人ですし変えることは出来ません。ですが自分の考え方はいくらでも受けとめかたは変えられるのではないでしょうか?
別にPerlでなくても、シェルスクリプト、Cでも構わないけど、所詮CGIだし、正規表現とか文字列に明るいから、打算的な面もあったんだろうと思う。
考えてみれば、あの頃は負荷についてあまり考えてなかったよな。
根本的なコンピュータの仕組みの理解が食い違っている認識なのですが、当時負荷を考えたときスケールアップをしていた理由は、「1台」のマシンと「2台以上」のマシンを管理する方法がまったく別のスキル(コスト)を要求するからです 現在ではフェールオーバだけでなく、冗長化の考え方が広くオープンソースの世界でプロダクションレベルに適用されたためであって、当時から負荷自体については考えている所では考えていました
また所詮CGIという意味では標準入出力さえあればどの言語でも出来るのは事実かと思いますが一方Lispだから打算というのは異なるのではというのは上の文章を読んでいただければ
エッセイのどのことを示唆しているかは不明ですが「成功している理由」を考察していることはあっても(時系列でいう後ろから前への考察)、「こうすれば成功する」という考察(時系列でいう前から後ろへの考察)について伝えてる文章は知りません よろしければその文献情報はどこにあるのでしょうか?
あの頃に成功しなかった人(つまり、私)はもう浮かばれることはないだろうし、今、彼らが言うようにやったとしても、あまり夢がないというか、生きてくのもどうだろうという気がしてならない。
誰も失敗した人の発言には耳を傾けないからね。
人生というのは、確かに一定の年齢を過ぎると選択の幅が狭まるというのは事実ですが「なくなる」というのは嘘です そしてそもそもその歩いてきた道だけは変えることは出来なく、これからの道は落とし穴かもしれませんが90度直角に歩くことさえ出来るものだと思います
また失敗した人の発言に耳を傾けないわけではないと思いますよ?むしろ否定的な感情を表に出しすぎるために難しくなってるのではないでしょうか?
この考察はその通りだと思いますが合理的ではないでしょうか?前回もお伝えしたように株式会社なのであれば株辺りの利益を最大限にすることが目的です また会社というのは民主主義ではなく株主主義です それさえ理解すれば組織の維持=経営者が優先されるのは当然なのではないでしょうか?従いまして「人間的に正しい」の意味を理解していませんが、あなたのいうその「人間的に正しい」と「組織の目的」との間で落とし所をつけ提案することが本来の従業員の仕事に含まれると理解しています。
支えてくれる家族または友人がいない場合、社会的な制度が整っていない以上、今の環境を逃げようが結果的には死にたいであるから、さっさと今の辛い環境を受けいれろ
長々と書きましたが、上の内容を簡潔に聞きたいだけでして、ブール演算やらLuaなどの話は聞いていません ブール演算などは高校生に3時間でも教えれば理解する人はいるでしょう
現在、某国立大で修士課程の2年生でFPGAの研究をやってます。
就職は、東証一部のB to Bの産業計測機器メーカーに決まりました。
こんな私ですが、2年前までは理学部生物学科でピペット片手に植物を育てていました。
はじめは、学部3年の時、多くの生物学科の学生たちと同じように、生物学科で勉強をし怠惰な大学生活を送っていました。
生物系の就職がヤバイと気付いたのは、3年生の夏の合同説明会の時。
「去年には一人いた。化学の人に混じってとても優秀だったよ。」
「生物系は。。。。」
どうも回答が煮え切らない。
電機メーカーでは、あまり良い答えが聞けないし、食品メーカーでは「採用は毎年あるよ。」と言ってくれるのだが
倍率が高いことは話に聞いて良く知っていた。
そもそも、理系向け合同説明会となっていても、
少し広げて情報系と化学系ということが何度も説明会に行くうちに透けて見えてきていた。
文系就職という手もあったのだが、やはり技術職で仕事に就きたかったこともあり
ちょうど、2ちゃんで専攻ロンダ関連のスレッドが出てきていたこともあり、専攻ロンダという方法を知り
もちろん、まったく違う専攻に切り替えるということに対して不安は大きかったが
思い切ってみることにした。
3年の秋から専攻ロンダに比較的、入試科目が少ない独立研究科の大学院を中心に回った。
研究室のホームページからメールを送り、教授にアポを取り見学させてもらう。
JAISTやNAISTは他大生向けへの講義があり、専攻ロンダにやさしいらしい。
院試の問題は大学の購買でしか買うことができない場合が多く、自分の受けた大学もそうであった。
院試の勉強は3年の2月から始めて、6月の受験までに間に合わせた。
その結果、NAIST落ち、JAIST合格、旧帝大の独立研究科(情報系)合格という結果だった。
キャンパスゼミで基礎をおさらいしてマグロウヒル大学演習で応用問題を詰める。
マグロウヒル大学演習シリーズは良書で、勉強したことが無い科目でも読めばわかるようになっている。
専門科目についてであるが、離散数学はマグロウヒル大学演習で勉強する。
あともう一つの専門科目であるが、電気回路や電子回路は等価回路など一人では理解できない点が多く、パスし
そして、合格発表に番号を見つけた。
入学後は、FPGAの研究室に入り、朝から晩までコードと「VHDLによるハードウェア設計入門」の本に
向き合いコードを書く日々が続く。
最初は、学部生よりもプログラミングが分からず苦労するが3か月も必死になるうちに書けるようになってくる。
就職活動では、ハードウェア記述言語やっているというと、バイオの時とは反応が違う。
もちろん、面接では「どうして専門を変えたのか」
と聞かれるのだが、「生物について知るうちにそれを工学的に応用することに興味をもった」
で乗り切る。
不況であったが、エントリーシート20枚、面接7社ほどで内定が出た。
NAISTとか、JAISTとか、九工大の生命体工学とか、専門を最初から教えるシステムがあるらしいし
俺よりも苦労しなくて済むと思う。
もちろん、苦労はするのだが苦労が報われないピペドよりもぜんぜんマシ。
生物系の奴に限らず、数学科とか理論物理やってるやつとか数学センスはすぐれてるだろうし特にお勧めしておく。
不況なんだし、生き残りのために多くの手段を考え
だいたい、セグメンテーションフォルトを起こすような言語は嫌い
Haskelわけわかんないし
Java重苦しいし、いちいちclass Hogehoge { public static void main() { ... } }書くのがめんどくさいし、API多すぎ
オブジェクト指向したくなるような複雑なプログラムは最初から考えない(作れない)
言語が提供するGUIのツールはOSとは別に独自のレイヤー、世界感を持っててとっつきにくい
マルチスレッド、排他処理を扱うようなプログラムは脳味噌がついて行かないので書かない
Ruby、、、そもそもLL言語で大規模でオブジェクト指向なプログラム書きたくない。小規模ならオブジェクト指向要らない。
俺のマシンで実行できないAda/Basic/Fortran/Pascal その他いろいろ
VHDL、Verilog?FPGAやゲートアレイなんて持ってない、持ちたくない(苦手だもん)
HTML、XMLは日本語とタグが入り乱れるので、そのつど日本語入力の切替えが死ぬほど嫌になった。
だから、HTMLとXMLは全部手入力なんて真似は絶対してやらねえ。
Flex(Action Script)はコンパイラがJavaで実装されてて重すぎる。(シェルを使えばまし)
JavaScriptはブラウザごとの挙動の違いを吸収しきれる自身が無いので使わない。
1プログラムにつき、(コメント含めて)250行以上書きたくない
(本文には触ったこともない言語を思い込みで罵倒しているなど、嘘、おおげさ、紛らわしいが多数混入しています。それが全部わかった貴方はプログラミング言語マスターです。)