2015年12月23日 星期三

12/23 期末考



wire a, A, b, B, c, C, d, D, NF, F, F1, F2, F3, F4, F5;
system_clock #800 clock1(A);
system_clock #400 clock2(B);
system_clock #200 clock3(C);
system_clock #100 clock4(D);

nor S1(a, A, A);
nor S2(b, B, B);
nor S3(c, C, C);
nor S4(d, D, D);
nor C1(F5, a, B, C);
nor C2(F4, a, C, D);
nor C3(F3, a, b, c, d);
nor C4(F2, A, b, C, d);
nor C5(F1, A, B, c);
nor o1(NF, F5, F4, F2, F3, F1);
nor o2(F, NF, NF);
endmodule

module system_clock(clk);
parameter PERIOD=100;
output clk;
reg clk;

initial clk=0;

always
 begin
#(PERIOD/2) clk=~clk;
 end

always@(posedge clk)
 if($time>1000)$stop;

endmodule

2015年12月2日 星期三

nor


module top;

wire a, A, b, B, c, C, d, D, NF, F, F1, F2, F3, F4;
system_clock #800 clock1(A);
system_clock #400 clock2(B);
system_clock #200 clock3(C);
system_clock #100 clock4(D);

nor S1(a, A, A);
nor S2(b, B, B);
nor S3(c, C, C);
nor S4(d, D, D);
nor C1(F4, a ,C , D);
nor C2(F2, A, B, d);
nor C3(F3, b, C, D);
nor C4(F1, c, d);
nor o1(NF, F4, F2, F3, F1);
nor o2(F, NF, NF);
endmodule

module system_clock(clk);
parameter PERIOD=100;
output clk;
reg clk;

initial clk=0;

always
 begin
#(PERIOD/2) clk=~clk;
 end

always@(posedge clk)
 if($time>1000)$stop;

endmodule

nand


module top;

wire a, A, b, B, c, C, d, D, F, F1, F2, F3, F4;
system_clock #800 clock1(A);
system_clock #400 clock2(B);
system_clock #200 clock3(C);
system_clock #100 clock4(D);

nand S1(a, A, B);
nand S2(b, B, B);
nand S3(c, C, C);
nand S4(d, D, D);
nand C1(F4, A ,c , d);
nand C2(F2, a, b, D);
nand C3(F3, B, c, d);
nand C4(F1, C, D);
nand o1(F, F4, F2, F3, F1);

endmodule

module system_clock(clk);
parameter PERIOD=100;
output clk;
reg clk;

initial clk=0;

always
 begin
#(PERIOD/2) clk=~clk;
 end

always@(posedge clk)
 if($time>1000)$stop;

endmodule

期末考上機(練習)1

                                                                       
                                                                       module top;

wire A, B, C, D, F;
system_clock #1600 clock1(A);
system_clock #800 clock2(B);
system_clock #400 clock3(C);
system_clock #200 clock4(D);

not a(na, A);
not b(nb, B);
not c(nc, C);
not d(nd, D);
and a4(F4, A, nc, nd);
and a2(F2, na, nb, D);
and a3(F3, B, nc, nd);
and a1(F1, C, D);
or F(F, F4, F3, F2, F1);

endmodule

module system_clock(clk);
parameter PERIOD=100;
output clk;
reg clk;

initial clk=0;

always
 begin
#(PERIOD/2) clk=~clk;
 end

always@(posedge clk)
 if($time>1000)$stop;

endmodule

2015年11月25日 星期三

3位元加法器


module fulladder (sum, c_out, a, b, c_in);
wire s1, c1, c2;
output sum;
output c_out;
input a, b, c_in;
xor g1(s1, a, b);
xor g2(sum, s1, c_in);
and g3(c1, a,b);
and g4(c2, s1, c_in) ;
xor g5(c_out, c2, c1) ;

endmodule

module adder3(sum, c_out, a, b, c_in);
wire [2:0] c;
output [2:0] sum;
output c_out;
input [2:0] a;
input [2:0] b;
input c_in;
fulladder fa1(sum[0], c[1], a[0], b[0], c_in) ;
fulladder fa2(sum[1], c[2], a[1], b[1], c[1]) ;
fulladder fa3(sum[2], c_out, a[2], b[2], c[2]) ;


endmodule

module main;
reg [2:0] a;
reg [2:0] b;
wire [2:0] sum;
wire c_out;

