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技术的基本理论和工程开发实用技术。
LIBRARYIEEEUSEIEEE.STD_LOGIC_1164.ALL
USEIEEE.STD_LOGIC_ARITH.ALL
USEIEEE.STD_LOGIC_UNSIGNED.ALL--库,程序包的使用
ENTITYSRAM IS--实体描述(SRAM为实体名)
GENERIC(WIDTH:INTEGER:=8--类属表(integer是整型,WIDTH为常数名)
DEPTH:INTEGER:=128--类比上一句即可
ADDER:INTEGER:=3)
PORT(DATAIN:IN STD_LOGIC_VECTOR(7 DOWNTO0)--端口说明,IN为端口类型,输入只读
DATAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--OUT输出,只写
CLOCK:IN STD_LOGIC--STD_LOGIC是数据类型,为标准位单值
WE,RE:IN STD_LOGIC--WE和RE为输入端口,可输入标准位单值
SIGNAL WADD:IN STD_LOGIC_VECTOR(2DOWNTO 0)--标准位位矢量,3个信号元素
SIGNAL RADD:IN STD_LOGIC_VECTOR(2 DOWNTO 0))
ENDENTITY SRAM--结束实体描述
ARCHITECTUREART OF SRAM IS--结构体描述(ART是结构体名)
TYPE MEM IS ARRAY(0 TO 127) OF STD_LOGIC_VECTOR(7 DOWNTO 0)--元素说明
SIGNAL RAMTMP:MEM--TYPE数据类型,SIGNAL信号
BEGIN--下面为功能描述
PROCESS(CLOCK)--进程,CLOCK为敏感信号,敏感信号的变化会激活进程
BEGIN
IF (CLOCK'EVENT AND CLOCK='1') THEN--时钟信号上升沿
IF(WE='1')THEN
RAMTMP(CONV_INTEGER(WADD))<=DATAIN --如果we为1,将DATAIN的值赋给RAMTMP(CONV_INTEGER(WADD))
END IF
END IF
ENDPROCESS
PROCESS(CLOCK)--可类比上一个进程
BEGIN
IF(CLOCK'EVENTAND CLOCK='1')THEN
IF (RE='1') THEN
DATAOUT<=RAMTMP(CONV_INTEGER(RADD))
END IF
ENDIF
ENDPROCESS
ENDARCHITECTURE ART
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)