第8章 属性(attribute)与配置(configuration)

第8章  属性(attribute)与配置(configuration)
第8章  属性(attribute)与配置(configuration)

第8章 属性(Attribute)与配置(Configuration)

在VHDL中有一些事先定义好的属性,这些属性的使用有的是程序中必要的,有的会增强程序的可读性,有的会使程序的设计更为方便,在此我们会将属性分门别类地进行说明。这里将其分为三大部分,分别是:

返回信号状态的属性

返回单一数值的属性

返回数值范围的属性

接下来所要介绍的是configuration。Configuration主要用于在一些component与entity间做连接的动作。在一个设计中,同样的一个entity可以做许多不同的architecture设计,但是一次只能有一个architecture被选做这个设计的架构,configuration就是连接被选定的architecture与entity之间的桥梁。当simulator利用configuration连接entity与architecture后,设计的架构即已确定并可供仿真了。

8-1返回信号状态的属性

这一类的属性其返回值都是表示信号的状态,比如说信号改变的瞬间,或是信号改变之前的逻辑值。我们来看看这一类的属性有哪些。

1.s’event:返回值为一boo1ean值,当一个事件发生的瞬间其返回值为true,否则返回值为false.

2.s’active:返回值为一boolean值,当一个事件或是转换事件(transaction)发生的瞬间其返

回值为true,否则返回值为false。这里的转换事件与一般所称的事件(event)略有不同, 我们将在后面对其进行说明。

3. s’1ast_event:返回值为一时间量,表示信号转换逻辑值事件发生后至目前

为止的时间

4.s’1ast value:返回值为一逻辑值,表示信号改变的事件发生前,信号s最后的逻辑值。

5.s’1ast_active:返回值为一时间量,表示信号发生转换事件后至目前为止的时间量。现在

我们分别讨论以上五种属性所代表的意义及使用方法。

8-1-1Event属性

Event属性可以说是使用最广泛的属性了。当一个事件发生的瞬间其返回值为true,对一个信号而言,其逻辑值的改变即是事件的发生。一般而言最在乎逻辑值改变的信号就是clock了,因为flip-flop输出信号的改变都是在clock逻辑值改变的瞬间发生的(异步reset的flip-flop还会受reset信号所影响)。Event 这个属性一般与clock的逻辑条件搭配使用,比如下面的例子即是一个上升沿触发的D_type flip_flop。

library ieee;

use ieee.std_logic_1164.all;

entity V8_0 is

port(D : in std_logic;

Q : out std_logic;

Clk : in std_logic);

end V8_0;

architecture A_DFF of V8_0 is

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

Q <= D;

end if;

end process;

end A_DFF;

8-1-2Active属性

Active属性发生的机率比event属性来得更高,因为它是在一个事件或是转换事件发生的瞬间就会返回true。什么是转换事件呢?对一个逻辑器件的输出信号而言,当其输入信号改变时,输出信号并不会因此而改变,我们称之为转换事件。比如说一个or gate,当一个输入为逻辑’1’时,其输出端一定为逻辑’1’。这时输出端受此输入信号的影响,即使另一个输入端的信号有了改变,其输出端的逻辑状态仍不会改变。这时没有事件event的发生,但却有转换事件transaction 的发生。我们来看看图8-l就会明白转换事件的意义。

然而转换事件的发生对实际的电路却没有什么影响,所以在使用上也不容易举出较实用的例子。读者们可自己体会。

8-1-3Last_event属性

Last_event属性所要返回的数值是一个时间量,而这个时间量是自检验点起往回推,—直到信号最后改变状态的时间。Last_event属性的作用在于检验信号的设定时间是否足够。我们来看看下面的例子。

library ieee;

use ieee.std_logic_1164.all;

entity V8_1 is

generic(setup_time : time := 5 ns);

port(D : in std_logic;

Q : out std_logic;

Clk : in std_logic);

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

