精华内容
下载资源
问答
  • wire文件

    2018-04-11 15:02:06
    IIC,ARDUIN I2C库存文件
  • ardiuno wire文件

    热门讨论 2014-07-08 10:08:11
    ardiuno的库文件。具体内容包括:wire.cpp,wire.h,readme.txt等
  • Wire提供了最全面的协作套件,其中包括Messenger,语音,视频,电话会议,文件共享和外部协作,所有这些都由最安全的端到端加密保护。 Wire为希望保护其通信和文档共享的组织提供了最强大的安全性。端到端加密使您...
  • 在gradle中添加wire所需的jar包 compile 'com.squareup.wire:wire-runtime:2.1.0' 在libs中添加wire-compiler-1.8.0-jar-with-dependencies.jar  在build.gradle中添加 task generateWireFile(type: JavaExec ) ...

    在gradle中添加wire所需的jar包

    compile 'com.squareup.wire:wire-runtime:2.1.0' 


    注:在开发过程中发现2.1.0版本的jar包里缺少文件,需要使用1.8.0版本,也就是说要和wire-compiler的版本保持一致才OK.

    在libs中添加wire-compiler-1.8.0-jar-with-dependencies.jar 

    在build.gradle中添加

    <pre style="font-family: Menlo; font-size: 9pt; background-color: rgb(255, 255, 255);"><pre name="code" class="java">task generateWireFile(type: JavaExec) {
        classpath = files("libs/wire-compiler-1.8.0-jar-with-dependencies.jar")
        args = ["--proto_path=src/main/resource/proto", "--java_out=src/main/java",
                "common.proto", "xxx.proto"]
        main = "com.squareup.wire.WireCompiler"
    }

    --proto_path=src/main/resource/proto 是proto文件的源目录
    
    
    --java_out=src/main/java 对应生成Java文件的目录
    common.proto 为需要生成的proto文件名
    xxx.proto 如果需要生成多个proto文件,在后面如此添加即可
    
    

    然后执行Task -> other -> generateWireFile



     源码下载:http://download.csdn.net/detail/ha000/9603254

    展开全文
  • wire是连线,baireg是寄存器 wire与reg的区别?什么时候用wire?什么时候用reg? 简单来说硬件描述语言有两种用途:1、仿真,2、综合。 对于wire和reg,也要从这两个角度来考虑。 从仿真的角度来说,HDL语言面对的是...

    wire是连线,baireg是寄存器

    wire与reg的区别?什么时候用wire?什么时候用reg?
    简单来说硬件描述语言有两种用途:1、仿真,2、综合。
    对于wire和reg,也要从这两个角度来考虑。


    从仿真的角度来说,HDL语言面对的是编译器(如Modelsim等),相当于软件思路。
    这时:
    wire对应于连续赋值,如assign
    reg对应于过程赋值,如always,initial


    从综合的角度来说,HDL语言面对的是综合器(如DC等),要从电路的角度来考虑。
    这时:
    1、wire型的变量综合出来一般是一根导线;
    2、reg变量在always块中有两种情况:
    (1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑
    (2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)
    在设计中,输入信号一般来说你是不知道上一级是寄存器输出还是组合逻辑输出,那么对于本级来说就是一根导线,也就是wire型。而输出信号则由你自己来决定是寄存器输出还是组合逻辑输出,wire型、reg型都可以。但一般的,整个设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。
    为什么在verilog中要定义wire?
    有几种情况变量需要定义成wire。
    第一。assign 语句
    例如:
    reg a,b;
    wire and_result;

    assign and_result =a&&b;
    你可以试试把wire定义成reg。综合器会报错。
    第二。元件例化时候的输出必须用wire
    例如:
    wire dout;
    ram u_ram
    (

    .out(dout)

    );
    wire按照国外的教材上面的定义:
    wire为无逻辑连线。只做连线,wire本身是不带逻辑性的,所以输入什么输出就是什么。所以你尝试着用always语句对wire变量赋值。综合器就会报错。
    那么你可能会问。assign c =a&&b不是就是对wire的赋值吗?
    其实并非如此。综合器综合时将a&&b综合成ab经过一个与门。而c只是连接到与门输出的线。正真综合出与门的是&&。而不是c。
    Abstract
    Verilog初学者最常见的问题:『什麼时候该用wire?什麼时候又该用reg?』
    Introduction
    大体上来说,wire和reg都类似於C/C++的变数,但若此变数要放在begin…end内,该变数就须使用reg,在begin…end之外,则使用wire。
    另外使用wire时,须搭配assign;reg则不必。
    input,ouput,inout预设值都是wire。
    若wire和reg用错地方,compiler都会提醒,所以不必太担心。
    一个很重要的观念,在Verilog中使用reg,并不表示合成後就是暂存器(register)。若在组合电路中使用reg,合成後仍只是net,唯有在循序电路中使用reg,合成後才会以flip-flop形式表示成register。

    转载自百度问答https://zhidao.baidu.com/question/2116892499050037707.html

    怕自己忘掉所以在此记录一下

    展开全文
  • Chronicle Wire旨在在简化开发和加快调试方面获得文本协议的好处,但能够在不更改代码的情况下切换到性能更高且更小的二进制协议。 在这篇文章中 ,我研究了使用基于YAML的文本格式进行序列化,反序列化可能会...

    总览

    Chronicle Wire旨在在简化开发和加快调试方面获得文本协议的好处,但能够在不更改代码的情况下切换到性能更高且更小的二进制协议。

    在这篇文章中 ,我研究了使用基于YAML的文本格式进行序列化,反序列化可能会实现的性能。 不错的功能之一是您可以使用YAML进行测试,调试,但在有意义的地方切换到Binary YAML。

    甚至可以在单个流中混合和匹配。 例如,当您确定两端兼容时,使用YAML进行握手,并切换到Binary YAML甚至其他格式。

    代码是什么样的?

    首先,您需要有一个要写入的缓冲区。 这可以是一个byte [],一个ByteBuffer,堆外内存,甚至可以是从其他库中获得的地址和长度。

    // Bytes which wraps a ByteBuffer which is resized as needed.
    Bytes<ByteBuffer> bytes = Bytes.elasticByteBuffer();

    现在,您可以选择要使用的格式。 由于连线格式本身是无缓冲的,因此可以将它们与相同的缓冲区一起使用,但是通常使用一种连线格式会更容易。

    Wire wire = new TextWire(bytes);
    // or
    Bytes<ByteBuffer> bytes2 = Bytes.elasticByteBuffer();
    Wire wire2 = new BinaryWire(bytes2);
    // or
    Bytes<ByteBuffer> bytes3 = Bytes.elasticByteBuffer();
    Wire wire3 = new RawWire(bytes3);

    有很多选项,例如您是否想要像protobuf或SBE这样的数字字段,还是要使用可变(最小)或固定长度(最快)的数据值。

    要写出一个对象,可以使它成为可编组对象,并定义一个readmarshallable和writeMarshallable对象,但是现在让我们只写一些数据即可。
    使用TextWire可以打印:

    wire.write(() -> "message").text("Hello World")
          .write(() -> "number").int64(1234567890L)
           .write(() -> "code").asEnum(TimeUnit.SECONDS)
          .write(() -> "price").float64(10.50);
    System.out.println(bytes);
    // to obtain the underlying ByteBuffer to write to a Channel
    ByteBuffer byteBuffer = bytes2.underlyingObject();
    byteBuffer.position(0);
    byteBuffer.limit(bytes2.length());

    但是,请改用BinaryWire并写入(以十六进制打印时):

    message: Hello World
    number: 1234567890
    code: SECONDS
    price: 10.5

    但是,请改用BinaryWire并写入(以十六进制打印时):

    00000000 C7 6D 65 73 73 61 67 65  EB 48 65 6C 6C 6F 20 57 ·message ·Hello W
    00000010 6F 72 6C 64 C6 6E 75 6D  62 65 72 A3 D2 02 96 49 orld·num ber····I
    00000020 C4 63 6F 64 65 E7 53 45  43 4F 4E 44 53 C5 70 72 ·code·SE CONDS·pr
    00000030 69 63 65 90 00 00 28 41                          ice···(A

    使用BinaryWire的大小可能是其一半,速度是其两倍,但是我们可以选择使用RawWire,它会删除所有元数据,并且可以比计划文本快8倍。

    结论

    尽管二进制协议可以更快,但使用起来却困难得多。 如果可以使用文本格式,则可以更快地开发和调试,但是如果可以选择动态切换,则可以在需要时选择性能。

    即使TextWire花费不到5微秒的时间,在99.99%的写入时间中读取6个字段对象,对于许多应用程序而言,这可能也足够快。

    有用的是,如果需要,可以选择加快运行速度。 RawWire在99.99%的时间内不到600纳秒,而无需更改代码。

    如果需要最大速度,我们有一个带精简API的BytesMarshallable接口,在99.99%的时间内不到220纳秒。

    翻译自: https://www.javacodegeeks.com/2015/08/wiring-yaml-to-a-file-or-network-with-chronicle-wire.html

    展开全文
  • 【arduino库文件】-wire.h

    千次阅读 2019-03-01 22:05:26
    I2C库文件wire begin beginTransmission write endTransmission requestFrom 总结 As a reference the table below shows where TWI pins are located on various Arduino boards. Board I2C / TWI ...

    As a reference the table below shows where TWI pins are located on various Arduino boards.

    Board I2C / TWI pins
    Uno, Ethernet A4 (SDA), A5 (SCL)
    Mega2560 20 (SDA), 21 (SCL)
    Leonardo 2 (SDA), 3 (SCL)
    Due 20 (SDA), 21 (SCL), SDA1, SCL1

    不论是 IIC/TWI, 或是 SPI, 以及硬串口、软串口甚至 Serial.print 都是要靠中断来帮忙处理, 如果你把中断禁止了, 那 这些都无法动作了 !

    I2C库文件wire

    背景
    使用 Arduino 例程的时候发现,官方的描述不太详细,走了些弯路。特此,写篇文章记录下。

    Arduino 的 I2C 相关函数
    Arduino 的封装库真的是非非常的棒,I2C 就只有 10 个 API 函数。I2C 所用的库,称为:Wire Library。详细的描述可以看这个官方地址:

    https://www.arduino.cc/en/Reference/Wire

    下面我会介绍部分的 API 函数。

    begin

    begin 函数用于初始化 Wrie Library 并以 Master 或 Slave 的身份加入 I2C 总线上。begin 函数没有返回值。调用 begin 函数有两种形式:

    begin():无输入参数,表示以 Master 形式加入总线。
    begin( address ):有输入参数,表示以从机形式加入总线,设备地址为address(7-bit)

    beginTransmission

    beginTransmission 函数用于启动一次 Master write to Slave 操作。值得注意的是这个函数的调用并不会产生 Start 信号 和发送 Slave Address,仅是实现通知 Arduino后面要启动 Master write to Slave 操作。

    beginTransmission 函数调用后,(再调用 write 函数进行数据写入), 最后再调用 endTransmission 函数方能产生 Start 信号 和发送 Slave Address 及通讯时序。
    beginTransmission 函数调用形式:

    beginTransmission(address)
    1

    write

    write 函数用于向 Slave 写入数据。共有 3 种调用形式:

    write(value) :写入单字节
    write(string) :写入字符串
    write(data, length) :写入 length 个字节

    endTransmission

    endTransmission 函数用于结束一次 Master write to Slave 操作。前面在介绍 beginTransmission 的时候也介绍过了,如果不在后面使用 endTransmission 函数, 总线上不会产生 Master write to Slave 的时序。

    endTransmission 函数的调用十分有意思。endTransmission 函数可输入参数。

    endTransmission(0):当输入参数为 0 时,将在通讯结束后,不产生 STOP 信号。
    endTransmission(!0):当输入参数为 !0 时,在通讯结束后,生成 STOP 信号。(释放总线)
    endTransmission():当无输入参数时,在通讯结束后,产生 STOP 信号。(释放总线)
    因为我设计的产品程序是使用 DUMMY WRITE 时序,就是这个不产生 STOP 信号卡了我半天的时间(这是我要写本文的原因……)。而官方中,并没有详细介绍这个输入参数…

    同时,endTransmission 函数时具有返回值的:

    0:success
    1:data too long to fit in transmit buffer
    2:received NACK on transmit of address
    3:received NACK on transmit of data
    4:other error
    有个地方需要注意的:当通讯过程中,出现异常后,异常后的 write 操作将被终止,直接结束通讯,具体的是否出现异常,只需要看 endTransmission 的返回值即可。

    requestFrom

    requestFrom 函数用于实现 Master Read From Slave 操作。调用形式有 2 种:

    requestFrom(address, quantity):从 address 设备读取 quantity 个字节,结束后,产生 STOP 信号
    requestFrom(address, quantity, stop) :从 address 设备读取 quantity 个字节,结束后,依据 stop 的值确定是否产生 STOP 信号。
    stop = 0:不产生 STOP 信号
    stop != 0:产生 STOP 信号
    requestFrom 函数具有返回值(表示从 address 设备读取到的字节数)。

    available
    available 函数用于统计 Master Read From Slave 操作后, read 缓存区剩余的字节数。每当缓存区的数据被读走 1 个字节,available 函数的返回值减一。通常 available 函数会搭配着 read 函数使用。

    read
    read 函数用于在 Master Read From Slave 操作后,读取缓存区的数据。

    例程
    下面的例程,是我提供给客户的案例程序。程序上传至了 GitHub:
    https://github.com/TFmini/TFmini-I2C-MasterExample_Arduino

    通讯时序如下图所示:

    通讯时序
    节选代码段:

    #include <Wire.h> // I2C head file
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      // Initiate the Wire library and join the I2C bus as a master or Slave.
      Wire.begin(); 
      Serial.print("Ready to Read TFmini\r\n");
      delay(10);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      byte i = 0;
      byte rx_Num = 0;  // the bytes of received by I2C
      byte rx_buf[7] = {0}; // received buffer by I2C
    
      Wire.beginTransmission(7); // Begin a transmission to the I2C Slave device with the given address.
      Wire.write(1); // Reg's Address_H
      Wire.write(2); // Reg's Address_L
      Wire.write(7); // Data Length
      Wire.endTransmission(0);  // Send a START Sign
    
      // Wire.requestFrom(AA,BB);receive the data form slave.
      // AA: Slave Address ; BB: Data Bytes 
      rx_Num = Wire.requestFrom(0x07, 7); 
    
      // Wire.available: Retuens the number of bytes available for retrieval with read().
      while( Wire.available())
      {
          rx_buf[i] = Wire.read(); // received one byte
          i++;
      }
    
    }
    

    总结

    作者:Cherry0_0Wu
    来源:CSDN
    原文:https://blog.csdn.net/XiuHua_Wu/article/details/82691173
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 当我们使用Verilog时,对于信号定义为reg型还是wire型比较混乱,那么今天我们就来讲一讲如何快速的进行信号定义。 在Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是...
  • 有关许可信息,请访问随附的许可文件和第三方许可。 如果您编译我们不时提供的开源软件来开发您自己的移动,桌面或Web应用程序,并导致该应用程序出于任何目的连接到我们的服务器,则我们将得到的该应用程序称为...
  • 当我们使用Verilog时,对于信号定义为reg型还是wire型比较混乱,那么今天我们就来讲一讲如何快速的进行信号定义。 在Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是...
  • 有关许可信息,请访问随附的许可文件和第三方许可。 如果您编译我们不时提供的开源软件来开发您自己的移动,桌面或Web应用程序,并导致该应用程序出于任何目的连接到我们的服务器,则我们将得到的该应用程序称为...
  • 当我们使用Verilog时,对于信号定义为reg型还是wire型比较混乱,那么今天我们就来讲一讲如何快速的进行信号定义。 在Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是...
  • 原创 明德扬科教 明德扬FPGA科教 当我们使用Verilog时,对于信号定义为reg型还是wire型比较混乱,那么今天我们就来讲一讲如何快速的进行信号定义。 在Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路...
  • 最近做了个项目用到socket,数据格式为protobuf,之前用了google的protobuf-java,感觉文件很大 找了找,结果发现了squareup的这个库,生成的文件比google的小很多,用起来很简单,没有做翻译,以下是原文!!! ...
  • 有关许可信息,请访问随附的许可文件和第三方许可。 如果您编译我们不时提供的开源软件来开发您自己的移动,桌面或Web应用程序,并导致该应用程序出于任何目的连接到我们的服务器,则我们将得到的该应用程序称为...
  • Go 每日一库之 wire

    2020-03-03 00:04:12
    简介 之前的一篇文章Go 每日一库之 dig介绍了 uber 开源的依赖注入框架dig。...我们只需要在一个特殊的go文件中告诉wire类型之间的依赖关系,它会自动帮我们生成代码,帮助我们创建指定类型的对象...
  • 有关许可信息,请访问随附的许可文件和第三方许可。 如果您编译我们不时提供的开源软件来开发您自己的移动,桌面或Web应用程序,并导致该应用程序出于任何目的连接到我们的服务器,则我们将得到的该应用程序称为...
  • Peer wire protocol (TCP)概述peer(端)协议使片(piece)的交换变得容易,片的描述请参考元信息文件。 注意:原来的规范在描述peer协议时,也使用术语piece“(片)”,但是这不同于元信息文件里面的术语“piece(片)”...
  • wire使用在连续赋值语句assign中,reg使用在过程赋值语句中(always、测试文件中的initial)。(除此之外,元件实例化时必须使用wire类型) wire若无驱动器连接,其值为z,reg默认初始值为不定值x wire表示直通,...
  • Peer wire protocol (TCP) 概述 peer(端)协议使片(piece)的交换变得容易,片的描述请参考元信息文件。 注意:原来的规范在描述peer协议时,也使用术语piece“(片)”,但是这不同于元信息文件里面的术语“piece(片...
  • 模块对应测试文件的端口类型为什么又与模块的端口类型不一样?因此有必要进行学习与整理: 先写结论: verilog中的端口具有三种传输方向:input、output、和inout,所有的端口均默认为wire类型; 模块描述时,...
  • 本文转自上面链接,版权请直接参考原链接。 最近在用I2C进行通信交流,发现有两种方法的头文件需要开头...所以需要了解对应库文件的语法,首先感谢博主分享 由于时间问题先介绍wire.h 语法 此库中包含 1 Wire...
  • 我们只需要在一个特殊的go文件中告诉wire类型之间的依赖关系,它会自动帮我们生成代码,帮助我们创建指定类型的对象,并组装它的依赖。 使用 1. 简单例子: 一个普通的符合依赖注入设计原理的例子: package dao ...
  • 最安全的协作平台 现代协作可满足最先进的安全性和卓越的用户体验。Wire提供了最全面的协作套件,其中包括Messenger,语音,视频,电话会议,文件共享和外部协作,所有这些都受到最安全的端到端加密的保护。
  • 在initial过程语句中赋初值时,不能对wire类型变量赋初值,能对reg,integer, real等类型变量赋...若想给某个wire信号赋初值,在仿真初始化文件中将其连接到一个reg信号后就行了,然后对这个reg信号赋初值即可。 ...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 333
精华内容 133
关键字:

wire文件