基于FPGA 用verilog语言编写的多路模拟电子开关
请问一对八的应该怎么写程序?比如说单片机通过S2 S1 S0三位数据发送给FPGA ,fpga根据三位数值判断电子开关转换。我刚学不久还请各位大侠帮忙 ,谢谢 你确定是模拟开关 三位数据控制fpga的8个io的高低输出,进而控制开关 kebaojun305 发表于 2013-10-10 11:19 static/image/common/back.gif你确定是模拟开关
意思是用fpga搭建八路电子开关 上图是通过 3、4、10、11四个引脚分别控制D1,D2,D3,D4四个电子开关,而我需要的是通过单片机发送数据给FPGA(如:001或100表示第一个或第四个电子开关导通),刚接触FPGA不久,望各位指导下代码怎么写 你这个东西在所有的verilog语言书中都有的,我用的VHDL,用when,case之类语句实现. 谁有verilog语言 带控制端的电子开关方面的实例,求共享 潘松等很多verilog的教材上就有四选一的例程,难道改成X选一会那么难吗? verilog用case语句就搞定了啊 FPGA根本没有模拟开关功能,怎么可能用verilog写出来? marx 发表于 2013-10-11 13:15 static/image/common/back.gif
FPGA根本没有模拟开关功能,怎么可能用verilog写出来?
楼上的意思是,不算很明白 ,能否详细点....{:smile:} proteldxp 发表于 2013-10-11 12:58 static/image/common/back.gif
verilog用case语句就搞定了啊
下面是我写的程序
// dzkg.v
module mux_case1(
int1,int2,int3,select,
a1,b1,c1,d1,e1,f1,g1,h1,
a2,b2,c2,d2,e2,f2,g2,h2,
a3,b3,c3,d3,e3,f3,g3,h3,
);
input int1,int2,int3;
outputa1,b1,c1,d1,e1,f1,g1,h1;
outputa2,b2,c2,d2,e2,f2,g2,h2;
outputa3,b3,c3,d3,e3,f3,g3,h3;
input select;
reg a1,b1,c1,d1,e1,f1,g1,h1;
reg a2,b2,c2,d2,e2,f2,g2,h2;
reg a3,b3,c3,d3,e3,f3,g3,h3;
always @(select or int1)
begin
case(select)
3'b000 : a1<=int1;
3'b001 : b1<=int1;
3'b010 : c1<=int1;
3'b011 : d1<=int1;
3'b100 : e1<=int1;
3'b101 : f1<=int1;
3'b110 : g1<=int1;
3'b111 : h1<=int1;
endcase
end
always @(select or int2)
begin
case(select)
3'b000 : a2<=int2;
3'b001 : b2<=int2;
3'b010 : c2<=int2;
3'b011 : d2<=int2;
3'b100 : e2<=int2;
3'b101 : f2<=int2;
3'b110 : g2<=int2;
3'b111 : h2<=int2;
endcase
end
always @(select or int3)
begin
case(select)
3'b000 : a3<=int3;
3'b001 : b3<=int3;
3'b010 : c3<=int3;
3'b011 : d3<=int3;
3'b100 : e3<=int3;
3'b101 : f3<=int3;
3'b110 : g3<=int3;
3'b111 : h3<=int3;
endcase
end
endmodule
编译的时候有警告 ,估计是产生锁存器
int1,int2接单片机串口 ,int3为使能信号
要达到的效果是
由单片机串口输出的收发信号直接输出,而不用FPGA 寄存器(a1,b1...a2,b2... a3,b3...)存储单片机发过来的数据 ,而是将单片机发过来的数直接通过FPGA输出(意思是电子开关)如001表示电子开关1导通 int1, int2 就直接连接a1,b1 这样
怎么解决 ,帮忙啊,各位大侠!!! 其实不用写代码,直接新建原理图,直接用quartus里面的74芯片。 proteldxp 发表于 2013-10-11 20:38 static/image/common/back.gif
其实不用写代码,直接新建原理图,直接用quartus里面的74芯片。
诶 可惜我用的是ACTEL Libero 8.5软件直接画原理图但找不到芯片原理图中只有 与门、或门 等而我要的是带控制的电子开关 huangfeian0527 发表于 2013-10-11 17:20 static/image/common/back.gif
楼上的意思是,不算很明白 ,能否详细点....
你知道什么是“模拟开关”不? marx 发表于 2013-10-15 09:42 static/image/common/back.gif
你知道什么是“模拟开关”不?
我可能没表达清楚,我指的是用FPGA模拟一个数字电子开关,而不是指用Cmos管等构成的模拟开关,还请帮个忙 ,怎么用verilog语言编写这样的代码? chiooo1 发表于 2013-10-18 15:50 static/image/common/back.gif
楼主,别个的意思是 数字开关可以,模拟的是做不了的
明白 ,目前的关键是如何用verilog语言实现带控制的数字电子开关,求例程或者类似的例程? 本帖最后由 xivisi 于 2013-10-19 09:58 编辑
基础东东,三八译码器,加多路选择,搜索一下吧
页:
[1]