assert (D'last_event < setup_time)

report "setup violation"

severity error;

end if;

end process;

end V8_1;

architecture A_DFF of V8_1 is

signal Dtime : time;

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

if (D'last_event < setup_time) then

Q <= 'X';

else

Q <= D;

end if;

Dtime <= D'last_event;

end if;

end process;

end A_DFF;

在这个例子中,entity的下一行是一个由generic所声明的时间量,其默认值为5 ns。在begin之后有一个process,是用来检验信号D的1ast_event时间量。若在信号Clk的上升沿之前,信号D的稳定时间量要大于generic中设定的setup_time值。若是在这个时间点上,待检验的信号其设定时间不足,就会送出一个ERROR信息显示在ModelSim的主窗口上。在architecture中也会检验信号D的setup time是否足够,若是不足时会令信号Q的输出值为unknown。图8-2即是以之前的例子所做仿真的结果,其中的dtime为信号D的last_event属性的返回值。

8-1-4Last_value及Last_active属性

在之前就曾经讲过:last_value属性的返回值为一逻辑值,也就是说在检查点上,若检查的信号没有改变,则其返回值也不会改变。一定要等到受检查的信号改变其逻辑状态,信号的last_value属性返回值才会改变。我们延续之前的例子,只是在其中加入了信号D的last_value及1ast_active属性。

library ieee;

use ieee.std_logic_1164.all;

entity V8_2 is

generic(setup_time : time := 5 ns);

port(D : in std_logic;

Q : out std_logic := '0';

Clk : in std_logic);

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

assert (D'last_event < setup_time)

report "setup violation"

severity error;

end if;

end process;

end V8_2;

architecture A_DFF of V8_2 is

signal Dtime : time;

signal DValue : std_logic;

signal DATime : time;

begin

process(Clk)

variable DValueV : std_logic;

begin

if Clk = '1' and Clk'event then

if (D'last_event < setup_time) then

Q <= 'X';

else

Q <= D;

end if;

Dtime <= D'last_event;

DValue <= D'last_value;

DATime <= D'last_active;

end if;

end process;

end A_DFF;

图8-3是前一节的输入信号所仿真的结果,在第一个clock信号上升沿(25 ns)之前,输入信号D(检查信号)的逻辑值并未改变,所以信号D的last_value属性(Dvalue)返回值仍与之前的值(unknown)相同。在第二个clock信号上升沿(75 ns)前,信号D已改变其逻辑值,因此D的last_value属性变为逻辑’0’。一直到172 ns处信号D又改变其逻辑值,因此Dvalue会在175 ns处再改变其逻辑值。至于信号D的’last_active的返回值是与last_event的返回值一样的。

8-2返回单一数值的属性

这一类属性的返回值只是一个数值而已,而返回的数值是一个type或subtype的边界值。既然是边界值,表示这一定是个向量型的数据类型。让我们看看属于这一类的属性有哪些。

s’left 返回值为type或subtype最左边的位数

s’right 返回值为type或subtype最右边的位数

s’high 返回值为type或subtype最高的位数

s’low 返回值为type或subtype最低的位数

我们先举个例子声明,假设有个向量信号为:

a_vector(7 downto 0)

则以下信号四种属性的返回值分别为:

a_vector’left 的返回值为 7

a_vector’right 的返回值为 0

a_vector’high 的返回值为 7

a_vector’low 的返回值为 0

但若是a wctor这个向量改为:

a_vector(0 to 7)

那么a_vector’high及a_vector’low两属性的返回值仍与上一个例子相同,但是a_vector’left及a_vector’high两属性的返回值可就不同了,其返回值正好相反。在上面的例子中,可以很明显地看出,’high及’low两属性的返回值只与向量范围的大小有关,’high的返回值是向量范围的最大值,’low的返回值是向量范围的最小值。而’left及’right两属性的返回值只与向量排列的方式有关,’left的返回值是向量的最左边边界值,’right的返回值是向量的最右边边界值。

这一类属性的返回值主要的用途是使程序的设计更有弹性,比如说在设计中有些向量信号的范围并不固定,有可能会从32-bit升级到64-bit。那么在设计中直接将信号范围固定成31 downto 0或63 downto 0就比较没有弹性了,这时使用generic的声明会是一个好方法。以generic声明后,设计内部的范围就不宜再使用固定的数值了,这时除了使用generic声明的数值外,使用以上介绍的属性也可以达到目的。让我们看看以下的例子。

library ieee;

use ieee.std_logic_1164.all;

entity V8_3 is

generic(DRange : integer := 8);

port(D : in std_logic_vector(DRange - 1 downto 0);

Q : out std_logic_vector(DRange - 1 downto 0);

Clk : in std_logic);

end V8_3;

architecture A_DFF of V8_3 is

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

for i in 0 to D'left - 1 loop

Q(i) <= D(i + 1);

end loop;

Q(Q'left) <= D(D'right);

end if;

end process;

end A_DFF;

以上的例子是将8个flip-flop的输出进行重新指定。将信号D(0)输入值经flip-flop后指定给信号Q(7),信号D(1)输入值经flip-flop后指定给信号Q(0),依此类推。要是有必要将设计改成16-bit,只要将generic值改成8,再做一次compile就可以了。读者们也可以依设计的要求而自行变化使用的方式。

8-3返回数值范围的属性

在本节要介绍的属性其返回值是一个范围,我们先看看具有这种特性的属性有哪些。

s’range 返回值为向量信号的范围值

s’reverse_range 返回值为向量信号逆顺序的范围值

那么这种属性要用在什么地方呢?首先可以用在信号的声明上,我们先来看看下面的例子:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity V8_4 is

generic(DRange : integer := 8);

port(D : in std_logic_vector(DRange - 1 downto 0);

Q : out std_logic_vector(DRange - 1 downto 0);

Sel : in std_logic_vector(1 downto 0);

LD : in std_logic;

Clk : in std_logic);

end V8_4;

architecture A_Counter of V8_4 is

signal DC0 : std_logic_vector(D'range);

signal DC1 : std_logic_vector(DC0'range);

signal DC2 : std_logic_vector(DC1'range);

signal DC3 : std_logic_vector(DC2'range);

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

if LD = '0' then

DC0 <= D;

DC1 <= D;

DC2 <= D;

DC3 <= D;

else

DC0 <= DC0 + 1;

DC1 <= DC1 + 2;

DC2 <= DC2 + 3;

DC3 <= DC3 + 4;

end if;

end if;

end process;

with Sel select

Q <= DC0 when "00" ,

DC1 when "01" ,

DC2 when "10" ,

DC3 when others;

end A_Counter;

在上面的例子中有四个计数器,分别是DC0、DCl、DC2及DC3。在architecture 的声明部分中可以看到,这四个计数器都使用到’range这个属性。DC0计数器与entity中输入信号D的范围相同,因此其使用到的是信号D的range属性。至于DCl DC2及DC3这三个计数器其实也与输入信号D的范围相同,在这边要分别声明成DC0’range、DCl’range及DC2’range,只是要让读者了解在architecture声明部分中的信号,还是可以拿来做其他信号的range声明。但是在entity中声明的信号,就不能拿来当做其他信号的range声明。比如说在上面的例子中,输入信号D及输出信号Q的范围其实是一样的。但是就是不能将信号Q声明成以下的状态: Q : out std_logic_vector(D’range);

Compiler会告诉你他不知道D是什么东西。

第二种用途是在loop中定义其范围,让我们将之前介绍到属性’left所举的例子拿来改写。

library ieee;

use ieee.std_logic_1164.all;

entity V8_5 is

generic(DRange : integer := 8);

port(D : in std_logic_vector(DRange - 1 downto 0);

Q : out std_logic_vector(DRange - 1 downto 0);

Clk : in std_logic);

end V8_5;

architecture A_DFF of V8_5 is

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

for i in D'reverse_range loop

if i = Q'left then

Q(Q'left) <= D(0);

else

Q(i) <= D(i + 1);

end if;

end loop;

end if;

end process;

end A_DFF;

在上面的例子中,我们在for loop里使用到了信号D的’reverse_range属性,其所指的就是0 to 7的范围。当i的值为7时,将信号D(0)的值指定给信号Q(7),其余状态则将信号D(i+1)的值指定给信号Q(i)。这个例子的执行结果与上面的那个例子执行结果相同,只是写法不同罢了。

8-4Configuration

Configuration的用途有点像是个牵线的红娘,她会将一个component的架构连到entity上,比如说一个设计的本体中,可能有不止一个的架构,这时configuration便可以派上用场。当使用configuration将entity与architecture 连接之后,simulator会将其compile到library中,这时用来做simulation的模型便建立了。

Configuration也可以用来将一些特殊的参数值由generic的方式传送入component内,在使用component instantiation时你可以不用将这些参数以generic map的方式传入component内,而在下面的configuration声明中再将这些参数传入。

在下面的几个小节中,我们会将上面所讲述的configuration做个介绍,并会举些例子让你了解configuration的使用。

8-4-1Architecture Configuration

这是最简单的一种configuration声明了,简单到什么程度呢?简单到其内部可以空无一物。在使用前我们先来看看其基本架构

语法:

Configuration config_name of entity_name is

for architecture_name

end for

end config_name;

当我们声明一个configuration时,在关键字configuration之后的是configuration name,在之后又接了entity name,这表示所声明的是这一个entity的configuration,那么这个entity要连接的architecture是哪一个呢?就是声明在下一行for之后的

architecture_name。我们先来看看以下的例子。

library ieee;

use ieee.std_logic_1164.all;

entity V8_6 is

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end V8_6;

architecture ARDFF of V8_6 is

begin

process(Rst,Clk)

begin

if Rst = '0' then

Q <= '0';

elsif Clk = '1' and Clk'event then

Q <= D;

end if;

end process;

end ARDFF;

configuration CFG_DFF of V8_6 is

for ARDFF

end for;

end CFG_DFF;

也许你会觉得奇怪,明明只有一个entity和一个architecture,何必要用configuration连接呢?没错,有些simulator在这种情形下是可以不需要做configuration的声明,像ModelSim就是如此。但有些simulator就未必如此了,所以在此仍说明一下最简单的configuration声明。

接着我们要看的是一个设计中有一个entity和两个architectures的例子,这个例子和前一个差不多,惟一的差别是其中多了一个architecture。

library ieee;

use ieee.std_logic_1164.all;

entity V8_7 is

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end V8_7;

architecture ARDFF of V8_7 is

begin

process(Rst,Clk)

begin

if Rst = '0' then

Q <= '0';

elsif Clk = '1' and Clk'event then

Q <= D;

end if;

end process;

end ARDFF;

architecture SRDFF of V8_7 is

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

if Rst = '0' then

Q <= '0';

else

Q <= D;

end if;

end if;

end process;

end SRDFF;

configuration CFG_DFF of V8_7 is

for ARDFF

end for;

end CFG_DFF;

这是一个D_type flip-flop的设计,两个architectures所不同的是:architecture ARDFF是一个asynchronous reset的flip-flop,而architecture SRDPF是一个synchronous reset的flip-flop。由configuration的声明可得知,这个设计采用的是asynchronous reset的flip-flop。

8-4-2Component Configuration

前一节所介绍的是以configuration将entity与architecture连接,在本节所要介绍的则是将小的设计以component方式使用。虽然这是在下一章才会介绍到的hierarchy design和component instantiation,不过在这儿我们仍可做个简单的介绍,让读者能了解其使用的方式。

在这一节中我们仍以上面的例子为主再做个修改,首先来看看以component的声明方式。

library ieee;

use ieee.std_logic_1164.all;

entity V8_8 is

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end V8_8;

architecture ARDFF of V8_8 is

begin

process(Rst,Clk)

begin

if Rst = '0' then

Q <= '0';

elsif Clk = '1' and Clk'event then

Q <= D;

end if;

end process;

end ARDFF;

architecture SRDFF of V8_8 is

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

if Rst = '0' then

Q <= '0';

else

Q <= D;

end if;

end if;

end process;

end SRDFF;

configuration CFG_DFF of V8_8 is

for SRDFF

end for;

end CFG_DFF;

-------------------------------------------------------------------------------------------------------- library ieee;

use ieee.std_logic_1164.all;

entity V8_9 is

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end V8_9;

architecture A_TDFF of V8_9 is

component V8_8

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end component;

begin

UDFF : V8_8

port map(D => D ,

Q => Q ,

Rst => Rst ,

Clk => Clk );

end A_TDFF;

configuration CFG_TDFF of V8_9 is

for A_TDFF

for UDFF : V8_8 use configuration work.CFG_DFF;

end for;

end for;

end CFG_TDFF;

在上面的例子中,虚线的分隔线表示可以将前半部和后半部分成两个文件,当然也是可以放在同一个文件中。在前半部中的写法与前一小节的例子几乎完全一样,所不同的只有在configuration声明中使用了同步reset的SRDFF architecture。在后半部的程序中,我们在architecture的声明部分中定义了一个component,也就是前半部程序的设计。在后半部程序的设计中,只使用了一个前半部设计的component。所以加上后半部的设计和只有前半部的设

计,其结果并没有什么差别。举这个例子的目的,只是要让读者们了解configuration也可以做configuration的的声明。在之前我们已在前半部设计中利用configuration声明了这个component为SRDFF,因此在以后的设计中沿用此configuration声明。

然而在一个设计中若有两个以上的地方会用到上面的设计,而这些设计皆使用上面的configuration,那么我们可以在前一个例子的后半部设计中加上他自己的configuration。让我们来看看以下的设计。

library ieee;

use ieee.std_logic_1164.all;

entity DFF is

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end DFF;

architecture ARDFF of DFF is

begin

process(Rst,Clk)

begin

if Rst = '0' then

Q <= '0';

elsif Clk = '1' and Clk'event then

Q <= D;

end if;

end process;

end ARDFF;

architecture SRDFF of DFF is

begin

process(Clk)

begin

if Clk = '1' and Clk'event then

if Rst = '0' then

Q <= '0';

else

Q <= D;

end if;

end if;

end process;

end SRDFF;

library ieee;

use ieee.std_logic_1164.all;

entity V8_10 is

port(D1 : in std_logic;

Q1 : out std_logic := '0';

D2 : in std_logic;

Q2 : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end V8_10;

architecture A_TDFF of V8_10 is

component DFF

port(D : in std_logic;

Q : out std_logic := '0';

Rst : in std_logic;

Clk : in std_logic);

end component;

begin

UDFF1 : DFF

port map(D => D1 ,

Q => Q1 ,

Rst => Rst ,

Clk => Clk );

UDFF2 : DFF

port map(D => D2 ,

Q => Q2 ,

Rst => Rst ,

Clk => Clk );

end A_TDFF;

--configuration CFG_TDFF of TDFF is

-- for A_TDFF

-- for all : DFF use configuration work.CFG_DFF;

-- end for;

-- end for;

--end CFG_TDFF;

configuration CFG_TDFF of V8_10 is

for A_TDFF

for UDFF1 : DFF use entity work.DFF(SRDFF);

end for;

for UDFF2 : DFF use entity work.DFF(ARDFF);

end for;

end for;

end CFG_TDFF;

在这个例子中我们对所有的DFF做了一个configuration声明,只要是实体名

称(instance name)为DFF,其architecture一律与CFG_DFF所声明的一致。而在设计的前半部已声明了CFG-DFF,它是将entity DFF与architecture SRDFF进行连接,因此我们在设计后半部所使用的仍是先前的architecture SRDFF。

不过若是设计中出现两个以上的components,他们使用与前面设计相同的entity,但是却使用不同的architecture,这时就不能使用先前的configuration 声明,而要使用entity声明。之后的例子使用的程序与前一个例子大部分相同,只有在configuration声明处不同,让我们看看其configuration要怎么声明。 configuration CFG_TDFF of TDFF is

for A_TDFF

for UDFF1 : DFF use entity work.DFF(SRDFF);

end for;

for UDFF2 : DFF use entity work.DFF(ARDFF);

end for;

end for;

end CFG_TDFF;

在这个configuration中,我们对component的连接方式由configuration改变成entity。在entity声明完后,其后方有一个括号,括号内的是所要连接的architecture。在本例中名称为UDFF1的flip-flop是一个synchronous reset D_type flip-flop,而名称为UDFF2的flip-flop是一个asynchronous reset D-type flip-flop。这种声明方式的好处在于:每一个实体的声明都可以完全独立,而不必迁就之前configuration所做的声明。

8-4-3Generic Configuration

Generic的主要用途是将一些参数由generic map传送到设计内部,这一点我们已经提过了。在此我们可以先对generic的用途做个较详细的声明,它具有以下的特性:

1.Generic声明的位置一般是置于entity内,port声明的上方。

2.Generic内部声明的参数,其数据类型并没有限制,但是要注意的是compiler 是否能接受各种类型的参数。像Synopsys的Design Compiler其仅能接受数据类型为integer的参数。

3. Generic所声明的参数可以有默认值,而在内部设计中,若使用到的参数与默认值相同,则在做component instantiation时可以不需要generic map,若是使用到的参数与默认值不同,则在做component instantiation时就可以使用generic map将参数传入设计中。

4. Generic声明的参数在entity中就能使用。

不过在此要介绍的并不是generic的使用,而是如何在configuration中传递generic声明的参数。有些component在原始设计时使用许多外部输入的参数,藉以增加弹性以方便改变其设计的内容。比如Xilinx公司的core Generator,设计者可以用它产生许多不同的RAM,像是signal port或是dual port, address bus 及data bus的bit数,是不是要有控制信号we(write enable)、en(enable)及rst(reset),控制信号是high active或是low active等,以下的例子是其提供的library中,single port RAM 的entity声明。

ENTITY C_MEM_SP_BLOCK_V1_0 IS

GENERIC (

C_ADDRESS_WIDTH : integer := 12;

C_CLK_POLARITY : integer := 1;

C_DEFAULT_DATA : string := “0”;

C_DEPTH : integer := 4096;

C_EN_POLARITY : integer := 1;

C_GENERATE_MIF : integer := 0;

C_HAS_DI : integer := 1;

C_HAS_DO : integer := 1;

C_HAS_EN : integer := 1;

C_HAS_RST : integer := 1;

C_HAS_WE : integer := 1;

C_MEM_INIT_FILE : string := “null.mif”;

C_MEM_INIT_RADIX : integer := 2;

C_PIPE_STAGES : integer := 0;

C_READ_MIF : integer := 1;

C_RST_POLARITY : integer := 1;

C_WE_POLARITY : integer := 1;

C_WIDTH : integer := 1

);

PORT (addr : IN STD_LOGIC_VECTOR ( C_ADDRESS_WIDTH -1 DOWNTO 0 );

di : IN STD_LOGIC_VECTOR ( C_WIDTH -1 DOWNTO 0) := (OTHERS => ‘0’ );

clk : IN STD_LOGIC;

we : IN STD_LOGIC := ‘0’ ;

en : IN STD_LOGIC := ‘1’;

rst : IN STD_LOGIC := ‘0’ ;

do : OUT STD_LOGIC_VECTOR ( C_WIDTH -1 DOWNTO 0 ) );

END C_MEM_SP_BLOCK_V1_0;

当你要使用SRAM的simulation model时,只要在configuration声明中设 定不同的参数值,即可得到你所想要的RAM。比如我们要建立一个data bus宽度为8-bit,数据存储深度为256(address bus为8-bit)的signal port RAM,其中包含we、en及rst三组控制信号,并且都是high active。我们就要建立一个

如下的文档:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

-- synopsys translate_off

Library XilinxCoreLib;

-- synopsys translate_on

entity V8_11 is

port(addr : IN std_logic_VECTOR(7 downto 0);

clk : IN std_logic;

di : IN std_logic_VECTOR(7 downto 0);

we : IN std_logic;

en : IN std_logic;

rst : IN std_logic;

do : OUT std_logic_VECTOR(7 downto 0));

end V8_11;

architecture A_RAMTest of V8_11 is

component ram256

port(addr : IN std_logic_VECTOR(7 downto 0);

clk : IN std_logic;

di : IN std_logic_VECTOR(7 downto 0);

we : IN std_logic;

en : IN std_logic;

rst : IN std_logic;

do : OUT std_logic_VECTOR(7 downto 0));

end component;

begin

Uram256 : ram256

port map(addr => addr ,

clk => clk ,

di => di ,

we => we ,

en => en ,

rst => rst ,

do => do );

end A_RAMTest;

configuration CFG_RAMTest of V8_11 is

for A_RAMTest

-- synopsys translate_off

for all : ram256 use entity XilinxCoreLib.C_MEM_SP_BLOCK_V1_0(behavioral)

generic map(

c_has_en => 1,

c_rst_polarity => 1,

c_clk_polarity => 1,

c_width => 8,

c_has_do => 1,

c_has_di => 1,

c_en_polarity => 1,

c_has_we => 1,

c_has_rst => 1,

c_address_width => 8,

c_read_mif => 0,

c_depth => 256,

c_pipe_stages => 0,

c_mem_init_radix => 16,

c_default_data => "0",

c_mem_init_file => "ram256.mif",

c_we_polarity => 1,

c_generate_mif => 1);

end for;

-- synopsys translate_on

end for;

end CFG_RAMTest;

在CFG_RAMTest中我们设定了许多参数,比如设计中要有控制信号en(参数c_has_en=>1),en为high active(c_en_po1arity=>1),address bus的宽度为8-bit(c_address_width=>8)等。在architecture内只要用component instantiation的方式将IO信号map到component上即可,而不需要以generic map 的方式将参数传入设计中。

也许读者看到这个generic会很担心,因为在这个generic中有18个参数,是否要先了解所有参数的定义,再一一设定这些参数值呢。不用害怕,因为这个generic map的数值是Xilinx Core Generator自动产生的,而Core Generator 的使用在第10章中将有完整的介绍。在之前我们曾经说过,当generic的设定值与原先的默认值不同时,设计会以generic map或configuration中设定的值为依据,而原先的设计也可以不用再compile一次,以增加设计的弹性。

8-5小结

在本章中介绍了三类信号的属性,读者们在了解其用途后,除了可以提高程序设计的弹性外,不论是在实际硬件的设计上,或是在simulation model的设计上,都能带来很大的方便性。其实在VHDL中还有许多不同的属性,但是使用的机率并不高,由于篇幅有限,这里就不介绍了。

除了介绍属性之外,我们还提到configuration。在一开始介绍的是一个entity对一个architecture的configuration连接,不过对一些simulator而言,这样的连接动作是多余的,因此许多设计者根本没有用过configuration。不过在一个以上的architecture出现时,就必须借助configuration的连接了。除此之外configuration还可以做generic参数的传递,这使得一些IP的使用变得更为方便了,所以configuration还是有学习的必要。

读完这一章后,相信读者已经对attribute及configuration的使用已经有了基本的了解。不过除了属性’event以外,本章所介绍到的内容可能在简单的设计中并不会用到。读者在看完这一章后先留下印象,在以后要用到该内容时再回来复习吧!

问题

1.按照TTL 74373及74374的真值表,各设计一个8-bit的flip-flop,并注意’event属性的使用。

74373真值表

Output Control Enable Input Output

L H H H

L H L L

L L X Qo

H X X Z

74374真值表

Output Control Enable Input Output

L ? H H

L ? L L

L L X Qo

H X X Z

2.试设计一multiplexer,其输入有三组信号,分别是Ain、Bin及Sel。输出信号一组为Dout。当信号Sel为逻辑’0’时,输入信号Ain的值送到Dout,否则将Bin 的值送到Dout。假设目前未确定信号Ain、Bin及Dout的bit数,较有可能是8-bit。请以generic声明代替固定的bit数。

vSphere网络配置指南

ESX Server网络配置 1. 创建虚拟交换机端口 VMware ESX有3种连接类型,分别是: ●service console port:用来访问ESX Server管理网络 ●vmkernel port:访问vmotion/iSCSI/NFS/NAS网络 ●virtual machine port group:访问vm网络 安装ESX时会使用第一个网卡创建一个虚拟交换机,并有两个连接类型:Service Console Port及Virtual Machine Port Group,下面将说明如何添加交换机及各类交换端口。 1.1. 创建Service Console Port Step 1: 在vSphere Client清单中选择主机,单击[Configuration]选项卡。在左侧的Hardware 栏中点击Networking,右侧会显示现有的虚拟交换机配置情况。点击右上方[Add Networking] Step 2: Connection Type

●选择[Service Console]。 ●单击[Next]。 Step 3: Service Console - Network Access ●若ESX Server中有未分配的网卡,则此处可使用未分配网卡创建新的虚拟交换机, 并将创建的端口置与此交换机上。 ●注意:每个虚拟交换机上仅能有一个Service Console端口。所以若无未分配网卡, 则只能将新建的Service Console端口置与已存在的虚拟交换机上且此交换机上没有 Service Console端口类型。

Step 4: Service Console – Connection Setting ●在[Port Group Properties]中,输入网络标签和VLAN ID。 ●单击[Next]。 Step 5: Service Console – IP Connection Setting ●设置新加Service Console端口的IP地址、子网掩码及默认网关。 ●单击[Next]。

vm四种网络设置

vm 四种网络连接方式 Bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力. 在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题. 使用这种方式很简单,前提是你可以得到1个以上的地址.对于想进行种种网络实验的朋友不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了. nat方式:这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8. 你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样虚拟机就可以使用dhcp服务.更为重要的是,vmware自带了nat服务,提供了从vmnet8到外网的地址转换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的. 很显然,如果你只有一个外网地址,此种方式很合适. hostonly: 这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验.和nat唯一的不同的是,此种方式下,没有地址转换服务,因此,默认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义. 默认情况下,也会有一个dhcp服务加载到vmnet1上.这样连接到vmnet8上的虚拟机仍然可以设置成dhcp,方便系统的配置. 是不是这种方式就没有办法连接到外网呢,当然不是,事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置,例如: a.使用自己dhcp服务:首先停掉vmware自带的dhcp服务,使dhcp服务更为统一. b.使用自己的nat,方便加入防火墙.windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windows server里的nat服务. c. 使用自己的防火墙.因为你可以完全控制vmnet1,你可以加入(或试验)防火墙在vmnet1和外网的网卡间. 从以上可以看出,hostonly这种模式和普通的nat server带整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火强的设置等 1、Bridge模式(一切都跟host一样,只有ip不能与host相同) ip 192.168.39.222 netmask:255.255.252.0 gateway:192.168.39.254 Primary nameserve:192.168.39.252 2、NAT模式 首先在host中查看VMnet8的IP(e.g. 192.168.255.1). 启动VMware,点Edit下Virtual Network Settin g… ,弹出Virtual network Editor对话框;

常见各网卡级设置和说明

常见各网卡高级设置和说明 1.双击右下角的两个小电视(上网就一闪闪的那个),也可以右键点网上邻居点属性再双击本地连接 2.点属性 3.点配置 在电源管理中:允许计算机关闭这个设备以节约电源关掉! 在高级里面:不同网卡如下 先说几个比较关键的: 1,Flow Control =流量控制网卡默认设置 网卡自动限制你的网络流量,比如说平时很流畅,打海山,一A怪就掉线,为什么?流量大。。。。 2,Checksum Offload 数据包校验网卡默认设置 网卡的自动校验而导致一旦有一点问题,后续的包便全部不处理而出现假掉线,而服务器忙得话,出错的几率就大 3,大量传送减负网卡默认设置 大量传送减负是用网卡硬件分割TCP数据包,但其实只有关闭它才可以发挥网卡的真正性能,cpu占用率会提升,但不明显。网络处理速度会快一些。 NF网卡高级设置

Checksum Offload 数据包校验建议关闭 Flow Control 流量控制一定要关闭 IEEE802.1P Support IEEE802.1P支持建议关闭 Jumbo Frame Payload Size 默认是1500 这个是千兆网络一个新的设置,在下文详细叙述。 Low Power State Link Speed 网卡节能建议关闭 Network Address MAC的修改默认为不存在一般不必改动 Optimize For CPU/Throughput 为CPU占用优化或为吞吐量进行优化,设置为CPU的话,网卡的速度被限制,但CPU占用会很低,假如改为Throughput的话,网卡的性能才能完全发挥,但CPU的占用也会上升不少。 Segmentation Offload 建议关闭 Speed/Duplex Settings Full Autonegotiation(全自适应,一般不用修改) VLAN Id 默认是1 不用改 VLAN Support VLAN支持一般关闭 Wake on Magic packet 魔术数据包唤醒建议关闭 Wake on pattern 建议关闭 WakeOnLAN From PowerOff 建议关闭 8168/8111c网卡高级设置 在网卡高级选项里 JUMBO FRAME 改成无 802.1Q/1P VLAN Tagging 改成关闭 Flow Control 改成关闭 Jumbo Frame 改成关闭 Offload Checksum 改成关闭 Offload TCP_LargeSemnd 改成关闭

网络属性设置向导

Window2000 网络属性设置向导 Windows 2000是一个高度集成的网络环境,它不需要任何客户端软件即可登录到Netware和Windows NT 4.0、Windows Advance Server等网络中。在建立对等网络时,也不需要其他任何软件支持。如果用户同时使用多个网络,则只要在不同的网络中有相同的用户名及口令,即可同时登录到已连接的所有网络中。Windows 2000由于采用了32位网络驱动程序,使网络速度更快、性能更加稳定。 Windows 2000的网络系统由客户、适配器、协议和服务四大组件构成,它对现有的硬件设备、网络协议、网络服务系统有更好的支持,还可以提供多种服务。 利用Windows 2000建立对等型网络 对等型网络可以方便地实现资源的共享与信息的传递,特别适合组建小型或微型网络。Windows 2000内置了对等型网络功能,利用Windows 2000可方便地组建对等型网络。本节将系统地介绍如何利用Windows 2000来建立对等型网络。 1. 安装网络适配器 无论用户想组建何种网络,在Windows 2000中安装适配器的方法都是相同的。在这里我们是以Dlink 530 TX 100M网卡来作为讲解的例子。具体的网络适配器安装过程由于篇幅所限,我们就不详述了。 2. 设置识别数据 Windows 2000利用识别数据来区分网络上的计算机。识别数据包括计算机名、工作组及隶属域三项内容。利用下面的方法可以对计算机的识别数据进行设置: 第一步:在“开始”菜单中,选择“设置”/“控制面板”选项。 第二步:在“控制面板”窗口中双击“系统”图标,打开“系统”对话框。 第三步:单击对话框中的“网络标识”标签,切换到“网络标识”选项卡。 第四步:在“网络标识”选项卡中,显示出当前的Windows 2000系统安装时缺省用来在网络上标识该计算机的名称和所在的工作组的名称,点击“属性”按钮。

ESXi多网卡设置

ESXi双网卡双IP设置 最近机房有台机器坏了,新购一台机器(Dell730 双CPU,共20核,64G内存,3块4T硬盘)。考虑到现在虚拟化技术比较成熟,使用维护确实方便,决定采用vSphere来部署。机器部署挺方便的,由于以前物理机是双IP设置,虚拟化时遇到一点小问题,主要是开始没理解虚拟交接机的概念。 一设置网络 1.点击配置-》网络按钮,默认只有一个虚拟交换机。所有物理端口聚合到此虚拟交换机,实现冗余。这就是我开始配置虚机的IP地址,虚机之间可以ping,但到物理交换机就是不通的原因。 2.增加虚拟交换机 点击添加添加网络按钮

下一步,选择ESXi的物理端口,新建虚拟交换机 下面是新增后效果:

二虚机指定虚拟网卡的网络 选择虚机,点击虚拟机配置按钮 选择第一步设置的虚拟交换机 这样配置后,可正常ping通物理交换机,就可以了。 三.Windows虚机双IP配置 Windows比较简单,分别配置网卡和对应的网关。在高级里将下一跳由自动改

为固定值就可了。 四.Linux虚机双IP配置 Ubuntu的双IP稍微麻烦一点,ubuntu安装时不像RHEL,自动激活联线的网卡,ubuntu只激活一个,另一个需手工安装。 1.找出网卡 sudo lshw -C network 2.编辑/etc/network/interfaces,加入新网卡配置 vi /etc/network/interfaces 修改里面的内容如下 auto eth0 iface eth0 inet static address 192.168.4.213 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 58.200.200.15 netmask 255.255.255.128 gateway 58.200.200.1 3.增加路由 通过以上操作后,可ping通各自的网络。但如果通过外网访问的话,只有一个IP是通的。 cat /etc/iproute2/rt_tables # reserved values 255 local 254 main 253 default 252 net0 251 net1 0 unspec

双网卡汇聚详细图文教程(精)

双网卡汇聚详细图文教程 双网卡汇聚详细图文教程首先先看下我汇聚好的设备管理器图 集成的两块网卡都是INTEL 82574L的安装最新的网卡驱动会自动把INTEL分组的功能集成进去 因为服务器正在带机运行所以不能为大家做各个步骤的详细图 1、安装INTEL的网卡驱动(我安装的是14.4) 2、驱动完毕后在设备管理器里右键点INTEL的网卡,选属性 3、属性里选分组 4、选与其他适配器分区,选新组 5、组名随便添,例如:易游无盘分组,下一步 6、钩选你要搭建负载的网卡,下一步 7、选择组模式,模式选适应性负载平衡,如果你的交换机支持链路聚合,选静态链路聚合也可以(我的交换机支持所以我选择的是静态交换机型号H3C S5024P) 8、设置你的组,选择主、从卡 有些朋友汇聚好后问为什么汇聚好的是1G而不是2G 别急交换机那里还需要设置的不过首先你的交换机要支持聚合功能 下面来看看交换机 注:新建端口汇聚时,汇聚端口类型应设为一致,而且端口的工作速率不能设为自协商,且不同速率的端口不能配置为同一个汇聚组,聚合组中的所有端口必须为全双工(FULL)。开始我就犯了这个错误没有调整结果百试不成功 我的服务器在交换机上接口为6 and 23 在端口设置里设置如图

两个端口都设置好后转到端口汇聚功能页勾选你刚才设置的两个端口到汇聚组1 如图 H3C有4种汇聚算法: 1:SA(源MAC地址)2:DA(目的MAC地址)3:SA+DA4:SA+DA+IP 每中汇聚方法适应不同类型网络,需要根据实际情况做出选择。否则将会导致严重的网络问题。端口名:对应端口的名称普通组:设置该端口为非汇聚组汇聚组:设置该端口为汇聚组我这里使用的是第三种算法SA+DA 也就是源MAC地址+目的MAC地址 这样我们就完成了交换机的汇聚功能配置 在选择组类型时候会出现很多类型下面给大家列出各种类型的说明 高级网络服务(ANS) 组类型 适配器容错 适应性负载平衡 静态链接聚合 IEEE 802.3ad 动态链接聚合

Internet属性设置

一、常用服务简介 1、DNS(Domain Name System):域名系统。它为Internet(因特网)上的计算机提供名称(即如“https://www.360docs.net/doc/3015764948.html,”的域名)到地址(即如“192.168.0.3”的IP地址)的映射服务以用于域名解析。 2、IIS(Internet Infomation Server):Internet信息服务。它是一种Web服务,主要包括WWW 服务器、FTP服务器等。它使得在Intranet(局域网)或Internet(因特网)上发布信息很容易。Windows 2000 Advanced Server上提供的为IIS 5.0。 3、DHCP(Dynamic Host Configure Protocol):动态主机配置协议。它是设计用于简化管理地址配置的TCP/IP标准。它使用服务器集中管理 IP地址以及在您的网络上使用的其他相关配置(比如网关、DNS服务器等)的详细信息。 二、添加DNS、IIS和DHCP服务 1、添加IIS。选“控制面板→添加/删除程序→添加/删除Windows组件→Internet信息服务→全选”。 2、添加DHCP和DNS。选“控制面板→添加/删除程序→添加/删除Windows组件→网络服务→选中:动态主机配置协议DHCP→选中:域名服务系统DNS”。 3、添加成功后,不需重新启动,即可在“开始→程序→管理工具”中看到并使用相关服务。如下图: 三、网络属性设置 要使用以上所述服务,本机必须要有静态(即固定)的IP地址。如果只是在局域网中使用,原则上可用任意的IP地址,最常用的是“192.168.0.1”到“192.168.0.254”范围内的任意值。欲为网卡绑定静态IP地址,按如下操作: 1、打开网络属性设置窗口:即TCP/IP属性设置窗口。选“控制面板→网络和拨号连接→本地连接→属性→Internet协议(TCP/IP)→属性”。 2、为网卡绑定第一个IP地址:此IP同时也将成为本机的默认IP地址。选“使用下面的IP

双网卡同时使用内外网的方法详解(精)

不少公司的网管试图解决双网卡问题,下面我就给大家详细的讲解一下双网卡同时使用的方法,这样即可保障内网的安全,又能解决电脑访问外网的问题,一举两得。希望大家喜欢。首先你的机器需要有两块网卡,分别接到两台交换机上, internet地址:192.168.1.8,子网掩码:255.255.255.0,网关:192.168.1.1 内部网地址:172.23.1.8,子网掩码:255.255.255.0,网关:172.23.1.1 如果按正常的设置方法设置每块网卡的ip地址和网关,再cmd下使用route print查看时会看到 Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.8 0.0.0.0 0.0.0.0 172.23.1.1 172.23.1.8 即指向0.0.0.0的有两个网关,这样就会出现路由冲突,两个网络都不能访问。如何实现同时访问两个网络?那要用到route命令第一步:route delete 0.0.0.0 "删除所有0.0.0.0的路由" 第二步:route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 "添加0.0.0.0网络路由"这个是主要的,意思就是你可以上外网. 第三步:route add 172.23.0.0 mask 255.0.0.0 172.23.1.1 "添加172.23.0.0网络路由",注意mask为255.0.0.0 ,而不是255.255.255.0 ,这样内部的多网段才可用。这时就可以同时访问两个网络了,但碰到一个问题,使用上述命令添加的路由在系统重新启动后会自动丢失,怎样保存现有的路由表呢? route add -p 添加静态路由,即重启后,路由不会丢失。注意使用前要在tcp/ip设置里去掉接在企业内部网的网卡的网关 ------------------------------------------------------------------------------------------------ 一些单位将内网和外网分开了。痛苦啊,偶单位就是如此。boss当然是基于安全性考虑了,可是没有笔记本的怎么办?又要办公,有得上网。没办法,发扬DIY 精神偷偷装一块网卡,让聊天与工作同在。让你的主机内外兼顾。这是我在网上找到的,谢谢作者了。方法如下: 1.设置其中接internet的网卡的网关为10.0.0.1,启用后就是默认网关 --注:这是对应外网的网卡,按照你们单位外网的ip分配情况,在TCP/IP属性中配置好 ip、掩码、DNS 2.将连接单位内部网的网卡IP配好后,设网关设置为空(即不设网关),启用后,此时内网无法通过网关路由 3.进入CMD,运行:route -p add 192.0.0.0 mask 255.0.0.0 192.168.0.1 metric 1 --注:意思是将192*的IP包的路由网关设为192.168.0.1 ,-P 参数代表永久写入路由表,建议先不加此参数,实践通过后在写上去 4. OK!同时启用两个网卡,两个网关可以同时起作用了,两个子网也可以同时访问了,关机重启后也不用重设!其实这是个中

驱动程序的高级设置 英特尔 R 网络适配器用户指南

驱动程序的高级设置英特尔R 网络 适配器用户指南 Windows*驱动程序的高级设置:英特尔(R)网络适配器用户指南英特尔PROSet的高级选项卡中列出的设置允许您自定义适配器如何处理QoS信息包标记、巨帧、分载及其他功能。下列功能不一定全有,这取决于您运行的操作系统、安装的特定适配器以及使用的特定平台。适应性帧间距调整补偿网络上过 多的以太网信息包碰撞。默认设置对多数计算机和网络都有很好效果。启用此 功能后,网络适配器能动态适应网络通信条件。但是,在个别情况下禁用这一 功能反而能提高性能。此设置强制在信息包之间保持静态间隔。支持的适配器 英特尔PRO/1000铜质服务器适配器英特尔PRO/100服务器适配器默认值默认值依适配器类型而各有不同。范围范围依适配器类型而各有不同适应性性能调整 支持的适配器英特尔PRO/100服务器适配器范围参阅以下说明设置适配器在触 发一次中断之前接收的帧数。正常操作下,适配器每次接收到一个帧就触发一 次中断。降低中断数提高CPU使用。将滑杆移到网络将对每一个帧生成一次中断。这将增大适配器的带宽并最大程度地提高网络性能,但这也可能会增加对CPU的使用量,从而减慢计算机速度。将滑杆移向计算机将增加适配器生成一 次中断之前接收的帧数。这会改善CPU利用率,并最大程度地提高计算机性能,但是也可能降低适配器带宽。默认设置对多数计算机都有很好效果。适应性技 术启用或禁用适配器驱动程序中的微码。微码根据操作系统环境来优化性能。 要保证获得最佳的可能性能,保持启用"适应性技术"。在对适配器兼容性问题 进行故障排除时,可关闭"适应性技术"。关闭"适应性技术"也会禁用"传输控制快"和"适应性性能调整"。支持的适配器英特尔PRO/100服务器适配器默认值开范围开、关适应性传输阈值制定适配器在发送信息包之前在传输缓冲区中储存 的字节数。例如,如果"适应性传输阈值"是100,适配器在其缓冲区中储存100字节(800比特)的数据,然后再发送。 提高"适应性传输阈值"降低传输性能,但可能减少欠载运行。降低"适应性传输阈值"提高传输性能,但可能增加欠载运行。降低此值使适配器能提早传输。适配器仅将"适应性传输阈"值用作一个起点。如果适配器能使用较低的值获得 更好的性能,它自动使用较低的值。要将适配器配置成先传输满载的以太网帧,

win网卡高级选项优化设置

win 网卡高级选项优化设置 Realtek RTL8169/8110 系列PCI 千兆以太网 NIC (NDIS 6.20) IPv4 校验和卸载禁用Jumbo 帧禁用 TCP 校验和卸载(IPv4)禁用UDP 校验和卸载(IPv4)禁用传输缓 冲区最大值大量发送卸载(IPv4)禁用唤醒数据包禁用唤醒模式匹配 禁用接收缓冲区512 流控制禁用速度和双工自动协商网络地址优先级 和VLAN 中断裁决禁用 QoS 数据包标签建议设置:已禁用 本地管理的地址建议设置:不存在 传输描述符建议设置:256 等待连接建议设置:开 分载传输IP 效验和建议设置:开 自动禁用Gigabit (节能)禁用

分载传输TCP效验和建议设置:关分载接收IP 效验和建议设置:开分载接收TCP效验和建议设置:关唤醒链接设置建议设置:已禁用 唤醒设置建议设置:已禁用 纪录链接状态设置建议设置:已禁用

接收描述符建议设置:256 巨帧建议设置:已禁用 链接速度和双工建议设置:1000 Mbps 自动协商流程控制建议设置:关启用PME 建议设置:控制操作系统 适应性帧间距调整建议设置:已启用中断节流率建议设置:关 经过前期的测试发现,INTEL网卡驱动使用11.2 以后的版本比较好,11.2 以后的版本驱动在传输相同数据,相同传输速率时,对工作站的CPU利用率比较低。 其他各种网卡做无盘的高级设置NF 网卡高级设置 Checksum Offload 数据包校验建议关闭

Flow Control 流量控制一定要关闭 IEEE802.1P Support IEEE802.1P支持建议关闭 Jumbo Frame Payload Size 默认是1500 这个是千兆网络一个新的设置,在下文详细叙述。 Low Power State Link Speed 网卡节能建议关闭 Network Address MAC 的修改默认为不存在一般不必改动 Optimize For CPU/Throughput 为CPU占用优化或为吞吐量进行优化,设置为CPU 的话,网卡的速度被限制,但CPU 占用会很低,假如改为Throughput 的话,网卡的性能才能完全发挥,但CPU的占用也会上升不少。 Segmentation Offload 建议关闭 Speed/Duplex Settings Full Autonegotiation (全自适应,一般不用修改) VLAN Id 默认是1 不用改

MERCURY无线USB网卡详细配置指南

MERCURY无线USB网卡 详细配置指南

声明 Copyright ? 2015 深圳市美科星通信技术有限公司 版权所有,保留所有权利 未经深圳市美科星通信技术有限公司明确书面许可,任何单位或个人不得擅自仿制、复制、誊抄或转译本手册部分或全部内容,且不得以营利为目的进行任何方式(电子、影印、录制等)的传播。 为深圳市美科星通信技术有限公司注册商标。本手册提及的所有商标,由各自所有人拥有。本手册所提到的产品规格和资讯仅供参考,如有内容更新,恕不另行通知。除非有特殊约定,本手册仅作为使用指导,所作陈述均不构成任何形式的担保。 联系方式 网址:https://www.360docs.net/doc/3015764948.html, 技术支持热线:400-8810-500 技术支持E-mail:fae@https://www.360docs.net/doc/3015764948.html,

物品清单 小心打开包装盒,检查包装盒里面应有以下配件: 一块MERCURY无线USB网卡 一张包含驱动程序和管理软件的光盘 一本快速安装指南 注意: 如果发现有配件短缺或损坏的情况,请及时和当地经销商联系。 约定 本手册提到的网卡或无线网卡,如无特别说明,系指MW150US超小型150M无线USB网卡。 本手册的图片中都配有相关参数,请参考这些参数根据实际需要进行配置。 本手册为MW150UH、MW150UM、MW300UM和MW150US共用详细配置指南,以MW150US 为例进行介绍。

目录 第1章产品概述 (1) 1.1产品特性 (1) 1.2指示灯状态 (1) 1.3安全警示 (1) 第2章安装指南 (2) 2.1硬件安装 (2) 2.2软件安装 (2) 2.3软件卸载 (6) 2.3.1Windows XP/Windows 7系统 (6) 2.3.2Windows 8/Windows 8.1系统 (8) 第3章配置指南 (9) 3.1水星无线网卡客户端应用程序 (9) 3.1.1状态 (9) 3.1.2WPS (10) 3.1.3网络 (16) 3.1.4配置文件 (19) 3.1.5高级 (21) 3.2Windows无线网卡客户端应用程序 (22) 3.2.1Windows 7系统 (22) 3.2.2Windows XP系统 (24) 3.2.3Windows 8/Windows 8.1 系统 (26) 第4章通过网卡扩展无线网络 (29) 4.1Soft AP (30) 4.2点对点结构 (33) 附录规格参数 (36)

COMFAST 150M 300M无线网卡软AP设置详解

Comfast 300M无线网卡软AP设置 无线网卡发射(软AP设置): 1)点击管理软件菜单【模式】选择【接入点】 2)正在从基站模式切换到接入点模式,稍等一下就可以了。 3)切换成接入点模式后,发射器就可以工作,SSID 显示的是发射的名称。

4)点击【配置】设置网络名称(SSID)、频道、加密方式、密码。点击【确认】。 5)点击“ICS”选择你电脑连接的网络,点击【应用】

注意:在这一步要根据自己的网络类型来设定,选择您所使用的网络即可。如果是IP 地址及MAC地址绑定的网络和有限制单台电脑使用的网络是无法共享网络的。如果在此设置不成功的,请手动共享网络另见(手动设置网络共享)。 手动设置网络共享: 1. “本地连接”共享设置: 1) 右击桌面“网上邻居”图标,选择“属性”,打开“网络连接”对话框。 2) 选择“本地连接”右击“属性”打开本地连接属性对话框。

3) 选择“高级”,设置Internet连接共享,勾选“允许其它网络用户通过此计算机的Internet 连接来连接”及“允许其它网络用户控制或禁用共享的Internet连接”,并在家庭网络 连接下拉框中选择您要设置软AP 网卡的“无线网络连接”。 4) 点击“设置”打开“高级设置”,勾选“DHCP(67)”及“DNS”点击“确定”再点 击“确定”到此本地连接共享就设置完成了,如果您是本地连接网络就可以共享网络。

1) 右击桌面“网上邻居”图标,选择“属性”,打开“网络连接”对话框。 2)选择您连接外网的“无线网络连接”右击“属性”打开无线网络连接属性对话框。

