全是理论题课的一学期啊

貌似我很少在部落格发表心情类的东西。

我想技术类的部落格就该让他技术点,可是到头来却发现,这样貌似也很别扭,感觉特别不真实。这学期得课应该说是都是极品课,计算机组成原理,编译原理,数据库,网络,软件工程……怎么说呢,全是理论的东西让我有些无所适从。但是这些课真的很给力,就拿软件工程来说吧,里面提到的软件开发的现状、问题,确实都是我在实际中遇到的,或者是我见到其他的公司按照这样的规则在开发,可是上课只是泛泛,我觉得如果有项目直接模拟下或者多些案例的分析会更好一些,再说说编译原理,我感觉很好玩的一堂课,在深入的分析编译器的原理,应用层的东西做久了,很难再去追根刨底,而这堂课恰好强迫你去研究编译器的原理,一点点的分析原理与思路,哈哈 我感觉很赞的课,估计大家都听得很晕了~~

感觉学习的过程是很有意思的,我记得最早我能涉及编译原理这东西应该还是初中高中在玩文曲星的时候,那时候文曲星上就有一个“LAVA”语言,当时好奇他的原理,现在过了那么久,终于可以明白,哦,原来那就是编译器啊……这样以前的疑问在我现在的学习过程中被解答的事例已经有太多太多,有时候多问几个为什么,多在自己脑袋里画几个问号,未尝不是一件好的事情——或许现在你还不能解答它,但是总会有那么一天,你会理解并能给出解释,我想,这样就是一点点的在进步吧。

用结构描述的VHDL方法实现半加器

使用行为描述的方法实现半加器是非常简单的,可是你尝试过用行为描述实现半加器嘛?我们的数字逻辑盛建伦老师就布置了这样的一个实验,代码如下:

[codesyntax lang=”vhdl”]

-- 底层实体 And_Gate
library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
port(op1,op2:in std_logic;
     and_result:out std_logic);
end and_gate;
architecture behave of and_gate is
begin
  and_result<=op1 and op2;
end behave;

-- 底层实体 Or_Gate
library ieee;
use ieee.std_logic_1164.all;
entity xor_gate is
port(op1,op2:in std_logic;
     xor_result:out std_logic);
end xor_gate;
architecture behave of xor_gate is
begin
  xor_result<=op1 xor op2;
end behave;

-- 顶层设计实体 h_adder
library ieee;
use ieee.std_logic_1164.all;
entity h_adder is
port(a1,a2:in std_logic;
     s,c:out std_logic);
end h_adder;
architecture struct of h_adder is
signal b1,b2:std_logic;
component and_gate
  port(op1,op2:in std_logic;
       and_result:out std_logic);
end component;
component xor_gate
  port(op1,op2:in std_logic;
       xor_result:out std_logic);
end component;
begin
  G1:and_gate port map
	(op1=>a1,
	 op2=>a2,
	 and_result=>c);
  G2:xor_gate port map
	(op1=>a1,
	 op2=>a2,
	 xor_result=>s);
end struct;

[/codesyntax]

Quartus II 8.1 (32-Bit) 编译仿真通过。