eda编程9人表决器程序详解://本程序用VERILOG HDL语言实现,描述9人表决器。
module biaojueqi(vote,ledr,ledg,dis_out)
input [8:0] vote
reg [6:0] dis_out
integer i,sum//sum表示赞同的人数
for(i=0i<=8i=i+1)
if(vote[i]) sum<=sum+1
end
always @(sum) //结果由dis_out显示在数码管上
case (sum)
0: dis_out[6:0]<=7'b1111110
1: dis_out[6:0]<=7'b0110000
2: dis_out[6:0]<=7'b1101101
3: dis_out[6:0]<=7'b1111001
4: dis_out[6:0]<=7'b0110011
5: dis_out[6:0]<=7'b1011011
6: dis_out[6:0]<=7'b1011111
7: dis_out[6:0]<=7'b1110000
8: dis_out[6:0]<=7'b1111111
9: dis_out[6:0]<=7'b1111011
endmodule
内容简介
本书从实际应用的角度出发,全面系统地介绍了EDA技术和硬件描述语言VHDL,将VHDL的基础知识、编程技巧、实用方法与实际工程开发技术在EDA软件设计平台上很好地结合起来,使读者能够通过本书的学习迅速了解并掌握EDA技术的基本理论和工程开发实用技术。
library ieeeuse ieee.std_logic_1164.all
use ieee.std_logic_unsigned.all
entity caideng is
port(clk,reset:in std_logic
l_r:in std_logic ----控制循环方向;
output:out std_logic_vector(15 downto 0))---输出
end entity
architecture art of caideng is
signal q:std_logic_vector(15 downto 0)
signal clk_data:std_logic
begin
process(clk,reset)-----时钟分频,分频因子等于系统时钟频率除以所要得到的时钟频率
variable cnt:integer
begin
if reset='1' then
cnt:=0clk_data<='0'
elsif clk'event and clk='1' then
if cnt=4000000 then
cnt:=0clk_data<='1'
else clk_data<='0'cnt:=cnt+1
end if
end if
end process
process(clk_data,reset,l_r,q)
begin
if reset='1' then
q<="0000000000000000"
elsif clk_data'event and clk_data='1' then
if l_r='1' then ----表示向右循环;
if q="0000000000000000" then
q<="1111000000000000"
else q<=q(0)&q(15 downto 1)
end if
else ----向左循环
if q="0000000000000000" then
q<="0000000000001111"
else q<=q(14 downto 0)&q(15)
end if
end if
end if
output<=q
end process
end art
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)