网卡高级属性设置

APM Mode 网路唤醒:关闭/开启 ARP/PING网路唤醒:关闭/开启 关机网络唤醒 降速省电 接收端缓冲区长度:64K bytes /16/32/8 连接速度和双工模式:100 Mbps 全双工/100 Mbps 半双工/ 10 Mbps 全双工/10 Mbps 半双工 连线改变网路唤醒 网路卡位 性能最佳化 网卡高级属性设置 2010-03-17 16:03 (一) Wake On Ping,网络唤醒 Flow Control,流量控制(根据网络情况,降低发包速度) PME,Power Management Event,电源管理,一段时间不工作,网卡可以自动关闭,以节约 电力。家用机一般还是关闭该项,因为有时候这设置会有兼容问题 Priority Packet,优先度,显然你是intel的网卡。英特尔Priority Packet 是一种实用程序,用来设 置过滤器以先处理高优先级网络通信,然后再处理一般通信。使用Priority Packet,可以设置优 先级过滤器、使时间紧迫的通信。而这个就是打开该功能的开关,不过没有intel 的priority packet软件配合,这项打开也没有意义。 (二) 1、link down power saving 连接断开时关闭电源节省,建议启用enable。 2、link speed/duplex mode 连接的速度,现在的网卡一般都是10/100M自适应的,选默认的 auto negotiation 自动选择即可。

