古川制御日記

佐賀県武雄市の組み込み開発屋ブログ

XilinxのUCF関連読み物

http://www.xilinx.com/itp/xilinx10/books/docs/timing_constraints_ug/timing_constraints_ug.pdf

電気回路/HDL/Xilinx ISE におけるの制約の与え方 - 武内@筑波大

FPGAの部屋 ”UCFの書き方”の目次

工作モノ通販サイト

Pololu Robotics and Electronics

Aliexpress

OpenBuilds Part Store

Rustの組み込みマクロ一覧

format_args!

env!

option_env!

concat_idents!

concat!

line!

column!

file!

stringify!

include!

include_str!

include_bytes!

module_path!

cfg!

ZYNQ + Vivado HLS入門

www.slideshare.net

Ubuntu CUI login

Ubuntu のログインを CUI に変更する|mattintosh note (跡地)

Vivado 自動化

とあるエンジニアの備忘log: Zynq のビルドプロセスをスクリプト化する

Xilinx Vivadoで上手にバージョン管理する方法 - aster_ismの工作室

ReadSを使って失敗を考慮したread

文字列をIntとして読み出したい場合には、

> read "123" :: Int
123

で良いですが、失敗する場合に面倒。

> read "one-two-three" :: Int
*** Exception: Prelude.read: no parse

文字列をIntとして読み出したい場合に失敗する可能性がある場合には

> let readi = reads :: ReadS Int

とInt読み出しに特化した関数を定義してやれば、

> readi "123"
[(123,"")]

こんなん返ってきます。

Intとしてread出来ない場合には、

> readi "one-two-three"
[]

空リストが返ってきます。

>:m Data.Maybe
> let readi = fmap fst . listToMaybe . reads :: String -> Maybe Int

定義すれば、成功時にJust Int,失敗時にNothingが返ってきます。

> readi "123"
Just 123
> readi "one-two-three"
Nothing

ここ参考にした。

かなりちまちまやってる感じ。
さらさら書けるようになりたい。

補足

> let readi = reads :: ReadS Int

この場合のreadiのシグネチャは、

> :t readi
readi :: ReadS Int

であるので、ぱっと見関数に見えません。
何ですかこれは。
一旦終わり。