longtim 发表于 2010-6-26 01:38:37

代码最简单的3-8译码器

library IEEE;<br>
use IEEE.std_logic_1164.all;<br>
use IEEE.std_logic_unsigned.all;<br>
entity 3t 8 is<br>
port(<br>
input : in std_logic_vector(2 downt 0);<br>
output : out std_logic_vector(7 downto 0)<br>

end entity 3to8;<br>
<br>
<br>
architecture behav of 3to8 is<br>
begin<br>
process(input)<br>
begin<br>
output&lt;=(others=&gt;0);<br>
output&lt;=(conv_integer(input))&lt;='1';<br>
end process;<br>
end

longt 发表于 2010-6-26 02:51:55

用VHDL编的吧?我用的Verilog,看的不太懂,不过的确很简洁。

inter 发表于 2010-6-26 04:40:12

请给讲讲这句是怎么回事?我实在不明白。谢谢!!<br>
output&lt;=(conv_integer(input))&lt;='1';

CHANG 发表于 2010-6-26 05:05:51

硬件描述语言不像C语言,它的关键不在代码写的如何的简洁,如何能够提高速度,减少面积,降低功耗。

HDL 发表于 2010-6-26 06:43:11

其实这种写法速度和面积都不错。

HANG 发表于 2010-6-26 07:37:50

看不懂!希望楼主解释一下

CHA 发表于 2010-6-26 07:52:23

楼主呢?<br>
output&lt;=(conv_integer(input))&lt;='1';<br>
确实没有见过,解释一下吧

longtim 发表于 2010-6-26 09:24:27

bu cuo ~~

usb 发表于 2010-6-26 11:21:40

这程序什么意思啊?怎么能用 3to8来做实体名,非法的名字啊?output&lt;=(conv_integer(input))&lt;='1'什么意思?两次对output赋值,同时output是signal类型,那么只对最后一次才有效,那么为什么有初始值?

interi 发表于 2010-6-26 13:10:19

module decoder(out,in);<br>
output&nbsp; &nbsp; out;<br>
input&nbsp; &nbsp;&nbsp; &nbsp; in;<br>
&nbsp;&nbsp;assign&nbsp;&nbsp;out=1'b1&lt;&lt;in;<br>
endmodule
页: [1] 2 3
查看完整版本: 代码最简单的3-8译码器