3、network performance 网络设置,不用理它。 4、optimal performance 优化设置,建议启用enable。 5、receive buffer size 接收缓存大小,选最大的64k bytes。 6、wakeup on arp/ping wakeup on link change wakeup using Apm mode 后果很严重 这些都是网络唤醒功能,不需要的建议关闭disable。 Link Down Power Saving 低速连接时省电模式 Link Speed/Duplex Mode 连接速度双工模式 Network Address 网络地址 Optimal Performance 优化性能 Receive Buffer Size 接收缓冲大小 WakeUp on ARP/PING 网络唤醒通过ARP/PING WakeUp on Link Change 网络唤醒通过连接改变 WakeUp using APM Mode 网络唤醒通过APM模式 (三) Link Down Power Saving Link Speed/Duplex Mode Network Address Optimal Performance Receive Buffer Size WakeUp on ARP/PING WakeUp on Link Change

通过高级网卡选项提升网络性能

通过高级网卡选项提升网络性能 某些网卡选项能够帮助IT专业人员提升关键服务器的网络性能。 以太网是数据中心以及局域网中最主要的网络技术,但是其难以支撑当前经常用到的工作负载比如存储数据、实时音视频。以太网是为简单文件传输以及需要通过争用才能进行传输的小数据包而设计的。即使对带宽进行了大量的扩容,以太网在处理对时间敏感、不允许丢包的流量时效率仍旧不高。 网卡有时被称为网络接口控制器,其技术在不断发展,包括了更多能够提升网络性能的特性,包括巨型帧以及卸载功能、包标记、缓冲区以及帧间距调整等等。但是在数据中心使用某些网卡特性时有一些注意事项。 有效利用CPU:巨型帧vs.卸载功能 如果服务器性能低下,那么可能是由于网络负载较大。标准的以太网数据包大小为1542个字节,大多数文件被拆分为成百上千甚至上百万个数据包或者帧。这些小的数据包通过网络传输,和众多节点共享网络带宽,但是数据帧的发送与接收会带来CPU开销。 大多数网卡支持巨型帧,这意味着能够处理高达9000字节的数据包或者帧。巨型帧在每个数据包中包括更多的数据,因此网络中需要传输的数据包数量就变小了。吞吐量提升意味着开销——数据包头与其他数据包内容——以及CPU开销减少了。 巨型帧肯定存在缺点。管理员必须对网络中的所有节点进行配置才能支持巨型帧的传输。巨型帧并不是IEEE标准的一部分,因此不同的网卡配置的巨型帧大小有所不同。为了在节点之间高效传输巨型帧要做一些实验。更大的数据包可能会增加某些负载的延迟,因为其他节点要等更长的时间才能使用带宽,请求与发送被丢弃或者被破坏的数据包也需要花更长的时间。 IT专业人员可能放弃巨型帧而使用具有LSO以及LRO功能的网卡。LSO和LRO 允许CPU通过网卡传输更多数量的数据,而且基本上与巨型帧提供了相同的CPU 性能。 通行能力:可调整的帧间距vs.以太网升级 以太网在每发送一个数据包后都要等一段时间,这称之为帧间距。这为其他网络节点占用带宽并发送数据包提供了机会。帧间距等于发送96个数据位的时间。例如,1Gb以太网使用标准的0.096ms的帧间距,10Gb以太网的帧间距为 0.0096ms。 利用这一固定的数据包传输之间的间距并非总是有效而且在网络负载较大的情况下可能会降低网络性能。支持自适应帧间距的网卡能够基于网络负载动态调整