adder3 DUT (sum, c_out, a, b, 1'b0);

initial
begin
  a = 4'b0101;
  b = 4'b0000;
end

always #50 begin
  b=b+1;
  $monitor("%dns monitor: a=%d b=%d sum=%d", $stime, a, b, sum);
end

initial #2000 $finish;

endmodule


2015年10月7日 星期三

多工 邏輯閘1

                                                                       名字不小心蓋到線了

2015年9月30日 星期三

AND邏輯閘-2(可能有問題)

                                                                如果有問題可以在留言

2015年9月23日 星期三

AMD 推土機與打樁機




2011:Bulldozer (推土機)
2012:Piledriver (打樁機)
2013:Steamroller (壓路機)
2014:Excavator (挖土機)

AMD“压路机” 性能曝光 比“推土机”提升30%

2013-10-29 11:57:52 来源:互联网 作者:未知 编辑:听风飞舞 浏览:14372
  AMD的Kaveri APU会在今年底开始量产,但是大规模上市开卖可能要等到明年2月份了。作为第四代桌面APU产品,Kaveri比前面几款要引人关注的多,因为它不仅是AMD桌面处理器首次升级28nm工艺,同时架构也会全面升级,GPU核心升级到GCN架构,CPU则从之前的推土机Bulldozer、Piledriver打桩机升级到Steamroller压路机,大家依然非常关心AMD的CPU性能是否还能达到Intel处理器的水平。
  压路机架构首先会应用在Kaveri APU,此前已有一份ES版Kaveri APU的部分跑分泄露,这个双模块四核心、1.8GHz的Kaveri APU当时性能并不出众,因为对比的是桌面版的FX-8350,不论频率还是核心数、L3缓存上都不具可比性。
  随着Kaveri APU即将正式量产,最新曝光的样品已经非常接近正式产品了(Near Production Sample),而且性能测试也在稳步提升,详情可参考下图:
游民星空
上面的是ES工程样品的性能及规格,下面的是接近成品的产品规格及性能
没兴趣研读这个成绩的话,我们可以看AMDFX给出的一个包含推土机、打桩机及这个压路机处理器在内的性能对比,更加直观:
游民星空
压路机与推土机、打桩机性能对比
原文并没有明确对比的打桩机和推土机的型号,应该是桌面版的FX处理器,带L3缓存,而压路机是Kaveri APU,不带L3缓存,对比的都是双模块、同频1.8GHz下的性能。
  如果把第一代推土机处理器的整数及浮点性能作为100%基准,那么打桩机的性能分别是102.9%、99.10%,整数性能高了3%,浮点性能基本不变,而压路机的整数性能是134.5%,浮点性能是84.80%,浮点性能因为缺少L3缓存而有所不如,但是整数性能相比前两代要提升30%以上。
  此前AMD公布Steamroller压路机架构时就表示压路机架构将聚焦性能提升,如果泄露的成绩属实,那么AMD第三代模块化架构的IPC性能确实非常惊人,就算没有达到AMD自夸的45%,34.5%的IPC性能提升也足以让AMD翻翻身,最次也不会如现在这样被Intel的处理器架构死死压住了。
  虽然看起来很美好,不过在这一切尚未成真之前还是保持淡定吧,压路机首先会用在Kaveri APU上,桌面版的FX处理器即便用上新架构也要等到明年中了,届时Intel的14nm Broadwell都要发布了,AMD在工艺上还将落后Intel至少两代,就算性能追上了,功耗上的差距也没这么容易缩短。

and-1


2015年9月16日 星期三

AMD CPU 微架構

X86 微架構[編輯]

K5 微架構[編輯]

AMD K5 PR166
  • K5 - AMD 的首個原創微架構。 K5基於Am29000的微架構,並且添加了一個x86的解碼器。 即使這個設計的原理和Pentium Pro相同,而實際效能更像是Pentium

K6 微架構[編輯]

Original K6 (Model 6)
  • K6 - K6並非基於K5, 而是基於當時已經被AMD所收購了的 NexGen 所設計的Nx686處理器,K6的針腳相容 Intel Pentium
    • k6-2 微架構 - 增加了 3DNow! SIMD 指令集
    • K6-III 微架構 - 有3級緩存,64KB L1 一級緩存,256KB L2 二級全速緩存,最高可達2MB的主機板裝載(motherboard mounted) 3L 三級緩存。

K7 微架構[編輯]

K8 微架構[編輯]

K9[編輯]

被取消。

K10 微架構[編輯]

Griffin 處理器核心[編輯]

  • Griffin 處理器核心 - Griffin 的設計只是用於移動平台(AMD mobile platform),應用於Turion 64處理器。Griffin 在2008年發布於 Puma 平台(Puma platform 英语)。Griffin 基於65nm製程K8版本G(K8 revision G),特別對移動市場的需求使用了能源最優化技術(power optimization technologies)。事實上,Griffin 的能源最優化技術超越了其他AMD系列第十代微架構。

Bulldozer 微架構[編輯]

  • Bulldozer - 是繼 K10 之後,使用 AMD M-SPACE 模組化設計方法(modular design methodology)的下一代微架構。Bulldozer是為功耗在10W至100W類別的處理器而設計,應用了 XOP(英语)FMA4(英语) 和 CVT16(英语) 指令集,並且能結合GPU核心(AMD Fusion)。

Bobcat 處理器核心[編輯]

  • Bobcat 處理器核心 - Bobcat 是 AMD Bulldozer 能源功耗在 1W 至 10W 的版本,這個微處理器核心是一個非常精簡的x86 核心。和 Bulldozer 相同,Bobcat 屬於「AMD 融合項目」(the AMD Fusion project),能夠和 GPU 組合使用。