1057002 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

緑のボタンを押せ! Press the green button

緑のボタンを押せ! Press the green button

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Category

Keyword Search

▼キーワード検索

Archives

2024.04
2024.03
2024.02
2024.01
2023.12

Comments

 effelpist@ kilovermek.es effelpist &lt;a href=&quot; <small> <a href="http…
 Jun@ Re:「いっちゅう」さんのiEPG用ソフト入れてみた(09/15) TVdeIEPG Ver.1.2.1.0がリンク切れしてい…
 スター@ Re:hauppauge HD PVR 速報(08/25) スタービーチ <small> <a href="http://c…
 ASOBO@ Re:hauppauge HD PVR 速報 ASOBO攻略 <small> <a href="http:/…
 ハッピーメール@ Re:hauppauge HD PVR 速報 ハッピーメール <small> <a href="http:/…

Freepage List

Favorite Blog

まだ登録されていません
2007.08.18
XML
テーマ:電子工作(533)
カテゴリ:電子工作

 WDT(ウォッチドッグタイマ)とクロックジェネレータです。WDTはもともと(私にとっては)どーでもいい部分(だって使うつもりないもん)だし、SLEEP命令も使うつもりはないので(したがって、クロックも止める必要なし)、完全にビヘイビアモデルで実装。
WDTのリトリガブルワンショットは、Verillog-HDLの規格書(IEEE-1364.2001)に類似の例があります。
(う~ん、意外にはかどらないな...)
----
本日の御託
「7人のメタボ侍、内臓脂肪を斬る」
笑えない、というか,ほとんど切ないニュース。労災になるのだろうか?


//
//  Watch Dog Timet
//  (c) 2007 BakaOyaji
// $Id$
//
//  Behavior implementation

`timescale 1ns/1ns

module watchdogtimer(
    input clk_i,
    input reset_i ,
    output reg wdt_o
   
);
    initial begin
        wdt_o = 0 ;
    end // initial

    always begin : monostable
        @( negedge reset_i )
        # 3000 wdt_o = 1'b1 ;
    end // monostable
    always @( posedge reset_i) begin
        disable monostable ;
        wdt_o = 1'b0 ;
    end
endmodule // watchdogtimer(
// EOF watchdogtimer.v

//
//  Clock Generater
//  (c) 2007 BakaOyaji
// $Id$
//
//  Behavior implementation
//  (c) 2007 BakaOyaji
`timescale 1ns/1ns
// 1MHz
`define CYCLE 1000
module clockgen (
    input go_sleep_i,
    input wakeup_a_i ,
    output reg clk_o ,
    output reg wakeup_o
);
    initial begin
        clk_o = 0 ;
        wakeup_o = 1'b0 ;
        forever begin
            begin : run
                forever begin
                    clk_o = 1'b1 ;
                    #(`CYCLE/2)
                    if ( go_sleep_i ==1'b1 ) begin
                        disable run ;
                    end // if
                    clk_o = 1'b0 ;
                    #(`CYCLE/2) ;
                end // forever
            end // run
            @( posedge wakeup_a_i )
            clk_o = 1'b0 ;
            wakeup_o = 1'b1 ;
            #(`CYCLE/2)
            clk_o = 1'b1 ;
            #(`CYCLE/2)
            clk_o = 1'b0 ;
            wakeup_o = 1'b0 ;
            #(`CYCLE/2) ;
        end // forever
    end // initial
endmodule // clockgen
// EOF clockgen.v






お気に入りの記事を「いいね!」で応援しよう

Last updated  2007.08.19 07:47:27
コメント(0) | コメントを書く



© Rakuten Group, Inc.