网卡使用说明书

目录 Ⅰ产品信息 (1) Ⅱ无线上网卡自动安装指南 (2) Ⅲ无线上网卡使用说明 (4) (一)主界面 (4) (二)功能使用 (4) Ⅳ无线上网卡卸载 (9) Ⅴ主要指标和规格 (10) Ⅵ基本功能 (12) Ⅶ故障排除指南 (12) Ⅷ常见拨号故障指南 (14) Ⅸ维护保养指南 (16)

Ⅰ产品信息 彰显自我随e生活 移动办公:您可随时随地收发E-mail,或者召开电话会议,与公司和合作伙伴保持联系;也可以浏览网站,获得最新资料。随身理财:您可以随时得到最新的证券交易信息,还可连接网上银行和证券公司,进行在线交易。 在线生活:您可随时与网友聊天;收看实时新闻或娱乐节目;也可以在线预定机票、宾馆,或者到网上商城购物。 精心设计性能卓越 多信道: CDMA 的最高传输速度可达153.6k,实际上网速度相当于GPRS的3-4倍。 多频段: CDMA使用800Mhz,可以提供更好的空间覆盖和深度覆盖,资源使用更优。 操作简便功能丰富 快速安装:对于各类计算机,附带的应用软件组件可以帮助您快速安装、配置和管理无线上网卡。 多系统支持:其设计和应用软件可轻易支持Windows2000/ XP(中、英、繁)等常见的操作系统,满足不同用户的要求。支持热插拔:您可随时安装或取下无线上网卡,而无需重新启动操作系统。

