⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 out16hi.v

📁 Verilog源码
💻 V
字号:
module out16hi(scl,sda,outhigh);input scl,sda;output[15:0] outhigh;reg[4:0] mstate;reg[3:0] pdata,pdatabuf;reg[15:0] outhigh;reg StartFlag,EndFlag;always @(negedge sda)   if(scl)      begin          StartFlag <= 1;      end   else if(EndFlag)          StartFlag <= 0;always @(posedge sda)   if(scl)      begin         EndFlag <= 1;         pdatabuf <= pdata;      end   else         EndFlag <= 0;         parameter ready = 6'b00_0000,          sbit0 = 6'b00_0001,          sbit1 = 6'b00_0010,          sbit2 = 6'b00_0100,          sbit3 = 6'b00_1000,          sbit4 = 6'b01_0000;          always @(pdatabuf)   begin      case(pdatabuf)         4'b0001:outhigh = 16'b0000_0000_0000_0001;         4'b0010:outhigh = 16'b0000_0000_0000_0010;         4'b0011:outhigh = 16'b0000_0000_0000_0100;         4'b0100:outhigh = 16'b0000_0000_0000_1000;         4'b0101:outhigh = 16'b0000_0000_0001_0000;         4'b0110:outhigh = 16'b0000_0000_0010_0000;         4'b0111:outhigh = 16'b0000_0000_0100_0000;         4'b1000:outhigh = 16'b0000_0000_1000_0000;         4'b1001:outhigh = 16'b0000_0001_0000_0000;         4'b1010:outhigh = 16'b0000_0010_0000_0000;         4'b1011:outhigh = 16'b0000_0100_0000_0000;         4'b1100:outhigh = 16'b0000_1000_0000_0000;         4'b1101:outhigh = 16'b0001_0000_0000_0000;         4'b1110:outhigh = 16'b0010_0000_0000_0000;         4'b1111:outhigh = 16'b0100_0000_0000_0000;         4'b0000:outhigh = 16'b1000_0000_0000_0000;      endcase end always @(posedge scl)   if(StartFlag)      case(mstate)         sbit0:begin                  mstate <= sbit1;                  pdata[3] <= sda;                  $display("I am in sdabit0");              end         sbit1:begin                  mstate <= sbit2;                  pdata[2] <= sda;                  $display("I am in sdabit1");              end         sbit2:begin                  mstate <= sbit3;                  pdata[1] <= sda;                  $display("I am in sdabit2");              end         sbit3:begin                  mstate <= sbit4;                  pdata[0] <= sda;                  $display("I am in sdabit3");              end         sbit4:begin                  mstate <= sbit0;                  $display("I am in sdastop");              end         default: mstate <= sbit0;    endcaseendmodule                                                                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -