如何让FPGA卡上的数码管显示数字

如何让FPGA卡上的数码管显示数字,第1张

这是一段4位二进制数转为2位十进制数,用两个数码管显示的代码,用的是cyclone2芯片。你参考一下。

module bin2dec(V,HEX1,HEX0)

input [3:0]V

output

[0:6]HEX1,HEX0

wire z //comparator output

wire [2:0]a

//circuit A output

wire [3:0]m

//multiplexer output

comparator

C(V,z)

circuita

A(V[2:0],a)

mux_4b_2to1

M(V,{1'b0,a},z,m)

circuitb

B(z,HEX1)

btd

D(m,HEX0)

endmodule

module circuitb(z,seg)

input z

output

[0:6]seg

assign

seg[6]=1

assign

seg[5]=z

assign

seg[4]=z

assign

seg[3]=z

assign

seg[2]=0

assign

seg[1]=0

assign

seg[0]=z

endmodule

module

mux_4b_2to1(x,y,s,m)

input [3:0]x

input [3:0]y

input s

output

[3:0]m

mux_2to1

u3(x[3],y[3],s,m[3])

mux_2to1

u2(x[2],y[2],s,m[2])

mux_2to1

u1(x[1],y[1],s,m[1])

mux_2to1

u0(x[0],y[0],s,m[0])

endmodule

module

mux_2to1(a,b,s,m)

input a,b,s

output m

assign

m=s?b:a

endmodule

module

circuita(v,a)

input [2:0]v

output [2:0]a

assign

a[2]=v[2]&v[1]

assign

a[1]=v[2]&~v[1]

assign

a[0]=(v[1]&v[0])|(v[2]&v[0])

endmodule

//circuit

comparator

module

comparator(v,z)

input [3:0]v

output z

assign

z=(v[3]&v[2])|(v[3]&v[1])

endmodule

你好!你所要求的全部功能我已实现!

模块图:

程序用4位数码管显示,Bit[0]为最右边一位,Rstn为全局复位,Key1为减速,Key2为加速,初始默认显示为1Hz。如:前半个周期显示45,则后半个周期显示-09(按要求2做小标记“-”加以区分)。(由于时间关系)程序中少许警告可以无视,当然你可以自己优化下代码。

显示效果图:显示0+9的结果为“-09”

如果这是你的课程设计,请绝对放心这是独一无二的,因为这是我花费数个小时的原创……

请采纳!!如果能追加分数就更好了哦!(*^__^*)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11090412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存