Ⅱ.AnyCom龙卡自动安装指南 1、放入光盘,选取对应安装驱动。 2.、按照安装程序提示进行操作,选择“安装驱动” 3、按照提示插入上网卡, 4、系统提示安装成功,点击“完成”,结束上网卡的驱动安装。

5、软件安装,选择“我接受” 6、选择安装路径 7、软件安装进行。8、安装完毕

xp多网卡静态路由设置方法

在实际应用中,通常有些主机或服务器会插有多块网卡并拥有多个IP,而多IP 大概可以分为两种情况: 一、多个IP都在同一网段或VALN。这类情况没什么好说的,在各块网卡的本地连接属性里设置好IP地址、子网掩码和默认网关即可。 二、多个IP属于不同网段或VLAN。这时如果按照通常的方法设置IP地址,填好各网段的子网掩码和默认网关,就会发现服务器所在的多个网段中,只有一个网段可以正常通信。 这个问题我也是最近才碰到的。经过Google和百度一番,得出原因:路由冲突。 我们知道,Windows系统下为网络连接填写默认网关等于为本机添加一条默认静态路由。打开“本地连接属性”--“Internet协议(TCP/IP)属性”,点击“高级”,会看到默认网关一栏里有个“跃点数”,这个跃点数即跳数(默认为自动,数值为20),可以理解为网关的优先级,也就是路由的优先级,此数值越小路由优先级越高。比如,假定你网卡1的IP地址设置为地址1 (192.168.1.2,掩码255.255.255.0,默认网关192.168.1),此时打开CMD,输入route print,可以看到本机路由表。我们可以看到一条下一跳地址为默认网关的路由: 这条路由的意义为:只要包的目的地址不在本网段,不管目的地址是什么,都把包抛给默认网关,由网关负责转发。由于我们没有修改跃点数,所以可以看到metric为20,即本条路由的优先级为20。

