亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dw8051_timer2.v

?? DW8051單片機的設計
?? V
字號:
// $Id: DW8051_timer2.v,v 1.1 1996/07/25 17:43:38 gina Exp $//------------------------------------------------------------------------------////        This confidential and proprietary software may be used only//     as authorized by a licensing agreement from Synopsys Inc.//     In the event of publication, the following notice is applicable:////                    (C) COPYRIGHT 1996   SYNOPSYS INC.//                          ALL RIGHTS RESERVED////        The entire notice above must be reproduced on all authorized//        copies.//// FILE: DW8051_timer2.v//// AUTHOR: Ludwig Rieder//// ABSTRACT: DW8051 timer2 module (Verilog version)//// MODIFICATION HISTORY://      L.Rieder        10.06.96        Verilog version created////	Bala Needamangalam//			May 20,1998	Updated the inline comments//                      July 20,1999    Removed all DesignWare-Foundation //                                      license checkout commands.//------------------------------------------------------------------------------`include "./DW8051/DW8051_package.inc"`include "./DW8051/DW8051_parameter.v"module DW8051_timer2 (clk,                      rst_n,                      // sfr bus:                      sfr_addr,                      timer2_sfr_cs,                      timer2_data_out,                      timer2_data_in,                      sfr_wr,                      // signals from DW8051_cpu:                      cycle,                      t2m,		//timer2 rate control bit from ckcon                      // external inputs:                      t2,		// input pin                      t2ex,		// input pin                      // external outputs:                      t2_out,		// output pin                      // signals to DW8051_serial:                      out_rclk,		// receive  clock select from t2con                      out_tclk,		// transmit clock select from t2con                      out_t2_ofl,	// timer2 overflow flag                      // signals to DW8051_intr:                      out_tf2,		// overflow flag from t2con                      out_exf2  	// external flag from t2con		      );  input clk; input rst_n; input [7:0] sfr_addr; input [7:0] timer2_data_in; input sfr_wr; input [1:0] cycle; input t2m; input t2; input t2ex; output timer2_sfr_cs; output [7:0] timer2_data_out; output t2_out; output out_rclk; output out_tclk; output out_t2_ofl; output out_tf2; output out_exf2;//------------------------------------------------------------------------------wire clk;wire rst_n;wire [7:0] sfr_addr;wire [7:0] timer2_data_in;wire sfr_wr;wire [1:0] cycle;wire t2m;wire t2;wire t2ex;wire timer2_sfr_cs;wire [7:0] timer2_data_out;reg  t2_out;wire out_rclk;wire out_tclk;wire out_t2_ofl;wire out_tf2;wire out_exf2;//---------------// local signals://---------------// timer2_mode types:`define auto_reload  2'b00`define capture      2'b01`define baud_rate    2'b10reg  [7:0] t2con_reg;wire tf2;wire exf2;wire rclk;wire tclk;wire exen2;wire tr2;wire ct2;wire cp2; wire [7:0] tl2_reg;wire [7:0] th2_reg;reg  [7:0] rcap2l_reg;reg  [7:0] rcap2h_reg; wire t2con_cs;			// chip select for t2conwire tl2_cs;			// chip select for tl2wire th2_cs;			// chip select for th2wire rcap2l_cs;			// chip select for rcap2lwire rcap2h_cs;			// chip select for rcap2h wire [1:0] mode;		// of type timer2_mode wire set_tf2;wire e_tl2;			// enable low byte counterwire e_th2;			// enable high byte counter wire ld_tl2_n;			// active low load signal for low byte counterwire ld_th2_n;			// active low load signal for high byte counter wire [7:0] tl2_in;wire [7:0] th2_in; reg  t2_l0;			// latched input t2reg  t2_l1;			// latched t2_l0reg  t2_l2;			// latched t2_l1 reg  t2ex_l0;			// latched input t2exreg  t2ex_l1;			// latched t2ex_l0reg  t2ex_l2;			// latched t2ex_l1 wire t2_event;			// 1-0 transition on t2 inputwire t2ex_event;		// 1-0 transition on t2ex inputwire tl2_sat;			// saturation flag for tl2_regwire th2_sat;			// saturation flag for th2_regwire tl2_wr;			// sfr write to tl2_regwire th2_wr;			// sfr write to th2_regwire t2_ofl;			// timer2 overflow flag wire clk_div2;			// 1/2 clkwire clk_div4;			// 1/4 clkreg  clk_div12;			// 1/12 clkreg  [1:0] count; // dummy signals:wire [7:0] tl2_reg_n;wire [7:0] th2_reg_n;wire tl2_sat5;wire th2_sat5;//------------------------------------------------------------------------------  // decode sfr address  assign t2con_cs  = (sfr_addr == `t2con_addr)  ? 1 : 0;  assign tl2_cs    = (sfr_addr == `tl2_addr)    ? 1 : 0;  assign th2_cs    = (sfr_addr == `th2_addr)    ? 1 : 0;  assign rcap2l_cs = (sfr_addr == `rcap2l_addr) ? 1 : 0;  assign rcap2h_cs = (sfr_addr == `rcap2h_addr) ? 1 : 0;// SFR Write process  always @(posedge clk or negedge rst_n)  begin : sfr_process    if (rst_n == 0)    begin       t2con_reg  <= 'b0;      rcap2l_reg <= 'b0;      rcap2h_reg <= 'b0;    end    else    begin    		// t2con_reg can be updated by software or by hardware.      if ((sfr_wr == 1) & (t2con_cs == 1)) t2con_reg <= timer2_data_in;      else      begin        if (set_tf2    == 1) t2con_reg[7] <= 1;        if (t2ex_event == 1) t2con_reg[6] <= 1;		//set exf2 flag      end 		// rcap2l_reg can be updated by software or by hardware in		// capture mode.      if ((sfr_wr == 1) & (rcap2l_cs == 1)) rcap2l_reg <= timer2_data_in;      else if ((mode == `capture) &               (t2ex_event == 1))           rcap2l_reg <= tl2_reg;		// rcap2h_reg can be updated by software or by hardware in		// capture mode.      if ((sfr_wr == 1) & (rcap2h_cs == 1)) rcap2h_reg <= timer2_data_in;      else if ((mode == `capture) &               (t2ex_event == 1))           rcap2h_reg <= th2_reg;    end   end  //sfr_process  // Aliases for t2con bits  assign  tf2   = t2con_reg[7];  assign  exf2  = t2con_reg[6];  assign  rclk  = t2con_reg[5];  assign  tclk  = t2con_reg[4];  assign  exen2 = t2con_reg[3];  assign  tr2   = t2con_reg[2];  assign  ct2   = t2con_reg[1];  assign  cp2   = t2con_reg[0];  // input flip-flops  always @(posedge clk or negedge rst_n)  begin : inp_latch_process    if (rst_n == 0)    begin       t2_l0   <= 0;      t2_l1   <= 0;      t2_l2   <= 0;      t2ex_l0 <= 0;      t2ex_l1 <= 0;      t2ex_l2 <= 0;    end    else    begin      t2_l0   <= t2;		// Stage 0 synchronizer operates      t2ex_l0 <= t2ex;		// on every clock.      if (cycle == `c1)      begin         t2_l1   <= t2_l0;	// Stage 1 and Stage 2 synchronizers are        t2_l2   <= t2_l1;	// enabled only at the end of phase C1        t2ex_l1 <= t2ex_l0;        t2ex_l2 <= t2ex_l1;      end     end   end  //inp_latch_process  // detect high to low transition on t2 input  assign t2_event  = (cycle != `c2) ? 0 : (t2_l2 & ~t2_l1);  // detect high to low transition on t2ex input and evaluate enable flag  assign t2ex_event  = (cycle != `c2) ? 0 :                       (exen2 == 0)   ? 0 :                                        (t2ex_l2  & ~t2ex_l1);// Divide by 2 clock  assign clk_div2 = cycle[0];// Divide-by-4 clock: high only in phase C2  assign clk_div4 = (cycle == `c2) ? 1 : 0;// Divide by 12 clock process// 		The "count" and the clk_div12 change state only at the end of//		the C1 clock phase (i.e., in the beginning of C2)  always @(posedge clk or negedge rst_n)  begin : clk_div_process    if (rst_n == 0)    begin       count     <= 2'b00;      clk_div12 <= 1;    end    else    begin      if (tr2 == 0)      begin         count     <= 2'b00;        clk_div12 <= 1;      end      else if (cycle == 2'b00)      begin         count[0]  <= ~(count[0] | count[1]);        count[1]  <= count[0];        clk_div12 <= count[1];      end      else clk_div12 <= 0;    end   end  //clk_div_process// Timer2 Mode definitions.  assign mode  = ((rclk == 1) | (tclk == 1)) ? `baud_rate :                 (cp2 == 1)                  ? `capture   :                                               `auto_reload;// Write-enables for TL2/TH2  assign  tl2_wr  = sfr_wr & tl2_cs;  assign  th2_wr  = sfr_wr & th2_cs;// Parallel load control for TL2  assign ld_tl2_n = (tl2_wr == 1)                                ? 0  :                    ((mode == `auto_reload) & (t2ex_event == 1)) ? 0  :                    ((mode == `auto_reload) & (t2_ofl == 1))     ? 0  :                    ((mode == `baud_rate)   & (t2_ofl == 1))     ? 0  :                                                                   1;// Parallel DATA in for TL2  assign tl2_in  = (tl2_wr == 1) ? timer2_data_in : rcap2l_reg;// Count-enable for TL2  assign e_tl2  = (tr2  == 0)          ? 0         :                  (ct2  == 1)          ? t2_event  :                  (mode == `baud_rate) ? clk_div2  :                  (t2m  == 0)          ? clk_div12 :                                         clk_div4;// Parallel load control for TH2  assign ld_th2_n = (th2_wr == 1)                                ? 0  :                    ((mode == `auto_reload) & (t2ex_event == 1)) ? 0  :                    ((mode == `auto_reload) & (t2_ofl == 1))     ? 0  :                    ((mode == `baud_rate)   & (t2_ofl == 1))     ? 0  :                                                                   1;// Parallel DATA in for TH2  assign th2_in  = (th2_wr == 1) ? timer2_data_in : rcap2h_reg;// Count-enable for TH2  assign  e_th2  = tl2_sat;// Timer2 Overflow definition  assign  t2_ofl = th2_sat & tl2_sat;// Hardware update flag for TF2 in T2CON  assign set_tf2 = (mode != `baud_rate) ? t2_ofl : 0;// The count-enables of TL2/TH2 are active only in the C2 clock phase.// Thus the Timer/Ctr modules will update at the end of the C2 clock phase.// This enables the CPU to read these registers in the C3 phase of the same// machine cycle.  DW8051_timer_ctr #(8) i1			// Timer/Ctr for TL2                     (.q         (tl2_reg),                      .q_n       (tl2_reg_n),   //not used                      .ones_all  (tl2_sat),                      .ones_5lsb (tl2_sat5),	//not used                      .clk       (clk),                      .rst_n     (rst_n),                      .ld_n      (ld_tl2_n),                      .data_in   (tl2_in),                      .cnt_en    (e_tl2));  DW8051_timer_ctr #(8) i2			// Timer/Ctr for TH2                     (.q         (th2_reg),                      .q_n       (th2_reg_n),   //not used                      .ones_all  (th2_sat),                      .ones_5lsb (th2_sat5),	//not used                      .clk       (clk),                      .rst_n     (rst_n),                      .ld_n      (ld_th2_n),                      .data_in   (th2_in),                      .cnt_en    (e_th2));  // output signals  assign  out_tf2    = tf2  | set_tf2;  assign  out_exf2   = exf2 | t2ex_event;  assign  out_rclk   = rclk;  assign  out_tclk   = tclk;  assign  out_t2_ofl = t2_ofl;  // t2_out is a 1 clock delayed version of t2_ofl  always @(posedge clk or negedge rst_n)  begin : out_process    if (rst_n == 0)    begin       t2_out <= 0;    end    else      t2_out <= t2_ofl;  end  //out_process  assign timer2_data_out = (t2con_cs  == 1) ? t2con_reg  :                           (tl2_cs    == 1) ? tl2_reg    :                           (th2_cs    == 1) ? th2_reg    :                           (rcap2l_cs == 1) ? rcap2l_reg :                                              rcap2h_reg;  assign  timer2_sfr_cs  = t2con_cs | tl2_cs | th2_cs | rcap2l_cs | rcap2h_cs;endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品水蜜桃av综合天堂| 免费一级片91| 成人午夜av电影| 国产精品三级久久久久三级| av一区二区不卡| 亚洲另类一区二区| 在线播放中文字幕一区| 毛片av一区二区三区| 国产亚洲精品7777| 波多野结衣在线一区| 亚洲女人小视频在线观看| www国产精品av| 99精品桃花视频在线观看| 一个色综合网站| 精品日韩在线一区| 色综合久久中文字幕| 日本亚洲一区二区| 国产精品网友自拍| 欧美日韩一区三区| 国产一区二区三区日韩| 亚洲免费色视频| 日韩午夜在线观看| 色综合网站在线| 另类中文字幕网| 亚洲欧美日韩国产综合| 精品日韩一区二区三区| 91污在线观看| 久久精品999| 亚洲伦理在线精品| 日韩亚洲欧美在线| 色婷婷av一区二区三区软件| 麻豆91精品91久久久的内涵| 中文字幕在线不卡一区| 日韩欧美一区二区不卡| 一本色道久久综合亚洲91| 免费成人小视频| 亚洲人成网站影音先锋播放| 欧美mv和日韩mv国产网站| 日本高清不卡一区| 国产成人鲁色资源国产91色综| 亚洲午夜精品久久久久久久久| 久久美女艺术照精彩视频福利播放| 在线视频观看一区| 不卡的av电影在线观看| 久久99热这里只有精品| 日韩精品免费专区| 亚洲欧美日韩国产手机在线| 久久精品亚洲乱码伦伦中文| 5566中文字幕一区二区电影| 色综合网站在线| 成人av在线看| 高清国产午夜精品久久久久久| 日本va欧美va精品| 亚洲一区二区三区中文字幕 | 欧美成人三级在线| 亚洲三级免费电影| 国产色产综合产在线视频| 日韩欧美中文字幕公布| 欧美日韩一区二区电影| 日本韩国视频一区二区| 97久久超碰国产精品| av高清久久久| 成人黄色电影在线| 成人午夜av在线| 成人做爰69片免费看网站| 国产成人av一区二区| 国产一区二区在线影院| 久久爱www久久做| 极品少妇xxxx精品少妇偷拍| 免费高清在线视频一区·| 日本va欧美va欧美va精品| 日韩av不卡一区二区| 日韩激情视频网站| 美国十次综合导航| 精品一区二区三区在线播放 | 日精品一区二区三区| 亚洲一区中文在线| 亚洲精品中文在线影院| 亚洲精品水蜜桃| 亚洲无人区一区| 日韩高清不卡一区| 精品一区免费av| 国产成人在线免费| 成人黄色一级视频| 色综合久久99| 亚洲久本草在线中文字幕| 亚洲日本乱码在线观看| 一区二区三区四区激情| 午夜伦理一区二区| 久久精品国产网站| 国产mv日韩mv欧美| 99久久久久久| 欧美日本一区二区在线观看| 欧美刺激脚交jootjob| 久久精品一区二区| 亚洲久草在线视频| 免费成人av在线| 国产乱码精品一区二区三区av| www.欧美日韩国产在线| 欧美日韩亚洲另类| 欧美大片顶级少妇| 国产亲近乱来精品视频| 一区二区三区四区中文字幕| 日韩va欧美va亚洲va久久| 国产精品18久久久久久久久久久久| 成人av电影在线网| 精品视频在线免费观看| 日韩欧美国产高清| 国产精品久久午夜夜伦鲁鲁| 亚洲午夜电影网| 国产麻豆视频一区二区| 91浏览器在线视频| 欧美一区二区播放| 国产精品伦理一区二区| 日韩和欧美一区二区| 国产成人免费9x9x人网站视频| 91官网在线观看| 国产午夜亚洲精品不卡| 亚洲午夜久久久| 国产宾馆实践打屁股91| 欧美日韩一区不卡| 欧美激情一区二区三区四区| 亚洲综合色丁香婷婷六月图片| 麻豆91精品视频| 欧美中文字幕亚洲一区二区va在线| 日韩一区二区三区电影| 日韩码欧中文字| 韩国一区二区三区| 欧美蜜桃一区二区三区| 国产欧美一区二区在线| 三级久久三级久久| 91社区在线播放| 久久久久一区二区三区四区| 五月天久久比比资源色| av一本久道久久综合久久鬼色| 欧美大片一区二区| 五月综合激情日本mⅴ| 一本大道综合伊人精品热热| 久久久天堂av| 免费成人av在线| 欧美视频一二三区| 亚洲欧美偷拍卡通变态| 国产精品一线二线三线精华| 日韩欧美亚洲一区二区| 亚洲国产精品影院| 色婷婷久久久久swag精品| 国产精品午夜免费| 国产精品中文字幕欧美| 精品国产3级a| 蜜臀久久久99精品久久久久久| 欧美亚洲日本国产| 亚洲精品中文字幕乱码三区| 成人av片在线观看| 国产精品久久久久影院老司| 国产经典欧美精品| 久久免费午夜影院| 国内精品免费**视频| 日韩午夜在线观看视频| 裸体健美xxxx欧美裸体表演| 欧美一区二区三级| 奇米一区二区三区av| 欧美一级精品在线| 蜜臀av一区二区在线观看| 91精品国产综合久久精品app| 亚洲第一久久影院| 欧美日韩国产精选| 日韩国产精品久久久| 欧美一区二区视频在线观看2022 | 麻豆精品蜜桃视频网站| a亚洲天堂av| 亚洲乱码日产精品bd| 日本精品免费观看高清观看| 亚洲自拍都市欧美小说| 欧美精品丝袜久久久中文字幕| 爽好多水快深点欧美视频| 欧美精品日韩一区| 久久se这里有精品| 国产午夜精品一区二区三区视频| 成人精品国产一区二区4080| 亚洲欧美日本在线| 欧美日韩国产在线观看| 奇米精品一区二区三区四区| 精品免费日韩av| 成人av电影在线观看| 亚洲自拍偷拍综合| 日韩欧美二区三区| 成人v精品蜜桃久久一区| 亚洲精品免费视频| 91精品国产丝袜白色高跟鞋| 精品无人码麻豆乱码1区2区| 中文字幕乱码亚洲精品一区| 91久久国产综合久久| 日韩av中文字幕一区二区| 国产欧美一区二区精品性色超碰| 97成人超碰视| 久久精品国产**网站演员| 国产精品久久久久毛片软件| 欧美婷婷六月丁香综合色| 激情综合色综合久久| 亚洲视频免费在线|