2012年8月14日火曜日

A sub-pW timer using gate leakage for ul- tra low-power sub-Hz monitoring systems.

sub-pW timer using gate leakage for ul- tra low-power sub-Hz monitoring systems.

・ゲートリークを利用したタイマ。
・ゲートリークを電流源として使用し、キャパシタの電荷を徐々に放出していく。電圧が一定以下になることをコンパレータで検出するとタイムアウト。
・ゲートリークは、サブスレッショルドリークに比べて温度依存性が低い。バイオメディカル用途で、数十度の温度変動を仮定すれば十分実用的。Process ばらつきは事前に補正する。

0.5-V Input Digital Low-Dropout Regulator (LDO) with 98.7%. Current Efficiency in 65 nm CMOS

0.5-V Input Digital Low-Dropout Regulator (LDO) with 98.7%. Current Efficiency in 65 nm CMOS

・conventional LDO は、(出力電圧と参照電圧を比較する)オペアンプと(オペアンプの出力に接続され、出力電圧を制御する) 1 つの Power Transistor から成るが、0.5V 電源ではオペアンプは動作しないし、Power Transistor のゲート制御もできない。
⇒0.5V でもデジタル回路を動作させることはできるので、デジタル的に LDO を構成する。
・オペアンプはコンパレータ、Power Transistor は低電圧で動作する Transistor(=switch) array に置き換えて、0.5V 動作。


ビット線充放電電力を 53%削減する動画像処理応用 2-port SRAM

ビット線充放電電力を 53%削減する動画像処理応用 2-port SRAM。藤原 英弘ら。

2-port SRAM はトランジスタの構成により、"0" を読み出すときに電力を消費し、"1" を読み出す時に電力を消費しない。

なので、複数のデータビットを 1 ワードとし、ワード内に"0" が多ければビットを反転し、"1" が多いときはそのまま書き込む。反転したかどうかをもう一ビット使って覚えておくという構成にすることで消費電力を低減できる。

また、動画像応用では、隣接データの同じビット位置のビット(特に上位ビット)は相関が大きいという性質を使い、同じビット位置の隣接データを集めてきて 1 ワードとすることで、ランダムデータより消費電力を削減できる。

2012年3月18日日曜日

KNOPPIX のカスタマイズ

使用しないであろうパッケージの削除

aptitude purge <package_name>

# purge と remove の違いは、設定ファイルも削除するかしないか


私が使用しないであろうパッケージ

・python
・xpdf
・linux-sound-base
・libreoffice-common
・anthy-common
・cups
・bluez
・java-common
・imagemagick
・ghostscript
・dvd+rw-tools
・mp3

2012年3月10日土曜日

verilog auto

組み合わせ回路
always @(/*AS*/) begin


入出力


module(/*AUTOARG*/) begin



submodule instancename(/*AUTOINST*/)

M-x verilog-auto C-c C-z

2012年3月7日水曜日

キャラクタデバイスのデバイスドライバ例

#include <linux/fs.h>    // file_operations, inode
#include <asm/uaccess.h> // copy_to_user
#include <linux/module.h>
#include <linux/kernel.h>


static int devmajor = 77;
static char devname[] = "logdev";
static char devbuf[] = "this is my message.\n";

static int
logdev_read(struct file *filp, char *buf, size_t count, loff_t *pos)
{
  int copy_len = sizeof(devbuf);

  copy_to_user(buf, devbuf, copy_len);

  return copy_len;
}


static struct file_operations logdev_fops = {
  .read = logdev_read,
};


int
init_module(void)
{
  register_chrdev(devmajor, devname, &logdev_fops);
  printk(KERN_INFO "logdev init\n");

  return 0;
}

void
cleanup_module(void)
{
  unregister_chrdev(devmajor, devname);
  printk(KERN_INFO "logdev clean\n");
}

MODULE_DESCRIPTION( "sample char device driver" );



$ ls -l /dev/logdev
crw-r--r-- 1 root root 77, 0  /dev/logdev

2012年3月4日日曜日

Linux で WPS を使う方法2


STA が Registrar、AP が Enrollee の場合、

■ AP 側 (hostapd)
# cat hostapd.conf
wpa=2
wpa_passphrase=xxxxxxxx
wps_state=1 (not configured)
eap_server=1

# hostapd_cli wps_ap_pin random
35344414 (PIN の生成)
# hostapd_cli wps_ap_pin get
35344414 (同じ PIN が得られる)


■ STA 側
wpa_supplicant 起動後
# wpa_cli wps_reg xx:xx:xx:xx:xx:xx 35344414 new_ssid WPA2PSK CCMP new_passphrase
ただし、xx:xx:xx:xx:xx:xx は AP の MAC アドレス
35344414 は STA Registrar の PIN を入力する。
これで、AP が新しい設定(new_ssid, new_passphrase) で再起動される。

うまくいけば、hostapd.conf は新しい設定に書き換えられている。
# cat hostapd.conf
wps_state=2
ssid=new_ssid
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=new_passphrase
auth_algs=1