同理,如果你又插了另一块网卡2,IP地址设为地址2(172.30.0.2,掩码255.255.255.0,默认网关172.30.0.1),系统同样会添加一条静态路由至本机路由表: 这里是图片,由于截图太麻烦,请尽情展开您的想象之翼 0.0.0.0 0.0.0.0 172.30.0.1 很明显这两条路由冲突,肯定只有一条会生效,因此肯定只有一个网段可以正常通信了。 既然知道了原因是路由冲突,咱想办法不让它冲突就行了呗。方法是:不填写默认网关,手动添加路由。以双网卡为例,可以两个都不填,也可以只填一个,总之目的就是设置好路由,让包被发送到正确的网关。我们先把网卡1和2的默认网关都删掉,再看路由表,刚才那两条路由都不见了。然后我们用route add 命令来手动添加路由。首先为192网段添加:比如我们向整个192.168.0.0网段中的其他网段发送数据包时,都需要经本网段网关192.168.1.1进行转发,则我们在CMD中输入如下命令: route -p add 192.168.0.0 mask 255.255.0.0 192.168.1.1 metric 1 其中-p参数是添加长效路由的意思;192.168.0.0是目的地址;mask 255.255.0.0是目的地址的掩码;192.168.1.1是下一跳地址,即网关。添加本条路由后,192段的通信可以正常进行。 接下来为172段添加:比如我们向整个172.30.0.0网段中的其他网段发送数据包时,都需要经本网段网关172.30.0.1进行转发,则我们在CMD中输入如下命令:

如何优化网卡设置

优化网卡设置提高网络传输速度 在局域网中通过网络通道传输、交流共享文件,是一项常见的操作;按理来说,在目前的10MB、100MB传输环境中,传输容量不大的共享文件,应该要不了几秒钟就能完成;可事实上,我们在传输一些容量只有几个KB的共享内容时,有时要等上几分钟的时间,要是传输大容量文件时,那等待的时间可就更长了。虽然引起网络传输速度缓慢的原因有很多,可是仔细琢磨、总结之后,我们会发现网卡参数设置不当,特别容易导致网络传输速度缓慢;为此,当我们排除引起网络传输速度缓慢的各项可能因素后,仍然无法提高网络传输速度时,我们就应该将目光转向网卡设置方面,以便向网卡设置要速度! 设置网卡传输速度 目前的局域网使用的传输介质一般都是速率为100MB的双绞线,而工作站使用的网卡设备传输速度目前主要有10MB、100MB以及10/100MB自适应这几个标准;调查显示,现在的工作站中网卡设备大部分采用都是10Mbps/100Mbmps自适应标准,即传输速率在10MB和100MB之间自动匹配。当工作站使用这种网卡设备传输共享文件时,常常会遇到一个几MB容量的文件在网络中传输时,需要等待很长时间,很显然这种现象是不正常的。引起这种现象的主要原因,其实就是网卡每次传输内容时都需要耗费时间去动态决定使用什么标准的速度进行信息传输,这样一来就会降低网卡的工作效率。 我们知道,安装了10Mbps/100Mbmps自适应标准网卡设备的工作站,每次与目标工作站的网卡设备进行通信时,都需要经过协商选择两者都能接受的传输速率。要是目标工作站的网卡设备使用的是100MB标准,那么自适应网卡就要与目标网卡设备反复协商、交流,直到确定选用100MB速度进行通信为止;同样地要是目标工作站使用的网卡设备是10MB标准的,那么自适应网卡设备也会经过协商、交流的过程,来确定选用10MB速度来通信,这种协商、交流的过程可能需要反复多次,以保证网络信号能够稳 定地进行传输。 由于若干次协商、交流,肯定会消耗一定的时间,这样一来我们就会感觉到网络传输速度不怎么快了。为了提高网络传输速度,我们可以根据对方网卡设备的通信速度,来采用手工方法固定本地自适应标准网卡设备的传输速度,确保它们之间互相通信时不要经过反复协商、交流的过程,而直接使用指定 的速度进行快速交流。 例如,要是目标工作站使用了100M的网卡设备,那么要与该工作站进行快速通信时,我们就需要对本地工作站的网卡设备进行设置,强制本地网卡也采用100M速度进行工作;如果局域网中既有100M标准的网卡设备,也有10M标准的网卡设备,那么从稳定的角度出发,我们可以将本地自适应标准 网卡设备的传输速度强行设置为10MB标准。 在采用手工方法固定网卡设备的通信速度时,我们可以先用鼠标右键单击本地工作站系统桌面中的“网上邻居”图标,从弹出的快捷菜单中单击“属性”命令,打开本地系统的网络连接列表窗口;再用鼠标右击其中的本地连接图标,并执行快捷菜单中的“属性”命令,进入到“本地连接”属性设置界面,单击该界面中的“常规”标签,并在对应标签页面中找到“连接时使用”的目标网卡设备,再单击对应该设备旁边的“配置”按 钮,进入本地自适应网卡设备的属性设置窗口; 单击该窗口中的“高级”标签,打开如图1所示的高级标签设置页面;在该设置页面的“属性”列表框中,选中“Link Speed & Duplex”项目,并且在对应该项目的“值”列表框中,选中“100Mbps/Full Duplex”选项或“10Mbps/Full Duplex”选项,最后单击“确定”按钮,这样一来本地自适应网卡设备就能采用固定速度与对方网卡设备进行通信了,那样的话就不需要每次与对方网卡设备进行协商、交流了。

双网卡共享上网详细设置图解教程

双网卡共享上网详细设置图解教程 实现电脑共享上网的方法很多, 现在大家数通过路由上网,当然方便啦,不过现在购买一台路由器的价格100元左右, 例如:D-Link DI-504四口路由器价格为95元,TP-Link TL-R402+四口路由器价格为88元。如果大家没有购买路由器,可以使用双网卡共享上网。 下边我给大家做一个双网卡共享上网的教程: 我们把暂时把连接internet的电脑称为主机,,通过主机连接共享上网的电脑成为客户机,下面我们开始配置主机网络: 开始---程序---控制版面---网络连接: 在这里我们将连接internet的本地连接设置为外网,连接客户机的本地连接设置为内网: 那么如何分别哪个是外网哪个是内网呢? 分别右键本地连接、本地连接2---属性—高级,会有如下显示:

这下大家可以清楚的看到两者的分别,将高级选项内有Internet连接共享这一项的设置成外网,反之没有的则设成内网。

接下来配置IP地址和DSN。在内网的属性中,选择Internet 协议(Tcp/Ip)的属性,在IP地址栏中输入"192.168.0.1",子网掩码为"255.255.255.0",然后点击"确定"。(DNS)(DNS根据自己情况进行设置)再配置客户机。 客户机的网卡不需要另外安装服务。我们只需要打开此机的网卡属性,选择Internet 协议(Tcp/Ip)的属性,在IP地址栏中输入"192.168.0.2",子网掩码为"255.255.255.0",网关为:192.168.0.1(即主机的IP地址)在DSN中的设置应和主机外网的DSN设置相同。

相关文档
最新文档